blob: db499c579c37d79a4f2e80ffce72073eb1338112 [file] [log] [blame]
// Copyright 2013 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/browser/ui/views/frame/immersive_mode_controller.h"
#include "base/observer_list.h"
#include "chrome/browser/ui/browser_window/public/browser_window_interface.h"
#include "ui/base/unowned_user_data/scoped_unowned_user_data.h"
DEFINE_USER_DATA(ImmersiveModeController);
// static
ImmersiveModeController* ImmersiveModeController::From(
BrowserWindowInterface* browser) {
return Get(browser->GetUnownedUserDataHost());
}
ImmersiveModeController::ImmersiveModeController(
BrowserWindowInterface* browser)
: scoped_unowned_user_data_(browser->GetUnownedUserDataHost(), *this) {}
ImmersiveModeController::~ImmersiveModeController() {
observers_.Notify(&Observer::OnImmersiveModeControllerDestroyed);
}
void ImmersiveModeController::AddObserver(Observer* observer) {
observers_.AddObserver(observer);
}
void ImmersiveModeController::RemoveObserver(Observer* observer) {
observers_.RemoveObserver(observer);
}