New issue
Advanced search Search tips

Issue 874554 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Sep 7
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 2
Type: Bug



Sign in to add a comment

Update usage of WidgetFocusManager for single-process-mash

Project Member Reported by sky@chromium.org, Aug 15

Issue description

WidgetFocusManager is currently a singleton. This is problematic with single-process-mash. I believe we need to make WidgetFocusManager specific to aura::Env. Specifically we should do the following:

. Create widget_focus_manager_aura. This has:
GetWidgetFocusManager(aura::Env*). This uses base::SupportsUserData to associate a WFM with Env. GetWidgetFocusManager(aura::Env*) implicitly creates a WFM if necessary.
. Make WidgetFocusManager::GetInstance() takes a Widget. The Widget arg is ignored on mac, but on aura it uses GetWidgetFocusManager(aura::Env*).
. Change call sites to supply Widget and/or env.
 
Owner: sky@chromium.org
Status: Assigned (was: Untriaged)
Status: Started (was: Assigned)
Project Member

Comment 3 by bugdroid1@chromium.org, Sep 7

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

commit cfa4b2aa0f7547f80d48c970092dfa08f30f7965
Author: Scott Violet <sky@chromium.org>
Date: Fri Sep 07 18:28:58 2018

views: makes WidgetFocusManager per Env on aura

As we may have two envs, WidgetFocusManager needs some context to know which
WidgetFocusManager to return.

BUG= 874554 
TEST=covered by tests

Change-Id: I397e14496351fc9839273aa7284c55cdb35555c8
Reviewed-on: https://chromium-review.googlesource.com/1212088
Reviewed-by: Jun Mukai <mukai@chromium.org>
Commit-Queue: Scott Violet <sky@chromium.org>
Cr-Commit-Position: refs/heads/master@{#589593}
[modify] https://crrev.com/cfa4b2aa0f7547f80d48c970092dfa08f30f7965/ash/accessibility/focus_ring_controller.cc
[modify] https://crrev.com/cfa4b2aa0f7547f80d48c970092dfa08f30f7965/ui/views/focus/widget_focus_manager.cc
[modify] https://crrev.com/cfa4b2aa0f7547f80d48c970092dfa08f30f7965/ui/views/focus/widget_focus_manager.h
[modify] https://crrev.com/cfa4b2aa0f7547f80d48c970092dfa08f30f7965/ui/views/widget/widget.cc

Status: Fixed (was: Started)

Sign in to add a comment