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

Side by Side Diff: chrome/browser/app_controller_mac.mm

Issue 585653002: After locking a profile and showing the User Manager, make Guest the active profile (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 6 years, 3 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
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 #import "chrome/browser/app_controller_mac.h" 5 #import "chrome/browser/app_controller_mac.h"
6 6
7 #include "apps/app_shim/extension_app_shim_handler_mac.h" 7 #include "apps/app_shim/extension_app_shim_handler_mac.h"
8 #include "base/auto_reset.h" 8 #include "base/auto_reset.h"
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 199 matching lines...) Expand 10 before | Expand all | Expand 10 after
210 - (void)initMenuState; 210 - (void)initMenuState;
211 - (void)initProfileMenu; 211 - (void)initProfileMenu;
212 - (void)updateConfirmToQuitPrefMenuItem:(NSMenuItem*)item; 212 - (void)updateConfirmToQuitPrefMenuItem:(NSMenuItem*)item;
213 - (void)updateDisplayMessageCenterPrefMenuItem:(NSMenuItem*)item; 213 - (void)updateDisplayMessageCenterPrefMenuItem:(NSMenuItem*)item;
214 - (void)registerServicesMenuTypesTo:(NSApplication*)app; 214 - (void)registerServicesMenuTypesTo:(NSApplication*)app;
215 - (void)openUrls:(const std::vector<GURL>&)urls; 215 - (void)openUrls:(const std::vector<GURL>&)urls;
216 - (void)getUrl:(NSAppleEventDescriptor*)event 216 - (void)getUrl:(NSAppleEventDescriptor*)event
217 withReply:(NSAppleEventDescriptor*)reply; 217 withReply:(NSAppleEventDescriptor*)reply;
218 - (void)windowLayeringDidChange:(NSNotification*)inNotification; 218 - (void)windowLayeringDidChange:(NSNotification*)inNotification;
219 - (void)activeSpaceDidChange:(NSNotification*)inNotification; 219 - (void)activeSpaceDidChange:(NSNotification*)inNotification;
220 - (void)windowChangedToProfile:(Profile*)profile;
221 - (void)checkForAnyKeyWindows; 220 - (void)checkForAnyKeyWindows;
222 - (BOOL)userWillWaitForInProgressDownloads:(int)downloadCount; 221 - (BOOL)userWillWaitForInProgressDownloads:(int)downloadCount;
223 - (BOOL)shouldQuitWithInProgressDownloads; 222 - (BOOL)shouldQuitWithInProgressDownloads;
224 - (void)executeApplication:(id)sender; 223 - (void)executeApplication:(id)sender;
225 - (void)profileWasRemoved:(const base::FilePath&)profilePath; 224 - (void)profileWasRemoved:(const base::FilePath&)profilePath;
226 @end 225 @end
227 226
228 class AppControllerProfileObserver : public ProfileInfoCacheObserver { 227 class AppControllerProfileObserver : public ProfileInfoCacheObserver {
229 public: 228 public:
230 AppControllerProfileObserver( 229 AppControllerProfileObserver(
(...skipping 401 matching lines...) Expand 10 before | Expand all | Expand 10 after
632 hasPopover_ = YES; 631 hasPopover_ = YES;
633 [self fixCloseMenuItemKeyEquivalents]; 632 [self fixCloseMenuItemKeyEquivalents];
634 } 633 }
635 634
636 // Called on Lion and later when a popover (e.g. dictionary) is closed. 635 // Called on Lion and later when a popover (e.g. dictionary) is closed.
637 - (void)popoverDidClose:(NSNotification*)notify { 636 - (void)popoverDidClose:(NSNotification*)notify {
638 hasPopover_ = NO; 637 hasPopover_ = NO;
639 [self fixCloseMenuItemKeyEquivalents]; 638 [self fixCloseMenuItemKeyEquivalents];
640 } 639 }
641 640
642 // Called when the user has changed browser windows, meaning the backing profile
643 // may have changed. This can cause a rebuild of the user-data menus. This is a
644 // no-op if the new profile is the same as the current one. This will always be
645 // the original profile and never incognito.
646 - (void)windowChangedToProfile:(Profile*)profile {
647 if (lastProfile_ == profile)
648 return;
649
650 // Before tearing down the menu controller bridges, return the Cocoa menus to
651 // their initial state.
652 if (bookmarkMenuBridge_.get())
653 bookmarkMenuBridge_->ResetMenu();
654 if (historyMenuBridge_.get())
655 historyMenuBridge_->ResetMenu();
656
657 // Rebuild the menus with the new profile.
658 lastProfile_ = profile;
659
660 bookmarkMenuBridge_.reset(new BookmarkMenuBridge(lastProfile_,
661 [[[NSApp mainMenu] itemWithTag:IDC_BOOKMARKS_MENU] submenu]));
662 // No need to |BuildMenu| here. It is done lazily upon menu access.
663
664 historyMenuBridge_.reset(new HistoryMenuBridge(lastProfile_));
665 historyMenuBridge_->BuildMenu();
666
667 chrome::BrowserCommandController::
668 UpdateSharedCommandsForIncognitoAvailability(
669 menuState_.get(), lastProfile_);
670 profilePrefRegistrar_.reset(new PrefChangeRegistrar());
671 profilePrefRegistrar_->Init(lastProfile_->GetPrefs());
672 profilePrefRegistrar_->Add(
673 prefs::kIncognitoModeAvailability,
674 base::Bind(&chrome::BrowserCommandController::
675 UpdateSharedCommandsForIncognitoAvailability,
676 menuState_.get(),
677 lastProfile_));
678 }
679
680 - (void)checkForAnyKeyWindows { 641 - (void)checkForAnyKeyWindows {
681 if ([NSApp keyWindow]) 642 if ([NSApp keyWindow])
682 return; 643 return;
683 644
684 content::NotificationService::current()->Notify( 645 content::NotificationService::current()->Notify(
685 chrome::NOTIFICATION_NO_KEY_WINDOW, 646 chrome::NOTIFICATION_NO_KEY_WINDOW,
686 content::NotificationService::AllSources(), 647 content::NotificationService::AllSources(),
687 content::NotificationService::NoDetails()); 648 content::NotificationService::NoDetails());
688 } 649 }
689 650
(...skipping 836 matching lines...) Expand 10 before | Expand all | Expand 10 after
1526 1487
1527 - (void)removeObserverForWorkAreaChange:(ui::WorkAreaWatcherObserver*)observer { 1488 - (void)removeObserverForWorkAreaChange:(ui::WorkAreaWatcherObserver*)observer {
1528 workAreaChangeObservers_.RemoveObserver(observer); 1489 workAreaChangeObservers_.RemoveObserver(observer);
1529 } 1490 }
1530 1491
1531 - (void)initAppShimMenuController { 1492 - (void)initAppShimMenuController {
1532 if (!appShimMenuController_) 1493 if (!appShimMenuController_)
1533 appShimMenuController_.reset([[AppShimMenuController alloc] init]); 1494 appShimMenuController_.reset([[AppShimMenuController alloc] init]);
1534 } 1495 }
1535 1496
1497 - (void)windowChangedToProfile:(Profile*)profile {
1498 if (lastProfile_ == profile)
1499 return;
1500
1501 // Before tearing down the menu controller bridges, return the Cocoa menus to
1502 // their initial state.
1503 if (bookmarkMenuBridge_.get())
1504 bookmarkMenuBridge_->ResetMenu();
1505 if (historyMenuBridge_.get())
1506 historyMenuBridge_->ResetMenu();
1507
1508 // Rebuild the menus with the new profile.
1509 lastProfile_ = profile;
1510
1511 bookmarkMenuBridge_.reset(new BookmarkMenuBridge(lastProfile_,
1512 [[[NSApp mainMenu] itemWithTag:IDC_BOOKMARKS_MENU] submenu]));
1513 // No need to |BuildMenu| here. It is done lazily upon menu access.
1514
1515 historyMenuBridge_.reset(new HistoryMenuBridge(lastProfile_));
1516 historyMenuBridge_->BuildMenu();
1517
1518 chrome::BrowserCommandController::
1519 UpdateSharedCommandsForIncognitoAvailability(
1520 menuState_.get(), lastProfile_);
1521 profilePrefRegistrar_.reset(new PrefChangeRegistrar());
1522 profilePrefRegistrar_->Init(lastProfile_->GetPrefs());
1523 profilePrefRegistrar_->Add(
1524 prefs::kIncognitoModeAvailability,
1525 base::Bind(&chrome::BrowserCommandController::
1526 UpdateSharedCommandsForIncognitoAvailability,
1527 menuState_.get(),
1528 lastProfile_));
1529 }
1530
1536 - (void)applicationDidChangeScreenParameters:(NSNotification*)notification { 1531 - (void)applicationDidChangeScreenParameters:(NSNotification*)notification {
1537 // During this callback the working area is not always already updated. Defer. 1532 // During this callback the working area is not always already updated. Defer.
1538 [self performSelector:@selector(delayedScreenParametersUpdate) 1533 [self performSelector:@selector(delayedScreenParametersUpdate)
1539 withObject:nil 1534 withObject:nil
1540 afterDelay:0]; 1535 afterDelay:0];
1541 } 1536 }
1542 1537
1543 - (void)delayedScreenParametersUpdate { 1538 - (void)delayedScreenParametersUpdate {
1544 FOR_EACH_OBSERVER(ui::WorkAreaWatcherObserver, workAreaChangeObservers_, 1539 FOR_EACH_OBSERVER(ui::WorkAreaWatcherObserver, workAreaChangeObservers_,
1545 WorkAreaChanged()); 1540 WorkAreaChanged());
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
1579 1574
1580 //--------------------------------------------------------------------------- 1575 //---------------------------------------------------------------------------
1581 1576
1582 namespace app_controller_mac { 1577 namespace app_controller_mac {
1583 1578
1584 bool IsOpeningNewWindow() { 1579 bool IsOpeningNewWindow() {
1585 return g_is_opening_new_window; 1580 return g_is_opening_new_window;
1586 } 1581 }
1587 1582
1588 } // namespace app_controller_mac 1583 } // namespace app_controller_mac
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698