DevTools: fix clearing of value preview widgets in Sources
DevTools: fix clearing of value preview widgets in Sources

Stepping multiple times within 1000ms while paused can result in multiple
setTimeouts scheduled to clear the inline value previews. This may result in
disappearing value previews.

Also, we need to clear stale value widgets after generating new ones, to
ensure that values are shown for the current scope only.

This CL ensures there is only one 'clear' setTimeout at any time, and that
we properly clear old ones before rendering new ones.

Screenshot: https://imgur.com/a/rDnzGiv

Bug: 844665
Change-Id: I86178a0d825ebae2820170d666b85f3b6d09a745
Reviewed-on: https://chromium-review.googlesource.com/1066708
Reviewed-by: Aleksey Kozyatinskiy <562acbea96970f508ad9f5cc9fc7c62d82dd3ef8@chromium.org>
Reviewed-by: Dmitry Gozman <0ca14b32cbb359a30ac562af27dd84cc2813eacb@chromium.org>
Commit-Queue: Erik Luo <26192f5e05d23e5ee959014fb911d780e566545b@chromium.org>
Cr-Original-Commit-Position: 972c6d2dc6dd5efdad1377c0d224e03eb8f276f7@{#573443}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: dc546d851efadcfae2f35c0f8fb4f468d445e7f6
ChromeDevTools/devtools-frontend,ChromeDevTools/devtools-frontend,ChromeDevTools/devtools-frontend,dart-archive/devtools-frontend,dart-archive/devtools-frontend,dart-archive/devtools-frontend,dart-archive/devtools-frontend,dart-archive/devtools-frontend,ChromeDevTools/devtools-frontend,dart-archive/devtools-frontend,ChromeDevTools/devtools-frontend,ChromeDevTools/devtools-frontend