New issue
Advanced search Search tips

Issue 856375 link

Starred by 1 user

Issue metadata

Status: Untriaged
Owner: ----
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 3
Type: Bug

Blocking:
issue 847992



Sign in to add a comment

mash: CoreOobeHandler accesses ash::Shell::GetPrimaryRootWindow()->GetHost()->event_sink()

Project Member Reported by steve...@chromium.org, Jun 25 2018

Issue description

Oobe uses an event sink to handle tab key events:

  ui::KeyEvent event(ui::ET_KEY_PRESSED, ui::VKEY_TAB, ui::EF_NONE);
  if (reverse)
    event.set_flags(ui::EF_SHIFT_DOWN);
  SendEventToSink(&event);


Using:

ui::EventSink* CoreOobeHandler::GetEventSink() {
  return ash::Shell::GetPrimaryRootWindow()->GetHost()->event_sink();
}

Source:
https://cs.chromium.org/chromium/src/chrome/browser/ui/webui/chromeos/login/core_oobe_handler.cc?l=506

 
Blocking: 847992
Cc: jdufault@chromium.org
I can't easily determine how this code is actually used but https://bugs.chromium.org/p/chromium/issues/detail?id=543865 makes me think jdufault might know, and perhaps the code can be removed once that bug is fixed
I'm not sure what this bug is for entirely, but OOBE is a full-screen webui. After tab events have cycled, the webui sends a message to C++ side telling it that it should focus the next widget (ie, login needs to focus shelf, and then shelf focuses status area, and then status area focuses login).

iirc this code is the C++ side for this; it's been refactored since I last looked (ie, EventSink seems to be a new concept since I last looked at the code).
CoreOobeHandler is in src/chrome, but the code accesses src/ash code directly, which will become invalid when we transition to out-of-process ash (aka mash).

CoreOobeHandler implements ui::EventSource which has the pure virtual method GetEventSink(). If we still need that behavior than we will need to implement GetEventSink() another way.

We will need tabbing to continue to work, however it is implemented.
Labels: Proj-Mustash
Labels: -Proj-Mustash Proj-Mash-MultiProcess
This should work fine in single-process mash, but not multi-process.
Labels: -Pri-1 Pri-3
<triage> Moving to P3 and marking available due to lack of target milestone and activity, please update if this is a priority. </triage>

Sign in to add a comment