New issue
Advanced search Search tips

Issue 685287 link

Starred by 0 users

Issue metadata

Status: Assigned
Owner:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug

Blocked on:
issue 672142



Sign in to add a comment

Login View/Model should have a simpler binding mechanism

Project Member Reported by jdufault@chromium.org, Jan 25 2017

Issue description

Login View/Model should have a simpler binding mechanism

Right now external code is responsible for binding the View to the Model and the Model to the View. The external code is also responsible for doing the unbinding.

Since these two classes types live in unison, we should make binding simpler and more robust by moving the binding logic into some common parent types. Unbinding should happen automatically when either the Model or View goes down (potentially using WeakPtr).
 
Project Member

Comment 1 by bugdroid1@chromium.org, Mar 4 2017

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

commit 6dfeb5c0053434339445c146105c756334502ea9
Author: jdufault <jdufault@chromium.org>
Date: Sat Mar 04 06:47:54 2017

cros: Break BaseScreenHandler into two classes.

Not every type which derived from BaseScreenHandler was actually a
screen handler. Try to encapsulate that in the type hierarchy.

Store the screen type the handler models inside the handler to allow
dynamic fetching of the handler based on an OobeScreen instance.

Also try to make it clear when a Handler calls ShowScreen or similar
with it's own OobeScreen.

BUG=685287

Review-Url: https://codereview.chromium.org/2713513009
Cr-Commit-Position: refs/heads/master@{#454766}

[modify] https://crrev.com/6dfeb5c0053434339445c146105c756334502ea9/chrome/browser/chromeos/login/enrollment/auto_enrollment_check_screen_view.h
[modify] https://crrev.com/6dfeb5c0053434339445c146105c756334502ea9/chrome/browser/chromeos/login/enrollment/enrollment_screen_view.h
[modify] https://crrev.com/6dfeb5c0053434339445c146105c756334502ea9/chrome/browser/chromeos/login/screens/app_launch_splash_screen_view.h
[modify] https://crrev.com/6dfeb5c0053434339445c146105c756334502ea9/chrome/browser/chromeos/login/screens/arc_kiosk_splash_screen_view.h
[modify] https://crrev.com/6dfeb5c0053434339445c146105c756334502ea9/chrome/browser/chromeos/login/screens/arc_terms_of_service_screen_view.h
[modify] https://crrev.com/6dfeb5c0053434339445c146105c756334502ea9/chrome/browser/chromeos/login/screens/base_screen.h
[modify] https://crrev.com/6dfeb5c0053434339445c146105c756334502ea9/chrome/browser/chromeos/login/screens/controller_pairing_screen_view.h
[modify] https://crrev.com/6dfeb5c0053434339445c146105c756334502ea9/chrome/browser/chromeos/login/screens/device_disabled_screen_view.h
[modify] https://crrev.com/6dfeb5c0053434339445c146105c756334502ea9/chrome/browser/chromeos/login/screens/enable_debugging_screen_view.h
[modify] https://crrev.com/6dfeb5c0053434339445c146105c756334502ea9/chrome/browser/chromeos/login/screens/eula_view.h
[modify] https://crrev.com/6dfeb5c0053434339445c146105c756334502ea9/chrome/browser/chromeos/login/screens/gaia_view.h
[modify] https://crrev.com/6dfeb5c0053434339445c146105c756334502ea9/chrome/browser/chromeos/login/screens/hid_detection_view.h
[modify] https://crrev.com/6dfeb5c0053434339445c146105c756334502ea9/chrome/browser/chromeos/login/screens/host_pairing_screen_view.h
[modify] https://crrev.com/6dfeb5c0053434339445c146105c756334502ea9/chrome/browser/chromeos/login/screens/kiosk_autolaunch_screen_view.h
[modify] https://crrev.com/6dfeb5c0053434339445c146105c756334502ea9/chrome/browser/chromeos/login/screens/kiosk_enable_screen_view.h
[modify] https://crrev.com/6dfeb5c0053434339445c146105c756334502ea9/chrome/browser/chromeos/login/screens/network_error_view.h
[modify] https://crrev.com/6dfeb5c0053434339445c146105c756334502ea9/chrome/browser/chromeos/login/screens/network_view.h
[modify] https://crrev.com/6dfeb5c0053434339445c146105c756334502ea9/chrome/browser/chromeos/login/screens/reset_view.h
[modify] https://crrev.com/6dfeb5c0053434339445c146105c756334502ea9/chrome/browser/chromeos/login/screens/terms_of_service_screen_view.h
[modify] https://crrev.com/6dfeb5c0053434339445c146105c756334502ea9/chrome/browser/chromeos/login/screens/update_view.h
[modify] https://crrev.com/6dfeb5c0053434339445c146105c756334502ea9/chrome/browser/chromeos/login/screens/user_image_view.h
[modify] https://crrev.com/6dfeb5c0053434339445c146105c756334502ea9/chrome/browser/chromeos/login/screens/wrong_hwid_screen_view.h
[modify] https://crrev.com/6dfeb5c0053434339445c146105c756334502ea9/chrome/browser/chromeos/login/ui/views/user_board_view.h
[modify] https://crrev.com/6dfeb5c0053434339445c146105c756334502ea9/chrome/browser/ui/BUILD.gn
[modify] https://crrev.com/6dfeb5c0053434339445c146105c756334502ea9/chrome/browser/ui/webui/chromeos/login/app_launch_splash_screen_handler.cc
[modify] https://crrev.com/6dfeb5c0053434339445c146105c756334502ea9/chrome/browser/ui/webui/chromeos/login/arc_kiosk_splash_screen_handler.cc
[modify] https://crrev.com/6dfeb5c0053434339445c146105c756334502ea9/chrome/browser/ui/webui/chromeos/login/arc_terms_of_service_screen_handler.cc
[modify] https://crrev.com/6dfeb5c0053434339445c146105c756334502ea9/chrome/browser/ui/webui/chromeos/login/auto_enrollment_check_screen_handler.cc
[modify] https://crrev.com/6dfeb5c0053434339445c146105c756334502ea9/chrome/browser/ui/webui/chromeos/login/base_screen_handler.cc
[modify] https://crrev.com/6dfeb5c0053434339445c146105c756334502ea9/chrome/browser/ui/webui/chromeos/login/base_screen_handler.h
[add] https://crrev.com/6dfeb5c0053434339445c146105c756334502ea9/chrome/browser/ui/webui/chromeos/login/base_webui_handler.cc
[add] https://crrev.com/6dfeb5c0053434339445c146105c756334502ea9/chrome/browser/ui/webui/chromeos/login/base_webui_handler.h
[modify] https://crrev.com/6dfeb5c0053434339445c146105c756334502ea9/chrome/browser/ui/webui/chromeos/login/controller_pairing_screen_handler.cc
[modify] https://crrev.com/6dfeb5c0053434339445c146105c756334502ea9/chrome/browser/ui/webui/chromeos/login/core_oobe_handler.cc
[modify] https://crrev.com/6dfeb5c0053434339445c146105c756334502ea9/chrome/browser/ui/webui/chromeos/login/core_oobe_handler.h
[modify] https://crrev.com/6dfeb5c0053434339445c146105c756334502ea9/chrome/browser/ui/webui/chromeos/login/device_disabled_screen_handler.cc
[modify] https://crrev.com/6dfeb5c0053434339445c146105c756334502ea9/chrome/browser/ui/webui/chromeos/login/enable_debugging_screen_handler.cc
[modify] https://crrev.com/6dfeb5c0053434339445c146105c756334502ea9/chrome/browser/ui/webui/chromeos/login/enrollment_screen_handler.cc
[modify] https://crrev.com/6dfeb5c0053434339445c146105c756334502ea9/chrome/browser/ui/webui/chromeos/login/error_screen_handler.cc
[modify] https://crrev.com/6dfeb5c0053434339445c146105c756334502ea9/chrome/browser/ui/webui/chromeos/login/eula_screen_handler.cc
[modify] https://crrev.com/6dfeb5c0053434339445c146105c756334502ea9/chrome/browser/ui/webui/chromeos/login/gaia_screen_handler.cc
[modify] https://crrev.com/6dfeb5c0053434339445c146105c756334502ea9/chrome/browser/ui/webui/chromeos/login/hid_detection_screen_handler.cc
[modify] https://crrev.com/6dfeb5c0053434339445c146105c756334502ea9/chrome/browser/ui/webui/chromeos/login/host_pairing_screen_handler.cc
[modify] https://crrev.com/6dfeb5c0053434339445c146105c756334502ea9/chrome/browser/ui/webui/chromeos/login/kiosk_autolaunch_screen_handler.cc
[modify] https://crrev.com/6dfeb5c0053434339445c146105c756334502ea9/chrome/browser/ui/webui/chromeos/login/kiosk_enable_screen_handler.cc
[modify] https://crrev.com/6dfeb5c0053434339445c146105c756334502ea9/chrome/browser/ui/webui/chromeos/login/network_dropdown_handler.h
[modify] https://crrev.com/6dfeb5c0053434339445c146105c756334502ea9/chrome/browser/ui/webui/chromeos/login/network_screen_handler.cc
[modify] https://crrev.com/6dfeb5c0053434339445c146105c756334502ea9/chrome/browser/ui/webui/chromeos/login/oobe_ui.cc
[modify] https://crrev.com/6dfeb5c0053434339445c146105c756334502ea9/chrome/browser/ui/webui/chromeos/login/oobe_ui.h
[modify] https://crrev.com/6dfeb5c0053434339445c146105c756334502ea9/chrome/browser/ui/webui/chromeos/login/reset_screen_handler.cc
[modify] https://crrev.com/6dfeb5c0053434339445c146105c756334502ea9/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc
[modify] https://crrev.com/6dfeb5c0053434339445c146105c756334502ea9/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.h
[modify] https://crrev.com/6dfeb5c0053434339445c146105c756334502ea9/chrome/browser/ui/webui/chromeos/login/supervised_user_creation_screen_handler.cc
[modify] https://crrev.com/6dfeb5c0053434339445c146105c756334502ea9/chrome/browser/ui/webui/chromeos/login/terms_of_service_screen_handler.cc
[modify] https://crrev.com/6dfeb5c0053434339445c146105c756334502ea9/chrome/browser/ui/webui/chromeos/login/update_screen_handler.cc
[modify] https://crrev.com/6dfeb5c0053434339445c146105c756334502ea9/chrome/browser/ui/webui/chromeos/login/user_board_screen_handler.cc
[modify] https://crrev.com/6dfeb5c0053434339445c146105c756334502ea9/chrome/browser/ui/webui/chromeos/login/user_image_screen_handler.cc
[modify] https://crrev.com/6dfeb5c0053434339445c146105c756334502ea9/chrome/browser/ui/webui/chromeos/login/wrong_hwid_screen_handler.cc

Sign in to add a comment