Index: chrome/browser/ui/browser.cc |
diff --git a/chrome/browser/ui/browser.cc b/chrome/browser/ui/browser.cc |
index 1745f7127ee3d5f88df2fbd04f1e5404886d4166..76085e9d3ad10eddd3a48b00830b7a6632f3f598 100644 |
--- a/chrome/browser/ui/browser.cc |
+++ b/chrome/browser/ui/browser.cc |
@@ -104,6 +104,7 @@ |
#include "chrome/browser/ui/chrome_pages.h" |
#include "chrome/browser/ui/chrome_select_file_policy.h" |
#include "chrome/browser/ui/exclusive_access/fullscreen_controller.h" |
+#include "chrome/browser/ui/exclusive_access/mouse_lock_controller.h" |
#include "chrome/browser/ui/fast_unload_controller.h" |
#include "chrome/browser/ui/find_bar/find_bar.h" |
#include "chrome/browser/ui/find_bar/find_bar_controller.h" |
@@ -444,7 +445,7 @@ Browser::Browser(const CreateParams& params) |
#endif // defined(OS_WIN) |
} |
- fullscreen_controller_.reset(new FullscreenController(this)); |
+ exclusive_access_manager_.reset(new ExclusiveAccessManager(this)); |
// Must be initialized after window_. |
// Also: surprise! a modal dialog host is not necessary to host modal dialogs |
@@ -784,7 +785,8 @@ Browser::DownloadClosePreventionType Browser::OkToCloseWithInProgressDownloads( |
// Browser, Tab adding/showing functions: |
void Browser::WindowFullscreenStateChanged() { |
- fullscreen_controller_->WindowFullscreenStateChanged(); |
+ exclusive_access_manager_->fullscreen_controller() |
+ ->WindowFullscreenStateChanged(); |
command_controller_->FullscreenStateChanged(); |
UpdateBookmarkBarState(BOOKMARK_BAR_STATE_CHANGE_TOGGLE_FULLSCREEN); |
} |
@@ -793,8 +795,8 @@ void Browser::WindowFullscreenStateChanged() { |
// Browser, Assorted browser commands: |
void Browser::ToggleFullscreenModeWithExtension(const GURL& extension_url) { |
- fullscreen_controller_-> |
- ToggleBrowserFullscreenModeWithExtension(extension_url); |
+ exclusive_access_manager_->fullscreen_controller() |
+ ->ToggleBrowserFullscreenModeWithExtension(extension_url); |
} |
bool Browser::SupportsWindowFeature(WindowFeature feature) const { |
@@ -944,7 +946,7 @@ void Browser::TabInsertedAt(WebContents* contents, |
void Browser::TabClosingAt(TabStripModel* tab_strip_model, |
WebContents* contents, |
int index) { |
- fullscreen_controller_->OnTabClosing(contents); |
+ exclusive_access_manager_->OnTabClosing(contents); |
SessionService* session_service = |
SessionServiceFactory::GetForProfile(profile_); |
if (session_service) |
@@ -980,7 +982,7 @@ void Browser::TabDetachedAt(WebContents* contents, int index) { |
} |
void Browser::TabDeactivated(WebContents* contents) { |
- fullscreen_controller_->OnTabDeactivated(contents); |
+ exclusive_access_manager_->OnTabDeactivated(contents); |
search_delegate_->OnTabDeactivated(contents); |
SearchTabHelper::FromWebContents(contents)->OnTabDeactivated(); |
@@ -1008,7 +1010,7 @@ void Browser::ActiveTabChanged(WebContents* old_contents, |
// is updated. |
window_->OnActiveTabChanged(old_contents, new_contents, index, reason); |
- fullscreen_controller_->OnTabDetachedFromView(old_contents); |
+ exclusive_access_manager_->OnTabDetachedFromView(old_contents); |
// Discarded tabs always get reloaded. |
if (tab_strip_model_->IsTabDiscarded(index)) { |
@@ -1080,7 +1082,7 @@ void Browser::TabReplacedAt(TabStripModel* tab_strip_model, |
WebContents* new_contents, |
int index) { |
TabDetachedAtImpl(old_contents, index, DETACH_TYPE_REPLACE); |
- fullscreen_controller_->OnTabClosing(old_contents); |
+ exclusive_access_manager_->OnTabClosing(old_contents); |
SessionService* session_service = |
SessionServiceFactory::GetForProfile(profile_); |
if (session_service) |
@@ -1180,10 +1182,10 @@ bool Browser::ShouldPreserveAbortedURLs(WebContents* source) { |
bool Browser::PreHandleKeyboardEvent(content::WebContents* source, |
const NativeWebKeyboardEvent& event, |
bool* is_keyboard_shortcut) { |
- // Escape exits tabbed fullscreen mode. |
+ // Escape exits tabbed fullscreen mode and mouse lock, and possibly others. |
// TODO(koz): Write a test for this http://crbug.com/100441. |
if (event.windowsKeyCode == 27 && |
- fullscreen_controller_->HandleUserPressedEscape()) { |
+ exclusive_access_manager_->HandleUserPressedEscape()) { |
return true; |
} |
return window()->PreHandleKeyboardEvent(event, is_keyboard_shortcut); |
@@ -1261,7 +1263,7 @@ bool Browser::CanDragEnter(content::WebContents* source, |
} |
bool Browser::IsMouseLocked() const { |
- return fullscreen_controller_->IsMouseLocked(); |
+ return exclusive_access_manager_->mouse_lock_controller()->IsMouseLocked(); |
} |
void Browser::OnWindowDidShow() { |
@@ -1665,16 +1667,19 @@ bool Browser::EmbedsFullscreenWidget() const { |
void Browser::EnterFullscreenModeForTab(WebContents* web_contents, |
const GURL& origin) { |
- fullscreen_controller_->EnterFullscreenModeForTab(web_contents, origin); |
+ exclusive_access_manager_->fullscreen_controller()->EnterFullscreenModeForTab( |
+ web_contents, origin); |
} |
void Browser::ExitFullscreenModeForTab(WebContents* web_contents) { |
- fullscreen_controller_->ExitFullscreenModeForTab(web_contents); |
+ exclusive_access_manager_->fullscreen_controller()->ExitFullscreenModeForTab( |
+ web_contents); |
} |
bool Browser::IsFullscreenForTabOrPending( |
const WebContents* web_contents) const { |
- return fullscreen_controller_->IsFullscreenForTabOrPending(web_contents); |
+ return exclusive_access_manager_->fullscreen_controller() |
+ ->IsFullscreenForTabOrPending(web_contents); |
} |
void Browser::RegisterProtocolHandler(WebContents* web_contents, |
@@ -1770,13 +1775,12 @@ void Browser::FindReply(WebContents* web_contents, |
void Browser::RequestToLockMouse(WebContents* web_contents, |
bool user_gesture, |
bool last_unlocked_by_target) { |
- fullscreen_controller_->RequestToLockMouse(web_contents, |
- user_gesture, |
- last_unlocked_by_target); |
+ exclusive_access_manager_->mouse_lock_controller()->RequestToLockMouse( |
+ web_contents, user_gesture, last_unlocked_by_target); |
} |
void Browser::LostMouseLock() { |
- fullscreen_controller_->LostMouseLock(); |
+ exclusive_access_manager_->mouse_lock_controller()->LostMouseLock(); |
} |
void Browser::RequestMediaAccessPermission( |