1. 16 Mar, 2019 1 commit
  2. 15 Mar, 2019 2 commits
  3. 14 Mar, 2019 2 commits
  4. 06 Mar, 2019 1 commit
  5. 08 Dec, 2018 1 commit
  6. 06 Dec, 2018 1 commit
    • Dmitry Gozman's avatar
      Revert "inspector: return [[StableObjectId]] as internal property" · 4401ac44
      Dmitry Gozman authored
      This reverts commit d9fbfeb8.
      
      Reason for revert: see bug.
      Bug: 906847
      
      Original change's description:
      > inspector: return [[StableObjectId]] as internal property
      > 
      > This property might be useful for fast '===' check.
      > 
      > R=​dgozman@chromium.org,yangguo@chromium.org
      > 
      > Bug: none
      > Cq-Include-Trybots: luci.chromium.try:linux_chromium_headless_rel;luci.chromium.try:linux_chromium_rel_ng;master.tryserver.blink:linux_trusty_blink_rel
      > Change-Id: Iabc3555ce1ec2c14cf0ccd40b7d964ae144e7352
      > Reviewed-on: https://chromium-review.googlesource.com/1226411
      > Reviewed-by: Dmitry Gozman <dgozman@chromium.org>
      > Reviewed-by: Yang Guo <yangguo@chromium.org>
      > Reviewed-by: Jakob Gruber <jgruber@chromium.org>
      > Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#56095}
      
      TBR=dgozman@chromium.org,yangguo@chromium.org,kozyatinskiy@chromium.org,jgruber@chromium.org
      
      # Not skipping CQ checks because original CL landed > 1 day ago.
      
      Bug: none
      Change-Id: I68c700b7b8fd0a015f099460c15665d74e4da183
      Cq-Include-Trybots: luci.chromium.try:linux_chromium_headless_rel;luci.chromium.try:linux_chromium_rel_ng;master.tryserver.blink:linux_trusty_blink_rel
      Reviewed-on: https://chromium-review.googlesource.com/c/1363558Reviewed-by: 's avatarDmitry Gozman <dgozman@chromium.org>
      Reviewed-by: 's avatarAlexei Filippov <alph@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#58077}
      4401ac44
  7. 30 Nov, 2018 1 commit
    • Yang Guo's avatar
      Make termination exception more consistent. · 7e5cac2c
      Yang Guo authored
      Termination exceptions tear down V8 to the bottom-most V8 call. If there is a
      v8::TryCatch scope around that call, it returns true for HasTerminated() and
      HasCaught(). However, Isolate::IsExecutionTerminating() returns false and we
      can call into V8 from still inside the v8::TryCatch scope.
      
      Changes that this patch introduces:
       - You need to leave the v8::TryCatch scope around the bottom-most call to
         reset the termination state, in order to resume.
       - Explicitly check for termination exception and reporting it through the
         DevTools protocol after Runtime.evaluate and Debugger.evaluateOnCallFrame.
      
      Bug: v8:8455
      Change-Id: I1f36f7a365985469813c2619bf16f18ee69aa4b8
      Reviewed-on: https://chromium-review.googlesource.com/c/1337582Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Reviewed-by: 's avatarDmitry Gozman <dgozman@chromium.org>
      Commit-Queue: Yang Guo <yangguo@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#57963}
      7e5cac2c
  8. 29 Nov, 2018 1 commit
  9. 31 Oct, 2018 2 commits
    • Alexey Kozyatinskiy's avatar
      reland: inspector: move injected script source to native · ebd070ec
      Alexey Kozyatinskiy authored
      - introduced ValueMirror interface, this interface contains methods to generate
        different protocol entities,
      - introduced DebugPropertyIterator, this iterator iterates through object properties
        in the following order: exotic indices, enumerable strings, all other properties,
      - removed all injected script infra, e.g. closure compiler,
      
      R=dgozman@chromium.org
      TBR=yangguo@chromium.org
      
      Bug: chromium:595206
      Change-Id: I030fdb3a80074ca6edd4749f86b39b590776ae6f
      Reviewed-on: https://chromium-review.googlesource.com/c/1310056Reviewed-by: 's avatarAleksey Kozyatinskiy <kozyatinskiy@chromium.org>
      Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#57181}
      ebd070ec
    • Aleksey Kozyatinskiy's avatar
      Revert "inspector: move injected script source to native" · fc5c8d7f
      Aleksey Kozyatinskiy authored
      This reverts commit 7e079c66.
      
      Reason for revert: native implementation should be ready for navigation.
      
      Original change's description:
      > inspector: move injected script source to native
      > 
      > - introduced ValueMirror interface, this interface contains methods to generate
      >   different protocol entities,
      > - introduced DebugPropertyIterator, this iterator iterates through object properties
      >   in the following order: exotic indices, enumerable strings, all other properties,
      > - removed all injected script infra, e.g. closure compiler,
      > 
      > R=​dgozman@chromium.org
      > TBR=yangguo@chromium.org
      > 
      > Bug: chromium:595206
      > Change-Id: Idcfc04489ee52e015ad1d1d191c3474cc65e63f2
      > Reviewed-on: https://chromium-review.googlesource.com/c/1308353
      > Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
      > Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#57150}
      
      TBR=dgozman@chromium.org,yangguo@chromium.org,kozyatinskiy@chromium.org
      
      Change-Id: I8c5c61f4cfe5a66cd33eadd02ab4acec539cc3bb
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: chromium:595206
      Reviewed-on: https://chromium-review.googlesource.com/c/1310055Reviewed-by: 's avatarAleksey Kozyatinskiy <kozyatinskiy@chromium.org>
      Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#57176}
      fc5c8d7f
  10. 30 Oct, 2018 3 commits
    • Alexey Kozyatinskiy's avatar
      inspector: move injected script source to native · 7e079c66
      Alexey Kozyatinskiy authored
      - introduced ValueMirror interface, this interface contains methods to generate
        different protocol entities,
      - introduced DebugPropertyIterator, this iterator iterates through object properties
        in the following order: exotic indices, enumerable strings, all other properties,
      - removed all injected script infra, e.g. closure compiler,
      
      R=dgozman@chromium.org
      TBR=yangguo@chromium.org
      
      Bug: chromium:595206
      Change-Id: Idcfc04489ee52e015ad1d1d191c3474cc65e63f2
      Reviewed-on: https://chromium-review.googlesource.com/c/1308353Reviewed-by: 's avatarAleksey Kozyatinskiy <kozyatinskiy@chromium.org>
      Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#57150}
      7e079c66
    • Clemens Hammacher's avatar
      Revert "inspector: move injected script source to native" · 192bee6b
      Clemens Hammacher authored
      This reverts commit 34686abe.
      
      Reason for revert: Compile errors on several bots, e.g. https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Linux%20-%20debug%20builder/33299
      
      Original change's description:
      > inspector: move injected script source to native
      > 
      > - introduced ValueMirror interface, this interface contains methods to generate
      >   different protocol entities,
      > - introduced DebugPropertyIterator, this iterator iterates through object properties
      >   in the following order: exotic indices, enumerable strings, all other properties,
      > - removed all injected script infra, e.g. closure compiler,
      > 
      > R=​dgozman@chromium.org
      > TBR=yangguo@chromium.org
      > 
      > Bug: chromium:595206
      > Cq-Include-Trybots: luci.chromium.try:linux_chromium_headless_rel;luci.chromium.try:linux_chromium_rel_ng;master.tryserver.blink:linux_trusty_blink_rel
      > Change-Id: I077c1879622aa0d9900d719b80d2ef5ba4221a22
      > Reviewed-on: https://chromium-review.googlesource.com/c/1295550
      > Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
      > Reviewed-by: Dmitry Gozman <dgozman@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#57142}
      
      TBR=dgozman@chromium.org,yangguo@chromium.org,kozyatinskiy@chromium.org
      
      Change-Id: I6e4ccaf1d6b151fbc0ffe4f26daa584433321c77
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: chromium:595206
      Cq-Include-Trybots: luci.chromium.try:linux_chromium_headless_rel;luci.chromium.try:linux_chromium_rel_ng;master.tryserver.blink:linux_trusty_blink_rel
      Reviewed-on: https://chromium-review.googlesource.com/c/1307432Reviewed-by: 's avatarClemens Hammacher <clemensh@chromium.org>
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#57144}
      192bee6b
    • Alexey Kozyatinskiy's avatar
      inspector: move injected script source to native · 34686abe
      Alexey Kozyatinskiy authored
      - introduced ValueMirror interface, this interface contains methods to generate
        different protocol entities,
      - introduced DebugPropertyIterator, this iterator iterates through object properties
        in the following order: exotic indices, enumerable strings, all other properties,
      - removed all injected script infra, e.g. closure compiler,
      
      R=dgozman@chromium.org
      TBR=yangguo@chromium.org
      
      Bug: chromium:595206
      Cq-Include-Trybots: luci.chromium.try:linux_chromium_headless_rel;luci.chromium.try:linux_chromium_rel_ng;master.tryserver.blink:linux_trusty_blink_rel
      Change-Id: I077c1879622aa0d9900d719b80d2ef5ba4221a22
      Reviewed-on: https://chromium-review.googlesource.com/c/1295550
      Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
      Reviewed-by: 's avatarDmitry Gozman <dgozman@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#57142}
      34686abe
  11. 28 Sep, 2018 1 commit
  12. 20 Sep, 2018 1 commit
  13. 18 Sep, 2018 1 commit
  14. 13 Jul, 2018 1 commit
  15. 05 Jun, 2018 1 commit
  16. 03 Jun, 2018 1 commit
  17. 31 May, 2018 1 commit
  18. 30 May, 2018 2 commits
    • Alexey Kozyatinskiy's avatar
      [inspector] reworked async stack instrumentation for async functions · b6c9086c
      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: 's avatarSathya Gunasekaran <gsathya@chromium.org>
      Reviewed-by: 's avatarBenedikt Meurer <bmeurer@chromium.org>
      Reviewed-by: 's avatarDmitry Gozman <dgozman@chromium.org>
      Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#53445}
      b6c9086c
    • Alexey Kozyatinskiy's avatar
      [inspector] use interrupt for pause only as last resort · 6d87d957
      Alexey Kozyatinskiy authored
      With this CL we use interrupt for pause in two cases:
      - when we process Debugger.pause on interruption,
      - when we would like to break as soon as possible after OOM.
      In all other cases, e.g. for async step into we use break
      on function call by calling StepIn debugger action.
      
      In mentioned cases we should not actually use interrupt as well:
      - Debugger.pause in this case scheduled using interrupt and we
        may just break right now without requesting another interrupt,
        unfortunately blink side is not ready,
      - we should use more reliable way to break right after near OOM
        callback, otherwise we can get this callback, increase limit,
        request break on next interrupt, before interrupt get another
        huge memory allocation and crash.
      
      There are couple advantages:
      - we get much better break locations for async stepping
        (see inspector tests expectations),
      - we can remove DEBUG_BREAK interruption
        (it should speedup blackboxing with async tasks, see
        removed todo in debug.cc for details)
      - it is required preparation step for async step out,
        (see https://chromium-review.googlesource.com/c/v8/v8/+/1054618)
      
      Bug: v8:7753
      Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;master.tryserver.blink:linux_trusty_blink_rel
      Change-Id: Iabd7627dbffa9a0eab1736064caf589d02591926
      Reviewed-on: https://chromium-review.googlesource.com/1054155
      Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarDmitry Gozman <dgozman@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#53439}
      6d87d957
  19. 27 Mar, 2018 1 commit
    • Ulan Degenbaev's avatar
      [heap,api] Introduce near-heap-limit callbacks. · 84a80e10
      Ulan Degenbaev authored
      The embedder can get notification when V8 heap size approaches the heap limit
      and can extend the heap limit if needed using
      - v8::Isolate::AddNearHeapLimitCallback
      - v8::Isolate::RemoveNearHeapLimitCallback
      
      This generalizes the exiting v8::debug::SetOutOfMemoryCallback API.
      
      Bug: chromium:824214
      
      Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;master.tryserver.blink:linux_trusty_blink_rel
      Change-Id: Ia444cb7efb6fe85c57fa3785e8fd1d8b654a5224
      Reviewed-on: https://chromium-review.googlesource.com/979447
      Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
      Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#52238}
      84a80e10
  20. 19 Mar, 2018 1 commit
    • Alexey Kozyatinskiy's avatar
      Reland "[inspector] added Runtime.terminateExecution" · 97fc20f3
      Alexey Kozyatinskiy authored
      This is a reland of 14824520
      
      Original change's description:
      > [inspector] added Runtime.terminateExecution
      >
      > Runtime.terminateExecution terminates current or next JavaScript
      > call. Termination flag is automatically reset as soon as v8 call
      > or microtasks are completed.
      >
      > R=pfeldman@chromium.org
      >
      > Bug: chromium:820640
      > Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel
      > Change-Id: Ie21c123be3a61fe25cf6e04c38a8b6c664622ed7
      > Reviewed-on: https://chromium-review.googlesource.com/957386
      > Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
      > Reviewed-by: Dmitry Gozman <dgozman@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#51912}
      
      Bug: chromium:820640
      Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;master.tryserver.blink:linux_trusty_blink_rel
      Change-Id: I6dd30f65c06c2b7eefd1e7beb9a3cf50ea5bf8cd
      Reviewed-on: https://chromium-review.googlesource.com/967323
      Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
      Reviewed-by: 's avatarAleksey Kozyatinskiy <kozyatinskiy@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#52004}
      97fc20f3
  21. 17 Mar, 2018 2 commits
    • Michael Achenbach's avatar
      Revert "Reland "[inspector] added Runtime.terminateExecution"" · 7652bd27
      Michael Achenbach authored
      This reverts commit 14824520.
      
      Reason for revert: Breaks chromium tsan in roll:
      https://chromium-review.googlesource.com/c/chromium/src/+/967682
      
      Original change's description:
      > Reland "[inspector] added Runtime.terminateExecution"
      > 
      > This is a reland of 98dec8f2
      > 
      > Original change's description:
      > > [inspector] added Runtime.terminateExecution
      > > 
      > > Runtime.terminateExecution terminates current or next JavaScript
      > > call. Termination flag is automatically reset as soon as v8 call
      > > or microtasks are completed.
      > > 
      > > R=pfeldman@chromium.org
      > > 
      > > Bug: chromium:820640
      > > Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel
      > > Change-Id: Ie21c123be3a61fe25cf6e04c38a8b6c664622ed7
      > > Reviewed-on: https://chromium-review.googlesource.com/957386
      > > Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
      > > Reviewed-by: Dmitry Gozman <dgozman@chromium.org>
      > > Cr-Commit-Position: refs/heads/master@{#51912}
      > 
      > Bug: chromium:820640
      > Change-Id: I8f270c2fdbe732f0c40bfb149d26a6e73d988253
      > Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel
      > Reviewed-on: https://chromium-review.googlesource.com/966681
      > Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
      > Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#52002}
      
      TBR=dgozman@chromium.org,pfeldman@chromium.org,kozyatinskiy@chromium.org
      
      Change-Id: I2f3d24b238f479082bfed349363240887b5ba751
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: chromium:820640
      Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel
      Reviewed-on: https://chromium-review.googlesource.com/967781Reviewed-by: 's avatarMichael Achenbach <machenbach@chromium.org>
      Commit-Queue: Michael Achenbach <machenbach@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#52003}
      7652bd27
    • Alexey Kozyatinskiy's avatar
      Reland "[inspector] added Runtime.terminateExecution" · 14824520
      Alexey Kozyatinskiy authored
      This is a reland of 98dec8f2
      
      Original change's description:
      > [inspector] added Runtime.terminateExecution
      > 
      > Runtime.terminateExecution terminates current or next JavaScript
      > call. Termination flag is automatically reset as soon as v8 call
      > or microtasks are completed.
      > 
      > R=pfeldman@chromium.org
      > 
      > Bug: chromium:820640
      > Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel
      > Change-Id: Ie21c123be3a61fe25cf6e04c38a8b6c664622ed7
      > Reviewed-on: https://chromium-review.googlesource.com/957386
      > Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
      > Reviewed-by: Dmitry Gozman <dgozman@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#51912}
      
      Bug: chromium:820640
      Change-Id: I8f270c2fdbe732f0c40bfb149d26a6e73d988253
      Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel
      Reviewed-on: https://chromium-review.googlesource.com/966681Reviewed-by: 's avatarAleksey Kozyatinskiy <kozyatinskiy@chromium.org>
      Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#52002}
      14824520
  22. 14 Mar, 2018 1 commit
  23. 13 Mar, 2018 1 commit
  24. 26 Feb, 2018 1 commit
  25. 02 Feb, 2018 1 commit
  26. 29 Nov, 2017 1 commit
  27. 23 Nov, 2017 2 commits
  28. 22 Nov, 2017 3 commits
    • Alexey Kozyatinskiy's avatar
      Reland [inspector] introduced stackTraceId and externalAsyncTask API · 885a5669
      Alexey Kozyatinskiy authored
      Sometimes we need to capture stack trace on one debugger and use it
      later as a parent stack on another debugger (e.g. worker.postMessage).
      
      This CL includes following addition to our protocol and v8-inspector.h:
        - added Runtime.StackTraceId, this id represents stack trace captured
          on debugger with given id,
        - protocol client can fetch Runtime.StackTrace by
          Runtime.StacKTraceId using Debugger.getStackTrace method,
        - externalParent field is added to Debugger.paused event, it may
          contain external parent stack trace,
        - V8Inspector::storeCurrentStackTrace captures current stack trace
          and returns V8StackTraceId for embedder this id can be used as
          argument for V8Inspector::externalAsyncTaskStarted and
          V8Inspector::externalAsyncTaskFinished method. Any async stack
          trace captured between these calls will get passed external stack
          trace as external parent. These methods are designed to be called
          on different debuggers. If async task is scheduled and started on
          one debugger user should continue to use asyncTask* API,
        - Debugger.enable methods returns unique debuggerId.
      
      TBR=dgozman@chromium.org,jgruber@chromium.org
      
      Bug: chromium:778796
      Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_chromium_rel_ng
      Change-Id: I2c1a2b2e30ed69ccb61d10f08686f4edb09f50e4
      Reviewed-on: https://chromium-review.googlesource.com/786274
      Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
      Reviewed-by: 's avatarAleksey Kozyatinskiy <kozyatinskiy@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#49591}
      885a5669
    • Clemens Hammacher's avatar
      Revert "[inspector] introduced stackTraceId and externalAsyncTask API" · 4379533c
      Clemens Hammacher authored
      This reverts commit 3a41b697.
      
      Reason for revert: Break msvc: https://build.chromium.org/p/client.v8/builders/V8%20Win64%20-%20msvc/builds/250
      
      Original change's description:
      > [inspector] introduced stackTraceId and externalAsyncTask API
      > 
      > Sometimes we need to capture stack trace on one debugger and use it
      > later as a parent stack on another debugger (e.g. worker.postMessage).
      > 
      > This CL includes following addition to our protocol and v8-inspector.h:
      >   - added Runtime.StackTraceId, this id represents stack trace captured
      >     on debugger with given id,
      >   - protocol client can fetch Runtime.StackTrace by
      >     Runtime.StacKTraceId using Debugger.getStackTrace method,
      >   - externalParent field is added to Debugger.paused event, it may
      >     contain external parent stack trace,
      >   - V8Inspector::storeCurrentStackTrace captures current stack trace
      >     and returns V8StackTraceId for embedder this id can be used as
      >     argument for V8Inspector::externalAsyncTaskStarted and
      >     V8Inspector::externalAsyncTaskFinished method. Any async stack
      >     trace captured between these calls will get passed external stack
      >     trace as external parent. These methods are designed to be called
      >     on different debuggers. If async task is scheduled and started on
      >     one debugger user should continue to use asyncTask* API,
      >   - Debugger.enable methods returns unique debuggerId.
      > 
      > Bug: chromium:778796
      > Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_chromium_rel_ng
      > Change-Id: I16aba0d04bfcea90f3e187e635a0588c92354539
      > Reviewed-on: https://chromium-review.googlesource.com/754183
      > 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@{#49582}
      
      TBR=dgozman@chromium.org,pfeldman@chromium.org,yangguo@chromium.org,kozyatinskiy@chromium.org,jgruber@chromium.org
      
      Change-Id: I9b52354fa0841e5148596cf594317f2e5fe508ea
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: chromium:778796
      Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_chromium_rel_ng
      Reviewed-on: https://chromium-review.googlesource.com/786152Reviewed-by: 's avatarClemens Hammacher <clemensh@chromium.org>
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#49584}
      4379533c
    • Alexey Kozyatinskiy's avatar
      [inspector] introduced stackTraceId and externalAsyncTask API · 3a41b697
      Alexey Kozyatinskiy authored
      Sometimes we need to capture stack trace on one debugger and use it
      later as a parent stack on another debugger (e.g. worker.postMessage).
      
      This CL includes following addition to our protocol and v8-inspector.h:
        - added Runtime.StackTraceId, this id represents stack trace captured
          on debugger with given id,
        - protocol client can fetch Runtime.StackTrace by
          Runtime.StacKTraceId using Debugger.getStackTrace method,
        - externalParent field is added to Debugger.paused event, it may
          contain external parent stack trace,
        - V8Inspector::storeCurrentStackTrace captures current stack trace
          and returns V8StackTraceId for embedder this id can be used as
          argument for V8Inspector::externalAsyncTaskStarted and
          V8Inspector::externalAsyncTaskFinished method. Any async stack
          trace captured between these calls will get passed external stack
          trace as external parent. These methods are designed to be called
          on different debuggers. If async task is scheduled and started on
          one debugger user should continue to use asyncTask* API,
        - Debugger.enable methods returns unique debuggerId.
      
      Bug: chromium:778796
      Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_chromium_rel_ng
      Change-Id: I16aba0d04bfcea90f3e187e635a0588c92354539
      Reviewed-on: https://chromium-review.googlesource.com/754183Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarDmitry Gozman <dgozman@chromium.org>
      Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#49582}
      3a41b697
  29. 21 Nov, 2017 1 commit
    • Alexey Kozyatinskiy's avatar
      [inspector] reworked async instrumentation for promises · ed9b2072
      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: 's avatarSathya Gunasekaran <gsathya@chromium.org>
      Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Reviewed-by: 's avatarDmitry Gozman <dgozman@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#49553}
      ed9b2072
  30. 14 Nov, 2017 1 commit