| OLD | NEW |
| 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 "base/auto_reset.h" | 7 #include "base/auto_reset.h" |
| 8 #include "base/bind.h" | 8 #include "base/bind.h" |
| 9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
| 10 #include "base/files/file_path.h" | 10 #include "base/files/file_path.h" |
| (...skipping 567 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 578 // Build up the encoding menu, the order of the items differs based on the | 578 // Build up the encoding menu, the order of the items differs based on the |
| 579 // current locale (see http://crbug.com/7647 for details). | 579 // current locale (see http://crbug.com/7647 for details). |
| 580 // We need a valid g_browser_process to get the profile which is why we can't | 580 // We need a valid g_browser_process to get the profile which is why we can't |
| 581 // call this from awakeFromNib. | 581 // call this from awakeFromNib. |
| 582 NSMenu* viewMenu = [[[NSApp mainMenu] itemWithTag:IDC_VIEW_MENU] submenu]; | 582 NSMenu* viewMenu = [[[NSApp mainMenu] itemWithTag:IDC_VIEW_MENU] submenu]; |
| 583 NSMenuItem* encodingMenuItem = [viewMenu itemWithTag:IDC_ENCODING_MENU]; | 583 NSMenuItem* encodingMenuItem = [viewMenu itemWithTag:IDC_ENCODING_MENU]; |
| 584 NSMenu* encodingMenu = [encodingMenuItem submenu]; | 584 NSMenu* encodingMenu = [encodingMenuItem submenu]; |
| 585 EncodingMenuControllerDelegate::BuildEncodingMenu([self lastProfile], | 585 EncodingMenuControllerDelegate::BuildEncodingMenu([self lastProfile], |
| 586 encodingMenu); | 586 encodingMenu); |
| 587 | 587 |
| 588 // Instantiate the ProfileInfoCache observer so that we can get |
| 589 // notified when a profile is deleted. |
| 590 profileInfoCacheObserver_ = new AppControllerProfileObserver( |
| 591 g_browser_process->profile_manager(), self); |
| 592 |
| 588 // Since Chrome is localized to more languages than the OS, tell Cocoa which | 593 // Since Chrome is localized to more languages than the OS, tell Cocoa which |
| 589 // menu is the Help so it can add the search item to it. | 594 // menu is the Help so it can add the search item to it. |
| 590 [NSApp setHelpMenu:helpMenu_]; | 595 [NSApp setHelpMenu:helpMenu_]; |
| 591 | 596 |
| 592 // Record the path to the (browser) app bundle; this is used by the app mode | 597 // Record the path to the (browser) app bundle; this is used by the app mode |
| 593 // shim. | 598 // shim. |
| 594 RecordLastRunAppBundlePath(); | 599 RecordLastRunAppBundlePath(); |
| 595 | 600 |
| 596 // Makes "Services" menu items available. | 601 // Makes "Services" menu items available. |
| 597 [self registerServicesMenuTypesTo:[notify object]]; | 602 [self registerServicesMenuTypesTo:[notify object]]; |
| (...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 707 | 712 |
| 708 // Called to determine if we should enable the "restore tab" menu item. | 713 // Called to determine if we should enable the "restore tab" menu item. |
| 709 // Checks with the TabRestoreService to see if there's anything there to | 714 // Checks with the TabRestoreService to see if there's anything there to |
| 710 // restore and returns YES if so. | 715 // restore and returns YES if so. |
| 711 - (BOOL)canRestoreTab { | 716 - (BOOL)canRestoreTab { |
| 712 TabRestoreService* service = | 717 TabRestoreService* service = |
| 713 TabRestoreServiceFactory::GetForProfile([self lastProfile]); | 718 TabRestoreServiceFactory::GetForProfile([self lastProfile]); |
| 714 return service && !service->entries().empty(); | 719 return service && !service->entries().empty(); |
| 715 } | 720 } |
| 716 | 721 |
| 722 - (void)profileWasRemoved:(const string16&)profileName { |
| 723 Profile* lastProfile = [self lastProfile]; |
| 724 string16 lastProfileName = UTF8ToUTF16(lastProfile->GetPrefs()->GetString( |
| 725 prefs::kProfileName)); |
| 726 |
| 727 // If the last profile has been deleted, we must NULL out our pointer |
| 728 // otherwise we will try to start up a browser window with a pointer |
| 729 // to the old profile. |
| 730 if (profileName == lastProfileName) { |
| 731 lastProfile_ = NULL; |
| 732 } |
| 733 } |
| 734 |
| 717 // Returns true if there is a modal window (either window- or application- | 735 // Returns true if there is a modal window (either window- or application- |
| 718 // modal) blocking the active browser. Note that tab modal dialogs (HTTP auth | 736 // modal) blocking the active browser. Note that tab modal dialogs (HTTP auth |
| 719 // sheets) will not count as blocking the browser. But things like open/save | 737 // sheets) will not count as blocking the browser. But things like open/save |
| 720 // dialogs that are window modal will block the browser. | 738 // dialogs that are window modal will block the browser. |
| 721 - (BOOL)keyWindowIsModal { | 739 - (BOOL)keyWindowIsModal { |
| 722 if ([NSApp modalWindow]) | 740 if ([NSApp modalWindow]) |
| 723 return YES; | 741 return YES; |
| 724 | 742 |
| 725 Browser* browser = chrome::GetLastActiveBrowser(); | 743 Browser* browser = chrome::GetLastActiveBrowser(); |
| 726 return browser && | 744 return browser && |
| (...skipping 589 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1316 | 1334 |
| 1317 //--------------------------------------------------------------------------- | 1335 //--------------------------------------------------------------------------- |
| 1318 | 1336 |
| 1319 namespace app_controller_mac { | 1337 namespace app_controller_mac { |
| 1320 | 1338 |
| 1321 bool IsOpeningNewWindow() { | 1339 bool IsOpeningNewWindow() { |
| 1322 return g_is_opening_new_window; | 1340 return g_is_opening_new_window; |
| 1323 } | 1341 } |
| 1324 | 1342 |
| 1325 } // namespace app_controller_mac | 1343 } // namespace app_controller_mac |
| OLD | NEW |