| Index: content/browser/gamepad/gamepad_service.cc
|
| diff --git a/content/browser/gamepad/gamepad_service.cc b/content/browser/gamepad/gamepad_service.cc
|
| index a2a83b316fab6b9c28103873f954d91bfcdbb7ee..42b1e10821607d112203d281e86698894d2a0f01 100644
|
| --- a/content/browser/gamepad/gamepad_service.cc
|
| +++ b/content/browser/gamepad/gamepad_service.cc
|
| @@ -15,24 +15,36 @@
|
|
|
| namespace content {
|
|
|
| +namespace {
|
| +GamepadService* g_gamepad_service = 0;
|
| +}
|
| +
|
| GamepadService::GamepadService()
|
| : num_active_consumers_(0),
|
| gesture_callback_pending_(false) {
|
| + SetInstance();
|
| }
|
|
|
| GamepadService::GamepadService(scoped_ptr<GamepadDataFetcher> fetcher)
|
| : provider_(new GamepadProvider(fetcher.Pass())),
|
| num_active_consumers_(0),
|
| gesture_callback_pending_(false) {
|
| + SetInstance();
|
| thread_checker_.DetachFromThread();
|
| }
|
|
|
| GamepadService::~GamepadService() {
|
| }
|
|
|
| +void GamepadService::SetInstance() {
|
| + CHECK(!g_gamepad_service);
|
| + g_gamepad_service = this;
|
| +}
|
| +
|
| GamepadService* GamepadService::GetInstance() {
|
| - return Singleton<GamepadService,
|
| - LeakySingletonTraits<GamepadService> >::get();
|
| + if (!g_gamepad_service)
|
| + g_gamepad_service = new GamepadService;
|
| + return g_gamepad_service;
|
| }
|
|
|
| void GamepadService::ConsumerBecameActive(GamepadConsumer* consumer) {
|
| @@ -46,6 +58,7 @@ void GamepadService::ConsumerBecameActive(GamepadConsumer* consumer) {
|
| insert_result.first->is_active = true;
|
| if (!insert_result.first->did_observe_user_gesture &&
|
| !gesture_callback_pending_) {
|
| + gesture_callback_pending_ = true;
|
| provider_->RegisterForUserGesture(
|
| base::Bind(&GamepadService::OnUserGesture,
|
| base::Unretained(this)));
|
|
|