Chromium Code Reviews| 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 "browser_actions_controller.h" | 5 #import "browser_actions_controller.h" |
| 6 | 6 |
| 7 #include <cmath> | 7 #include <cmath> |
| 8 #include <string> | 8 #include <string> |
| 9 | 9 |
| 10 #include "base/sys_string_conversions.h" | 10 #include "base/sys_string_conversions.h" |
| 11 #include "chrome/browser/extensions/extension_action.h" | 11 #include "chrome/browser/extensions/extension_action.h" |
| 12 #include "chrome/browser/extensions/extension_action_manager.h" | 12 #include "chrome/browser/extensions/extension_action_manager.h" |
| 13 #include "chrome/browser/extensions/extension_service.h" | 13 #include "chrome/browser/extensions/extension_service.h" |
| 14 #include "chrome/browser/extensions/extension_system.h" | 14 #include "chrome/browser/extensions/extension_system.h" |
| 15 #include "chrome/browser/extensions/extension_toolbar_model.h" | 15 #include "chrome/browser/extensions/extension_toolbar_model.h" |
| 16 #include "chrome/browser/prefs/pref_registry_syncable.h" | |
| 16 #include "chrome/browser/prefs/pref_service.h" | 17 #include "chrome/browser/prefs/pref_service.h" |
| 17 #include "chrome/browser/profiles/profile.h" | 18 #include "chrome/browser/profiles/profile.h" |
| 18 #include "chrome/browser/sessions/session_tab_helper.h" | 19 #include "chrome/browser/sessions/session_tab_helper.h" |
| 19 #include "chrome/browser/ui/browser.h" | 20 #include "chrome/browser/ui/browser.h" |
| 20 #include "chrome/browser/ui/browser_window.h" | 21 #include "chrome/browser/ui/browser_window.h" |
| 21 #import "chrome/browser/ui/cocoa/extensions/browser_action_button.h" | 22 #import "chrome/browser/ui/cocoa/extensions/browser_action_button.h" |
| 22 #import "chrome/browser/ui/cocoa/extensions/browser_actions_container_view.h" | 23 #import "chrome/browser/ui/cocoa/extensions/browser_actions_container_view.h" |
| 23 #import "chrome/browser/ui/cocoa/extensions/extension_popup_controller.h" | 24 #import "chrome/browser/ui/cocoa/extensions/extension_popup_controller.h" |
| 24 #import "chrome/browser/ui/cocoa/image_button_cell.h" | 25 #import "chrome/browser/ui/cocoa/image_button_cell.h" |
| 25 #import "chrome/browser/ui/cocoa/menu_button.h" | 26 #import "chrome/browser/ui/cocoa/menu_button.h" |
| 26 #include "chrome/browser/ui/tabs/tab_strip_model.h" | 27 #include "chrome/browser/ui/tabs/tab_strip_model.h" |
| 27 #include "chrome/common/chrome_notification_types.h" | 28 #include "chrome/common/chrome_notification_types.h" |
| 28 #include "chrome/common/extensions/api/extension_action/action_info.h" | 29 #include "chrome/common/extensions/api/extension_action/action_info.h" |
| 29 #include "chrome/common/pref_names.h" | 30 #include "chrome/common/pref_names.h" |
| 31 #include "content/public/browser/notification_details.h" | |
| 30 #include "content/public/browser/notification_observer.h" | 32 #include "content/public/browser/notification_observer.h" |
| 31 #include "content/public/browser/notification_registrar.h" | 33 #include "content/public/browser/notification_registrar.h" |
| 32 #include "content/public/browser/notification_details.h" | |
| 33 #include "content/public/browser/notification_source.h" | 34 #include "content/public/browser/notification_source.h" |
| 34 #include "grit/theme_resources.h" | 35 #include "grit/theme_resources.h" |
| 35 #import "third_party/GTM/AppKit/GTMNSAnimation+Duration.h" | 36 #import "third_party/GTM/AppKit/GTMNSAnimation+Duration.h" |
| 36 | 37 |
| 37 using extensions::Extension; | 38 using extensions::Extension; |
| 38 using extensions::ExtensionList; | 39 using extensions::ExtensionList; |
| 39 | 40 |
| 40 NSString* const kBrowserActionVisibilityChangedNotification = | 41 NSString* const kBrowserActionVisibilityChangedNotification = |
| 41 @"BrowserActionVisibilityChangedNotification"; | 42 @"BrowserActionVisibilityChangedNotification"; |
| 42 | 43 |
| (...skipping 214 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 257 | 258 |
| 258 - (id)initWithBrowser:(Browser*)browser | 259 - (id)initWithBrowser:(Browser*)browser |
| 259 containerView:(BrowserActionsContainerView*)container { | 260 containerView:(BrowserActionsContainerView*)container { |
| 260 DCHECK(browser && container); | 261 DCHECK(browser && container); |
| 261 | 262 |
| 262 if ((self = [super init])) { | 263 if ((self = [super init])) { |
| 263 browser_ = browser; | 264 browser_ = browser; |
| 264 profile_ = browser->profile(); | 265 profile_ = browser->profile(); |
| 265 | 266 |
| 266 if (!profile_->GetPrefs()->FindPreference( | 267 if (!profile_->GetPrefs()->FindPreference( |
| 267 prefs::kBrowserActionContainerWidth)) | 268 prefs::kBrowserActionContainerWidth)) |
|
Mattias Nissler (ping if slow)
2013/02/06 17:53:33
TODO: registrations up front.
Jói
2013/02/07 14:52:32
Done.
| |
| 268 [BrowserActionsController registerUserPrefs:profile_->GetPrefs()]; | 269 [BrowserActionsController registerUserPrefs:( |
| 270 (PrefRegistrySyncable*) | |
| 271 profile_->GetPrefs()->DeprecatedGetPrefRegistry())]; | |
| 269 | 272 |
| 270 observer_.reset(new ExtensionServiceObserverBridge(self, browser_)); | 273 observer_.reset(new ExtensionServiceObserverBridge(self, browser_)); |
| 271 ExtensionService* extensionService = | 274 ExtensionService* extensionService = |
| 272 extensions::ExtensionSystem::Get(profile_)->extension_service(); | 275 extensions::ExtensionSystem::Get(profile_)->extension_service(); |
| 273 // |extensionService| can be NULL in Incognito. | 276 // |extensionService| can be NULL in Incognito. |
| 274 if (extensionService) { | 277 if (extensionService) { |
| 275 toolbarModel_ = extensionService->toolbar_model(); | 278 toolbarModel_ = extensionService->toolbar_model(); |
| 276 toolbarModel_->AddObserver(observer_.get()); | 279 toolbarModel_->AddObserver(observer_.get()); |
| 277 } | 280 } |
| 278 | 281 |
| (...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 433 if (effect == NSViewAnimationFadeInEffect) { | 436 if (effect == NSViewAnimationFadeInEffect) { |
| 434 return NO; | 437 return NO; |
| 435 } else if (effect == NSViewAnimationFadeOutEffect) { | 438 } else if (effect == NSViewAnimationFadeOutEffect) { |
| 436 return YES; | 439 return YES; |
| 437 } | 440 } |
| 438 | 441 |
| 439 NOTREACHED(); | 442 NOTREACHED(); |
| 440 return YES; | 443 return YES; |
| 441 } | 444 } |
| 442 | 445 |
| 443 + (void)registerUserPrefs:(PrefServiceSyncable*)prefs { | 446 + (void)registerUserPrefs:(PrefRegistrySyncable*)registry { |
| 444 prefs->RegisterDoublePref(prefs::kBrowserActionContainerWidth, | 447 registry->RegisterDoublePref(prefs::kBrowserActionContainerWidth, |
| 445 0, | 448 0, |
| 446 PrefServiceSyncable::UNSYNCABLE_PREF); | 449 PrefRegistrySyncable::UNSYNCABLE_PREF); |
| 447 } | 450 } |
| 448 | 451 |
| 449 #pragma mark - | 452 #pragma mark - |
| 450 #pragma mark NSMenuDelegate | 453 #pragma mark NSMenuDelegate |
| 451 | 454 |
| 452 - (void)menuNeedsUpdate:(NSMenu*)menu { | 455 - (void)menuNeedsUpdate:(NSMenu*)menu { |
| 453 [menu removeAllItems]; | 456 [menu removeAllItems]; |
| 454 | 457 |
| 455 // See menu_button.h for documentation on why this is needed. | 458 // See menu_button.h for documentation on why this is needed. |
| 456 [menu addItemWithTitle:@"" action:nil keyEquivalent:@""]; | 459 [menu addItemWithTitle:@"" action:nil keyEquivalent:@""]; |
| (...skipping 413 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 870 const extensions::ExtensionList& toolbar_items = | 873 const extensions::ExtensionList& toolbar_items = |
| 871 toolbarModel_->toolbar_items(); | 874 toolbarModel_->toolbar_items(); |
| 872 if (index < toolbar_items.size()) { | 875 if (index < toolbar_items.size()) { |
| 873 const Extension* extension = toolbar_items[index]; | 876 const Extension* extension = toolbar_items[index]; |
| 874 return [buttons_ objectForKey:base::SysUTF8ToNSString(extension->id())]; | 877 return [buttons_ objectForKey:base::SysUTF8ToNSString(extension->id())]; |
| 875 } | 878 } |
| 876 return nil; | 879 return nil; |
| 877 } | 880 } |
| 878 | 881 |
| 879 @end | 882 @end |
| OLD | NEW |