Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(482)

Side by Side Diff: chrome/browser/ui/browser.cc

Issue 9359022: Aura: Support hovering restore & close buttons for full screen apps (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix browser_test Created 8 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/browser/ui/browser.h ('k') | chrome/browser/ui/browser_tab_restore_service_delegate.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/ui/browser.h" 5 #include "chrome/browser/ui/browser.h"
6 6
7 #if defined(OS_WIN) 7 #if defined(OS_WIN)
8 #include <windows.h> 8 #include <windows.h>
9 #include <shellapi.h> 9 #include <shellapi.h>
10 #endif // OS_WIN 10 #endif // OS_WIN
(...skipping 305 matching lines...) Expand 10 before | Expand all | Expand 10 after
316 return true; 316 return true;
317 } 317 }
318 318
319 } // namespace 319 } // namespace
320 320
321 //////////////////////////////////////////////////////////////////////////////// 321 ////////////////////////////////////////////////////////////////////////////////
322 // Browser, CreateParams: 322 // Browser, CreateParams:
323 323
324 Browser::CreateParams::CreateParams(Type type, Profile* profile) 324 Browser::CreateParams::CreateParams(Type type, Profile* profile)
325 : type(type), 325 : type(type),
326 profile(profile) { 326 profile(profile),
327 initial_show_state(ui::SHOW_STATE_DEFAULT),
328 is_session_restore(false) {
327 } 329 }
328 330
329 /////////////////////////////////////////////////////////////////////////////// 331 ///////////////////////////////////////////////////////////////////////////////
330 // Browser, Constructors, Creation, Showing: 332 // Browser, Constructors, Creation, Showing:
331 333
332 Browser::Browser(Type type, Profile* profile) 334 Browser::Browser(Type type, Profile* profile)
333 : type_(type), 335 : type_(type),
334 profile_(profile), 336 profile_(profile),
335 window_(NULL), 337 window_(NULL),
336 ALLOW_THIS_IN_INITIALIZER_LIST( 338 ALLOW_THIS_IN_INITIALIZER_LIST(
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after
481 483
482 // static 484 // static
483 Browser* Browser::Create(Profile* profile) { 485 Browser* Browser::Create(Profile* profile) {
484 Browser* browser = new Browser(TYPE_TABBED, profile); 486 Browser* browser = new Browser(TYPE_TABBED, profile);
485 browser->InitBrowserWindow(); 487 browser->InitBrowserWindow();
486 return browser; 488 return browser;
487 } 489 }
488 490
489 // static 491 // static
490 Browser* Browser::CreateWithParams(const CreateParams& params) { 492 Browser* Browser::CreateWithParams(const CreateParams& params) {
493 if (!params.app_name.empty())
494 RegisterAppPrefs(params.app_name, params.profile);
495
491 Browser* browser = new Browser(params.type, params.profile); 496 Browser* browser = new Browser(params.type, params.profile);
492 browser->app_name_ = params.app_name; 497 browser->app_name_ = params.app_name;
493 browser->set_override_bounds(params.initial_bounds); 498 browser->set_override_bounds(params.initial_bounds);
499 browser->set_show_state(params.initial_show_state);
500 browser->set_is_session_restore(params.is_session_restore);
501
494 browser->InitBrowserWindow(); 502 browser->InitBrowserWindow();
495 return browser; 503 return browser;
496 } 504 }
497 505
498 // static 506 // static
499 Browser* Browser::CreateForType(Type type, Profile* profile) { 507 Browser* Browser::CreateForType(Type type, Profile* profile) {
500 CreateParams params(type, profile); 508 CreateParams params(type, profile);
501 return CreateWithParams(params); 509 return CreateWithParams(params);
502 } 510 }
503 511
504 // static 512 // static
505 Browser* Browser::CreateForApp(Type type, 513 Browser* Browser::CreateForApp(Type type,
506 const std::string& app_name, 514 const std::string& app_name,
507 const gfx::Rect& window_bounds, 515 const gfx::Rect& window_bounds,
508 Profile* profile) { 516 Profile* profile) {
509 DCHECK(type != TYPE_TABBED); 517 DCHECK(type != TYPE_TABBED);
510 DCHECK(!app_name.empty()); 518 DCHECK(!app_name.empty());
511 519
512 RegisterAppPrefs(app_name, profile);
513
514 #if !defined(OS_CHROMEOS) || defined(USE_AURA) 520 #if !defined(OS_CHROMEOS) || defined(USE_AURA)
515 if (type == TYPE_PANEL && 521 if (type == TYPE_PANEL &&
516 !PanelManager::ShouldUsePanels( 522 !PanelManager::ShouldUsePanels(
517 web_app::GetExtensionIdFromApplicationName(app_name))) { 523 web_app::GetExtensionIdFromApplicationName(app_name))) {
518 type = TYPE_POPUP; 524 type = TYPE_POPUP;
519 } 525 }
520 #if defined(TOOLKIT_GTK) 526 #if defined(TOOLKIT_GTK)
521 // Panels are only supported on a white list of window managers for Linux. 527 // Panels are only supported on a white list of window managers for Linux.
522 if (type == TYPE_PANEL) { 528 if (type == TYPE_PANEL) {
523 ui::WindowManagerName wm_type = ui::GuessWindowManager(); 529 ui::WindowManagerName wm_type = ui::GuessWindowManager();
(...skipping 456 matching lines...) Expand 10 before | Expand all | Expand 10 after
980 return name; 986 return name;
981 } 987 }
982 988
983 bool Browser::ShouldSaveWindowPlacement() const { 989 bool Browser::ShouldSaveWindowPlacement() const {
984 switch (type_) { 990 switch (type_) {
985 case TYPE_TABBED: 991 case TYPE_TABBED:
986 return true; 992 return true;
987 case TYPE_POPUP: 993 case TYPE_POPUP:
988 // Only save the window placement of popups if they are restored, 994 // Only save the window placement of popups if they are restored,
989 // or the window belongs to DevTools. 995 // or the window belongs to DevTools.
996 #if defined USE_AURA
997 if (is_app())
998 return true;
999 #endif
990 return browser_defaults::kRestorePopups || is_devtools(); 1000 return browser_defaults::kRestorePopups || is_devtools();
991 case TYPE_PANEL: 1001 case TYPE_PANEL:
992 // Do not save the window placement of panels. 1002 // Do not save the window placement of panels.
993 return false; 1003 return false;
994 default: 1004 default:
995 return false; 1005 return false;
996 } 1006 }
997 } 1007 }
998 1008
999 void Browser::SaveWindowPlacement(const gfx::Rect& bounds, 1009 void Browser::SaveWindowPlacement(const gfx::Rect& bounds,
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
1039 int x, y; 1049 int x, y;
1040 if (ParseCommaSeparatedIntegers(str, &x, &y)) 1050 if (ParseCommaSeparatedIntegers(str, &x, &y))
1041 restored_bounds.set_origin(gfx::Point(x, y)); 1051 restored_bounds.set_origin(gfx::Point(x, y));
1042 } 1052 }
1043 1053
1044 return restored_bounds; 1054 return restored_bounds;
1045 } 1055 }
1046 1056
1047 ui::WindowShowState Browser::GetSavedWindowShowState() const { 1057 ui::WindowShowState Browser::GetSavedWindowShowState() const {
1048 // Only tabbed browsers use the command line or preference state. 1058 // Only tabbed browsers use the command line or preference state.
1049 if (!is_type_tabbed()) 1059 bool show_state = !is_type_tabbed();
1060
1061 #if defined(USE_AURA)
1062 // Apps save state on aura.
1063 show_state &= !is_app();
1064 #endif
1065
1066 if (show_state)
1050 return show_state_; 1067 return show_state_;
1051 1068
1052 if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kStartMaximized)) 1069 if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kStartMaximized))
1053 return ui::SHOW_STATE_MAXIMIZED; 1070 return ui::SHOW_STATE_MAXIMIZED;
1054 1071
1055 if (show_state_ != ui::SHOW_STATE_DEFAULT) 1072 if (show_state_ != ui::SHOW_STATE_DEFAULT)
1056 return show_state_; 1073 return show_state_;
1057 1074
1058 const DictionaryValue* window_pref = 1075 const DictionaryValue* window_pref =
1059 profile()->GetPrefs()->GetDictionary(GetWindowPlacementKey().c_str()); 1076 profile()->GetPrefs()->GetDictionary(GetWindowPlacementKey().c_str());
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
1156 1173
1157 // Don't use GetForProfileIfExisting here, we want to force creation of the 1174 // Don't use GetForProfileIfExisting here, we want to force creation of the
1158 // session service so that user can restore what was open. 1175 // session service so that user can restore what was open.
1159 SessionService* session_service = 1176 SessionService* session_service =
1160 SessionServiceFactory::GetForProfile(profile()); 1177 SessionServiceFactory::GetForProfile(profile());
1161 if (session_service) 1178 if (session_service)
1162 session_service->WindowClosing(session_id()); 1179 session_service->WindowClosing(session_id());
1163 1180
1164 TabRestoreService* tab_restore_service = 1181 TabRestoreService* tab_restore_service =
1165 TabRestoreServiceFactory::GetForProfile(profile()); 1182 TabRestoreServiceFactory::GetForProfile(profile());
1183
1184 #if defined(USE_AURA)
1185 if (tab_restore_service && is_app())
1186 tab_restore_service->BrowserClosing(tab_restore_service_delegate());
1187 #endif
1188
1166 if (tab_restore_service && is_type_tabbed() && tab_count()) 1189 if (tab_restore_service && is_type_tabbed() && tab_count())
1167 tab_restore_service->BrowserClosing(tab_restore_service_delegate()); 1190 tab_restore_service->BrowserClosing(tab_restore_service_delegate());
1168 1191
1169 // TODO(sky): convert session/tab restore to use notification. 1192 // TODO(sky): convert session/tab restore to use notification.
1170 content::NotificationService::current()->Notify( 1193 content::NotificationService::current()->Notify(
1171 chrome::NOTIFICATION_BROWSER_CLOSING, 1194 chrome::NOTIFICATION_BROWSER_CLOSING,
1172 content::Source<Browser>(this), 1195 content::Source<Browser>(this),
1173 content::Details<bool>(&exiting)); 1196 content::Details<bool>(&exiting));
1174 1197
1175 CloseAllTabs(); 1198 CloseAllTabs();
(...skipping 4408 matching lines...) Expand 10 before | Expand all | Expand 10 after
5584 ShowSingletonTabOverwritingNTP(params); 5607 ShowSingletonTabOverwritingNTP(params);
5585 } else { 5608 } else {
5586 LoginUIServiceFactory::GetForProfile( 5609 LoginUIServiceFactory::GetForProfile(
5587 profile()->GetOriginalProfile())->ShowLoginUI(); 5610 profile()->GetOriginalProfile())->ShowLoginUI();
5588 } 5611 }
5589 } 5612 }
5590 5613
5591 void Browser::ToggleSpeechInput() { 5614 void Browser::ToggleSpeechInput() {
5592 GetSelectedWebContents()->GetRenderViewHost()->ToggleSpeechInput(); 5615 GetSelectedWebContents()->GetRenderViewHost()->ToggleSpeechInput();
5593 } 5616 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/browser.h ('k') | chrome/browser/ui/browser_tab_restore_service_delegate.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698