Skip to content

Commit

Permalink
ScreenContext is moved to components/login.
Browse files Browse the repository at this point in the history
BUG=405876
TEST=existing unit_tests and browser_tests

Review URL: https://codereview.chromium.org/672203003

Cr-Commit-Position: refs/heads/master@{#301131}
  • Loading branch information
ygorshenin authored and Commit bot committed Oct 24, 2014
1 parent 69cf147 commit 98f956e
Show file tree
Hide file tree
Showing 24 changed files with 193 additions and 92 deletions.
1 change: 1 addition & 0 deletions chrome/browser/chromeos/login/DEPS
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ include_rules = [
"+athena/screen/public",
"+athena/util",
"+components/captive_portal",
"+components/login",
"+components/user_manager",
"+extensions/components/native_app_window",

Expand Down
4 changes: 2 additions & 2 deletions chrome/browser/chromeos/login/screens/base_screen.cc
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ BaseScreen::BaseScreen(ScreenObserver* screen_observer)
BaseScreen::~BaseScreen() {
}

void BaseScreen::Initialize(ScreenContext* context) {
void BaseScreen::Initialize(::login::ScreenContext* context) {
}

void BaseScreen::OnShow() {
Expand Down Expand Up @@ -44,7 +44,7 @@ void BaseScreen::Finish(const std::string& outcome) {

}

void BaseScreen::SetContext(ScreenContext* context) {
void BaseScreen::SetContext(::login::ScreenContext* context) {
}

void BaseScreen::OnButtonPressed(const std::string& button_id) {
Expand Down
9 changes: 6 additions & 3 deletions chrome/browser/chromeos/login/screens/base_screen.h
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,12 @@ namespace base {
class DictionaryValue;
}

namespace login {
class ScreenContext;
}

namespace chromeos {

class ScreenContext;
class ScreenObserver;

// Base class for the all OOBE/login/before-session screens.
Expand Down Expand Up @@ -50,7 +53,7 @@ class BaseScreen {
// at this point. Screen can alter context, resulting context will be passed
// to JS. This method will be called once per instance of the Screen object,
// unless |IsPermanent()| returns |true|.
virtual void Initialize(ScreenContext* context);
virtual void Initialize(::login::ScreenContext* context);

// Called when screen appears.
virtual void OnShow();
Expand Down Expand Up @@ -99,7 +102,7 @@ class BaseScreen {
friend class ScreenManager;
friend class UpdateScreenTest;

void SetContext(ScreenContext* context);
void SetContext(::login::ScreenContext* context);

ScreenObserver* screen_observer_;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ void ControllerPairingScreen::PairingStageChanged(Stage new_stage) {
switch (new_stage) {
case ControllerPairingController::STAGE_DEVICES_DISCOVERY: {
desired_page = kPageDevicesDiscovery;
context_.SetStringList(kContextKeyDevices, StringList());
context_.SetStringList(kContextKeyDevices, ::login::StringList());
context_.SetString(kContextKeySelectedDevice, std::string());
device_preselected_ = false;
break;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

#include "chrome/browser/chromeos/login/screens/base_screen.h"
#include "chrome/browser/chromeos/login/screens/controller_pairing_screen_actor.h"
#include "chrome/browser/chromeos/login/screens/screen_context.h"
#include "components/login/screens/screen_context.h"
#include "components/pairing/controller_pairing_controller.h"

namespace chromeos {
Expand Down Expand Up @@ -49,7 +49,7 @@ class ControllerPairingScreen

// Context for sharing data between C++ and JS.
// TODO(dzhioev): move to BaseScreen when possible.
ScreenContext context_;
::login::ScreenContext context_;

ControllerPairingScreenActor* actor_;

Expand Down
4 changes: 2 additions & 2 deletions chrome/browser/chromeos/login/screens/host_pairing_screen.h
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
#include "base/macros.h"
#include "chrome/browser/chromeos/login/screens/base_screen.h"
#include "chrome/browser/chromeos/login/screens/host_pairing_screen_actor.h"
#include "chrome/browser/chromeos/login/screens/screen_context.h"
#include "components/login/screens/screen_context.h"
#include "components/pairing/host_pairing_controller.h"

namespace chromeos {
Expand Down Expand Up @@ -47,7 +47,7 @@ class HostPairingScreen

// Context for sharing data between C++ and JS.
// TODO(dzhioev): move to BaseScreen when possible.
ScreenContext context_;
::login::ScreenContext context_;

HostPairingScreenActor* actor_;

Expand Down
1 change: 1 addition & 0 deletions chrome/browser/ui/webui/chromeos/DEPS
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
include_rules = [
"+components/login",
"+components/user_manager",
]
34 changes: 18 additions & 16 deletions chrome/browser/ui/webui/chromeos/login/base_screen_handler.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
#include "base/bind_helpers.h"
#include "base/callback.h"
#include "base/strings/string16.h"
#include "chrome/browser/ui/webui/chromeos/login/base_screen_handler_utils.h"
#include "components/login/base_screen_handler_utils.h"
#include "content/public/browser/web_ui.h"
#include "content/public/browser/web_ui_message_handler.h"
#include "ui/gfx/native_widget_types.h"
Expand Down Expand Up @@ -115,13 +115,15 @@ class BaseScreenHandler : public content::WebUIMessageHandler {

template<typename A1>
void CallJS(const std::string& method, const A1& arg1) {
web_ui()->CallJavascriptFunction(FullMethodPath(method), MakeValue(arg1));
web_ui()->CallJavascriptFunction(FullMethodPath(method),
::login::MakeValue(arg1));
}

template<typename A1, typename A2>
void CallJS(const std::string& method, const A1& arg1, const A2& arg2) {
web_ui()->CallJavascriptFunction(FullMethodPath(method), MakeValue(arg1),
MakeValue(arg2));
web_ui()->CallJavascriptFunction(FullMethodPath(method),
::login::MakeValue(arg1),
::login::MakeValue(arg2));
}

template<typename A1, typename A2, typename A3>
Expand All @@ -130,9 +132,9 @@ class BaseScreenHandler : public content::WebUIMessageHandler {
const A2& arg2,
const A3& arg3) {
web_ui()->CallJavascriptFunction(FullMethodPath(method),
MakeValue(arg1),
MakeValue(arg2),
MakeValue(arg3));
::login::MakeValue(arg1),
::login::MakeValue(arg2),
::login::MakeValue(arg3));
}

template<typename A1, typename A2, typename A3, typename A4>
Expand All @@ -142,10 +144,10 @@ class BaseScreenHandler : public content::WebUIMessageHandler {
const A3& arg3,
const A4& arg4) {
web_ui()->CallJavascriptFunction(FullMethodPath(method),
MakeValue(arg1),
MakeValue(arg2),
MakeValue(arg3),
MakeValue(arg4));
::login::MakeValue(arg1),
::login::MakeValue(arg2),
::login::MakeValue(arg3),
::login::MakeValue(arg4));
}

// Shortcut methods for adding WebUI callbacks.
Expand All @@ -162,15 +164,15 @@ class BaseScreenHandler : public content::WebUIMessageHandler {
base::Callback<void()> callback =
base::Bind(method, base::Unretained(static_cast<T*>(this)));
web_ui()->RegisterMessageCallback(
name, base::Bind(&CallbackWrapper0, callback));
name, base::Bind(&::login::CallbackWrapper0, callback));
}

template<typename T, typename A1>
void AddCallback(const std::string& name, void (T::*method)(A1 arg1)) {
base::Callback<void(A1)> callback =
base::Bind(method, base::Unretained(static_cast<T*>(this)));
web_ui()->RegisterMessageCallback(
name, base::Bind(&CallbackWrapper1<A1>, callback));
name, base::Bind(&::login::CallbackWrapper1<A1>, callback));
}

template<typename T, typename A1, typename A2>
Expand All @@ -179,7 +181,7 @@ class BaseScreenHandler : public content::WebUIMessageHandler {
base::Callback<void(A1, A2)> callback =
base::Bind(method, base::Unretained(static_cast<T*>(this)));
web_ui()->RegisterMessageCallback(
name, base::Bind(&CallbackWrapper2<A1, A2>, callback));
name, base::Bind(&::login::CallbackWrapper2<A1, A2>, callback));
}

template<typename T, typename A1, typename A2, typename A3>
Expand All @@ -188,7 +190,7 @@ class BaseScreenHandler : public content::WebUIMessageHandler {
base::Callback<void(A1, A2, A3)> callback =
base::Bind(method, base::Unretained(static_cast<T*>(this)));
web_ui()->RegisterMessageCallback(
name, base::Bind(&CallbackWrapper3<A1, A2, A3>, callback));
name, base::Bind(&::login::CallbackWrapper3<A1, A2, A3>, callback));
}

template<typename T, typename A1, typename A2, typename A3, typename A4>
Expand All @@ -197,7 +199,7 @@ class BaseScreenHandler : public content::WebUIMessageHandler {
base::Callback<void(A1, A2, A3, A4)> callback =
base::Bind(method, base::Unretained(static_cast<T*>(this)));
web_ui()->RegisterMessageCallback(
name, base::Bind(&CallbackWrapper4<A1, A2, A3, A4>, callback));
name, base::Bind(&::login::CallbackWrapper4<A1, A2, A3, A4>, callback));
}

template <typename Method>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@

#include "base/macros.h"
#include "chrome/browser/chromeos/login/screens/host_pairing_screen_actor.h"
#include "chrome/browser/chromeos/login/screens/screen_context.h"
#include "chrome/browser/ui/webui/chromeos/login/base_screen_handler.h"
#include "components/login/screens/screen_context.h"

namespace chromeos {

Expand Down Expand Up @@ -39,7 +39,7 @@ class HostPairingScreenHandler : public HostPairingScreenActor,
bool js_context_ready_;

// Caches context changes while JS part is not ready to receive messages.
ScreenContext context_cache_;
::login::ScreenContext context_cache_;

DISALLOW_COPY_AND_ASSIGN(HostPairingScreenHandler);
};
Expand Down
3 changes: 1 addition & 2 deletions chrome/chrome_browser_chromeos.gypi
Original file line number Diff line number Diff line change
Expand Up @@ -528,8 +528,6 @@
'browser/chromeos/login/screens/reset_screen.cc',
'browser/chromeos/login/screens/reset_screen.h',
'browser/chromeos/login/screens/reset_screen_actor.h',
'browser/chromeos/login/screens/screen_context.cc',
'browser/chromeos/login/screens/screen_context.h',
'browser/chromeos/login/screens/screen_flow.h',
'browser/chromeos/login/screens/screen_observer.h',
'browser/chromeos/login/screens/terms_of_service_screen.cc',
Expand Down Expand Up @@ -1057,6 +1055,7 @@
'../chromeos/chromeos.gyp:power_manager_proto',
'../chromeos/ime/input_method.gyp:gencode',
'../components/components.gyp:cloud_policy_proto',
'../components/components.gyp:login',
'../components/components.gyp:onc_component',
'../components/components.gyp:ownership',
'../components/components.gyp:pairing',
Expand Down
2 changes: 0 additions & 2 deletions chrome/chrome_browser_ui.gypi
Original file line number Diff line number Diff line change
Expand Up @@ -940,8 +940,6 @@
'browser/ui/webui/chromeos/login/auto_enrollment_check_screen_handler.h',
'browser/ui/webui/chromeos/login/base_screen_handler.cc',
'browser/ui/webui/chromeos/login/base_screen_handler.h',
'browser/ui/webui/chromeos/login/base_screen_handler_utils.cc',
'browser/ui/webui/chromeos/login/base_screen_handler_utils.h',
'browser/ui/webui/chromeos/login/controller_pairing_screen_handler.cc',
'browser/ui/webui/chromeos/login/controller_pairing_screen_handler.h',
'browser/ui/webui/chromeos/login/core_oobe_handler.cc',
Expand Down
1 change: 0 additions & 1 deletion chrome/chrome_tests_unit.gypi
Original file line number Diff line number Diff line change
Expand Up @@ -205,7 +205,6 @@
'browser/chromeos/login/profile_auth_data_unittest.cc',
'browser/chromeos/login/saml/saml_offline_signin_limiter_unittest.cc',
'browser/chromeos/login/screens/device_disabled_screen_unittest.cc',
'browser/chromeos/login/screens/screen_context_unittest.cc',
'browser/chromeos/login/signin/merge_session_load_page_unittest.cc',
'browser/chromeos/login/supervised/supervised_user_authentication_unittest.cc',
'browser/chromeos/login/users/multi_profile_user_controller_unittest.cc',
Expand Down
2 changes: 2 additions & 0 deletions components/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ group("all_components") {
"//components/keyed_service/content",
"//components/language_usage_metrics",
"//components/leveldb_proto",
"//components/login",
"//components/metrics",
"//components/navigation_interception",
"//components/navigation_metrics",
Expand Down Expand Up @@ -226,6 +227,7 @@ test("components_unittests") {
"//components/data_reduction_proxy/core/common:unit_tests",
"//components/dom_distiller/core:unit_tests",
"//components/domain_reliability:unit_tests",
"//components/login:unit_tests",
"//components/metrics:unit_tests",
"//components/omnibox:unit_tests",
"//components/ownership:unit_tests",
Expand Down
1 change: 1 addition & 0 deletions components/components.gyp
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@
'keyed_service.gypi',
'language_usage_metrics.gypi',
'leveldb_proto.gypi',
'login.gypi',
'metrics.gypi',
'navigation_metrics.gypi',
'network_time.gypi',
Expand Down
4 changes: 4 additions & 0 deletions components/components_tests.gyp
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,7 @@
'keyed_service/core/dependency_graph_unittest.cc',
'language_usage_metrics/language_usage_metrics_unittest.cc',
'leveldb_proto/proto_database_impl_unittest.cc',
'login/screens/screen_context_unittest.cc',
'metrics/compression_utils_unittest.cc',
'metrics/daily_event_unittest.cc',
'metrics/machine_id_provider_win_unittest.cc',
Expand Down Expand Up @@ -377,6 +378,9 @@
'components.gyp:leveldb_proto',
'components.gyp:leveldb_proto_test_support',

# Dependencies of login
'components.gyp:login',

# Dependencies of metrics
'components.gyp:metrics',
'components.gyp:metrics_gpu',
Expand Down
22 changes: 22 additions & 0 deletions components/login.gypi
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# Copyright 2014 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

{
'targets': [{
'target_name': 'login',
'type': '<(component)',
'dependencies': [
'<(DEPTH)/base/base.gyp:base',
],
'defines': [
'LOGIN_IMPLEMENTATION',
],
'sources': [
'login/base_screen_handler_utils.cc',
'login/base_screen_handler_utils.h',
'login/screens/screen_context.cc',
'login/screens/screen_context.h',
],
}],
}
30 changes: 30 additions & 0 deletions components/login/BUILD.gn
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# Copyright 2014 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

component("login") {
sources = [
"base_screen_handler_utils.cc",
"base_screen_handler_utils.h",
"screens/screen_context.cc",
"screens/screen_context.h",
]

defines = [
"LOGIN_IMPLEMENTATION"
]

deps = [
"//base",
]
}

source_set("unit_tests") {
testonly = true
sources = ["screens/screen_context_unittest.cc"]

deps = [
":login",
"//testing/gtest",
]
}
8 changes: 8 additions & 0 deletions components/login/OWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
alemate@chromium.org
antrim@chromium.org
davemoore@chromium.org
dpolukhin@chromium.org
dzhioev@chromium.org
nkostylev@chromium.org
piman@chromium.org
ygorshenin@chromium.org
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "chrome/browser/ui/webui/chromeos/login/base_screen_handler_utils.h"
#include "components/login/base_screen_handler_utils.h"

namespace chromeos {
namespace login {

namespace {

Expand Down Expand Up @@ -83,4 +83,4 @@ void CallbackWrapper0(base::Callback<void()> callback,
callback.Run();
}

} // namespace chromeos
} // namespace login
Loading

0 comments on commit 98f956e

Please sign in to comment.