New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 758061 link

Starred by 2 users

Issue metadata

Status: Available
Owner: ----
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 2
Type: Bug

Blocking:
issue 706860



Sign in to add a comment

Introduce new window-management related API in devtool

Project Member Reported by sadrul@chromium.org, Aug 23 2017

Issue description

New window-management related API needs to be introduced in devtool so that telemetry tests can be written to test ash performance.

To start off, we want the following APIs:
 . Enter/exit window overview mode.
 . Show/hide the window selector UI (i.e. alt-tab)
 . Open/close the app list

 

Comment 1 by sadrul@chromium.org, Aug 23 2017

Cc: dgozman@chromium.org

Comment 2 by sadrul@chromium.org, Aug 23 2017

Cc: pfeldman@chromium.org
Project Member

Comment 3 by bugdroid1@chromium.org, Sep 22 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2e81b9c27a517b5aff923e29078df7937de861b9

commit 2e81b9c27a517b5aff923e29078df7937de861b9
Author: Sadrul Habib Chowdhury <sadrul@chromium.org>
Date: Fri Sep 22 03:52:02 2017

devtools: Make the session-ids globally unique.

Instead of having each DevToolsAgentHost its own sequence of session ids,
use a global sequence, so that the delegate can uniquely identify a
session by just the session id.

BUG=758061

Change-Id: I5037613fd79dfd8f0bda21855783daad94d92349
Reviewed-on: https://chromium-review.googlesource.com/676906
Reviewed-by: Dmitry Gozman <dgozman@chromium.org>
Commit-Queue: Sadrul Chowdhury <sadrul@chromium.org>
Cr-Commit-Position: refs/heads/master@{#503648}
[modify] https://crrev.com/2e81b9c27a517b5aff923e29078df7937de861b9/content/browser/devtools/devtools_agent_host_impl.cc
[modify] https://crrev.com/2e81b9c27a517b5aff923e29078df7937de861b9/content/browser/devtools/devtools_agent_host_impl.h
[modify] https://crrev.com/2e81b9c27a517b5aff923e29078df7937de861b9/content/public/browser/devtools_manager_delegate.h

Project Member

Comment 4 by bugdroid1@chromium.org, Sep 22 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d3a45227842c31243c1ebda079e91258a35b874d

commit d3a45227842c31243c1ebda079e91258a35b874d
Author: Sadrul Habib Chowdhury <sadrul@chromium.org>
Date: Fri Sep 22 04:01:55 2017

devtools: Change how commands are handled by the delegate.

The DevToolsManagerDelegate is now able to send the protocol response
itself when it needs to (through the DevToolsAgentHost). So have the
delegate do that, instead of sending the response through the
DevToolsSession.

This change makes it possible, in follow up CLs, to use UberDispatcher
to handle the commands and send the response back using FrontendChannel.

BUG=758061
TBR=eseckler@ for //headless, for trivial update to devtools API change.

Change-Id: Ib0b521a24c4f4d26f8cd0fe3a6995141acd630ef
Reviewed-on: https://chromium-review.googlesource.com/677954
Commit-Queue: Sadrul Chowdhury <sadrul@chromium.org>
Reviewed-by: Dmitry Gozman <dgozman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#503654}
[modify] https://crrev.com/d3a45227842c31243c1ebda079e91258a35b874d/chrome/browser/devtools/chrome_devtools_manager_delegate.cc
[modify] https://crrev.com/d3a45227842c31243c1ebda079e91258a35b874d/chrome/browser/devtools/chrome_devtools_manager_delegate.h
[modify] https://crrev.com/d3a45227842c31243c1ebda079e91258a35b874d/content/browser/devtools/devtools_session.cc
[modify] https://crrev.com/d3a45227842c31243c1ebda079e91258a35b874d/content/public/browser/devtools_manager_delegate.cc
[modify] https://crrev.com/d3a45227842c31243c1ebda079e91258a35b874d/content/public/browser/devtools_manager_delegate.h
[modify] https://crrev.com/d3a45227842c31243c1ebda079e91258a35b874d/headless/lib/browser/headless_devtools_manager_delegate.cc
[modify] https://crrev.com/d3a45227842c31243c1ebda079e91258a35b874d/headless/lib/browser/headless_devtools_manager_delegate.h

Project Member

Comment 5 by bugdroid1@chromium.org, Sep 26 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/337704641b00a523cab8be01647a5446bcc54b2f

commit 337704641b00a523cab8be01647a5446bcc54b2f
Author: Sadrul Habib Chowdhury <sadrul@chromium.org>
Date: Tue Sep 26 20:36:19 2017

devtools: Add an UberDispatcher in chrome.

Dispatch the commands in Page domain through an UberDispatcher. Follow up
CLs make this change for the other domains (Browser, Target).

This is in preparation for adding WindowManager domain.

BUG=758061

Change-Id: I35e9dcae13ee9f80e4d81054bdfaf2c5292785ad
Reviewed-on: https://chromium-review.googlesource.com/674263
Commit-Queue: Sadrul Chowdhury <sadrul@chromium.org>
Reviewed-by: Pavel Feldman <pfeldman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#504474}
[modify] https://crrev.com/337704641b00a523cab8be01647a5446bcc54b2f/chrome/browser/devtools/BUILD.gn
[modify] https://crrev.com/337704641b00a523cab8be01647a5446bcc54b2f/chrome/browser/devtools/chrome_devtools_manager_delegate.cc
[modify] https://crrev.com/337704641b00a523cab8be01647a5446bcc54b2f/chrome/browser/devtools/chrome_devtools_manager_delegate.h
[add] https://crrev.com/337704641b00a523cab8be01647a5446bcc54b2f/chrome/browser/devtools/chrome_devtools_session.cc
[add] https://crrev.com/337704641b00a523cab8be01647a5446bcc54b2f/chrome/browser/devtools/chrome_devtools_session.h
[add] https://crrev.com/337704641b00a523cab8be01647a5446bcc54b2f/chrome/browser/devtools/inspector_protocol_config.json
[add] https://crrev.com/337704641b00a523cab8be01647a5446bcc54b2f/chrome/browser/devtools/protocol/page_handler.cc
[add] https://crrev.com/337704641b00a523cab8be01647a5446bcc54b2f/chrome/browser/devtools/protocol/page_handler.h
[add] https://crrev.com/337704641b00a523cab8be01647a5446bcc54b2f/chrome/browser/devtools/protocol_string.cc
[add] https://crrev.com/337704641b00a523cab8be01647a5446bcc54b2f/chrome/browser/devtools/protocol_string.h

Project Member

Comment 6 by bugdroid1@chromium.org, Sep 26 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ce2e9ff1fae34043ca204d36a8af18d9bfc4892a

commit ce2e9ff1fae34043ca204d36a8af18d9bfc4892a
Author: Sadrul Habib Chowdhury <sadrul@chromium.org>
Date: Tue Sep 26 23:07:05 2017

devtools: Use UberDispatcher for Browser commands.

BUG=758061

Change-Id: If50bfbc29088f0cde640cb540a40602650ee3bef
Reviewed-on: https://chromium-review.googlesource.com/676144
Commit-Queue: Sadrul Chowdhury <sadrul@chromium.org>
Reviewed-by: Pavel Feldman <pfeldman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#504508}
[modify] https://crrev.com/ce2e9ff1fae34043ca204d36a8af18d9bfc4892a/chrome/browser/devtools/BUILD.gn
[modify] https://crrev.com/ce2e9ff1fae34043ca204d36a8af18d9bfc4892a/chrome/browser/devtools/chrome_devtools_manager_delegate.cc
[modify] https://crrev.com/ce2e9ff1fae34043ca204d36a8af18d9bfc4892a/chrome/browser/devtools/chrome_devtools_manager_delegate.h
[modify] https://crrev.com/ce2e9ff1fae34043ca204d36a8af18d9bfc4892a/chrome/browser/devtools/chrome_devtools_session.cc
[modify] https://crrev.com/ce2e9ff1fae34043ca204d36a8af18d9bfc4892a/chrome/browser/devtools/chrome_devtools_session.h
[modify] https://crrev.com/ce2e9ff1fae34043ca204d36a8af18d9bfc4892a/chrome/browser/devtools/devtools_sanity_interactive_browsertest.cc
[modify] https://crrev.com/ce2e9ff1fae34043ca204d36a8af18d9bfc4892a/chrome/browser/devtools/inspector_protocol_config.json
[add] https://crrev.com/ce2e9ff1fae34043ca204d36a8af18d9bfc4892a/chrome/browser/devtools/protocol/browser_handler.cc
[add] https://crrev.com/ce2e9ff1fae34043ca204d36a8af18d9bfc4892a/chrome/browser/devtools/protocol/browser_handler.h

If you create a mojo API for opening the app list this could be used for the first_run tutorial.

Comment 8 by sadrul@chromium.org, Sep 27 2017

Status: Started (was: Assigned)
For running the telemetry tests in mus+ash mode, we will need to either provide mojom API for doing these work, yes, or we would need to have ash directly handle the devtools commands. I think the mojom api would be the simpler option.

For regular chrome and mushrome configs, we don't need either. That's why we are starting without the mojom. But the plan is to have that for mus+ash.
Project Member

Comment 9 by bugdroid1@chromium.org, Sep 27 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/55a4173df7bccd8501d803c3a634d6789e5bc5ff

commit 55a4173df7bccd8501d803c3a634d6789e5bc5ff
Author: Sadrul Habib Chowdhury <sadrul@chromium.org>
Date: Wed Sep 27 18:52:58 2017

ash perf: Add WM api for devtools.

Add API to get into/out of overview mode in ash for a telemetry test.

BUG=758061

Change-Id: I13dcebbde047688011f072b3e82eccfb718559ae
Reviewed-on: https://chromium-review.googlesource.com/664120
Reviewed-by: James Cook <jamescook@chromium.org>
Reviewed-by: Pavel Feldman <pfeldman@chromium.org>
Commit-Queue: Sadrul Chowdhury <sadrul@chromium.org>
Cr-Commit-Position: refs/heads/master@{#504742}
[modify] https://crrev.com/55a4173df7bccd8501d803c3a634d6789e5bc5ff/chrome/browser/devtools/BUILD.gn
[modify] https://crrev.com/55a4173df7bccd8501d803c3a634d6789e5bc5ff/chrome/browser/devtools/chrome_devtools_session.cc
[modify] https://crrev.com/55a4173df7bccd8501d803c3a634d6789e5bc5ff/chrome/browser/devtools/chrome_devtools_session.h
[add] https://crrev.com/55a4173df7bccd8501d803c3a634d6789e5bc5ff/chrome/browser/devtools/cros_protocol.json
[modify] https://crrev.com/55a4173df7bccd8501d803c3a634d6789e5bc5ff/chrome/browser/devtools/inspector_protocol_config.json
[add] https://crrev.com/55a4173df7bccd8501d803c3a634d6789e5bc5ff/chrome/browser/devtools/protocol/DEPS
[add] https://crrev.com/55a4173df7bccd8501d803c3a634d6789e5bc5ff/chrome/browser/devtools/protocol/window_manager_handler.cc
[add] https://crrev.com/55a4173df7bccd8501d803c3a634d6789e5bc5ff/chrome/browser/devtools/protocol/window_manager_handler.h
[modify] https://crrev.com/55a4173df7bccd8501d803c3a634d6789e5bc5ff/chrome/browser/devtools/protocol_string.h

Components: Internals>Services>Ash
Labels: -Proj-Mustash-Mash
Note: The current implementation is instantiated in Chrome but calls int:

ash::Shell::Get()->window_selector_controller()->ToggleOverview()

We'll need to either move WindowManagerHandler into Ash or add or extend a mojo API for this.

Labels: Proj-Mustash
Labels: -Proj-Mustash Proj-Mash-MultiProcess
Cc: sadrul@chromium.org
Owner: ----
Status: Available (was: Started)
Components: Test>Telemetry
Components: -Speed>Telemetry

Sign in to add a comment