| 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 #include "chrome/browser/extensions/extension_toolbar_model.h" | 5 #include "chrome/browser/extensions/extension_toolbar_model.h" |
| 6 | 6 |
| 7 #include "base/prefs/pref_service.h" | 7 #include "base/prefs/pref_service.h" |
| 8 #include "chrome/browser/chrome_notification_types.h" | 8 #include "chrome/browser/chrome_notification_types.h" |
| 9 #include "chrome/browser/extensions/api/extension_action/extension_action_api.h" | 9 #include "chrome/browser/extensions/api/extension_action/extension_action_api.h" |
| 10 #include "chrome/browser/extensions/extension_action.h" | 10 #include "chrome/browser/extensions/extension_action.h" |
| 11 #include "chrome/browser/extensions/extension_action_manager.h" | 11 #include "chrome/browser/extensions/extension_action_manager.h" |
| 12 #include "chrome/browser/extensions/extension_prefs.h" | 12 #include "chrome/browser/extensions/extension_prefs.h" |
| 13 #include "chrome/browser/extensions/extension_service.h" | 13 #include "chrome/browser/extensions/extension_service.h" |
| 14 #include "chrome/browser/extensions/extension_tab_util.h" | 14 #include "chrome/browser/extensions/extension_tab_util.h" |
| 15 #include "chrome/browser/extensions/extension_util.h" |
| 15 #include "chrome/browser/extensions/tab_helper.h" | 16 #include "chrome/browser/extensions/tab_helper.h" |
| 16 #include "chrome/browser/profiles/profile.h" | 17 #include "chrome/browser/profiles/profile.h" |
| 17 #include "chrome/browser/ui/browser.h" | 18 #include "chrome/browser/ui/browser.h" |
| 18 #include "chrome/browser/ui/tabs/tab_strip_model.h" | 19 #include "chrome/browser/ui/tabs/tab_strip_model.h" |
| 19 #include "chrome/common/extensions/extension.h" | 20 #include "chrome/common/extensions/extension.h" |
| 20 #include "chrome/common/extensions/feature_switch.h" | 21 #include "chrome/common/extensions/feature_switch.h" |
| 21 #include "chrome/common/pref_names.h" | 22 #include "chrome/common/pref_names.h" |
| 22 #include "content/public/browser/notification_details.h" | 23 #include "content/public/browser/notification_details.h" |
| 23 #include "content/public/browser/notification_source.h" | 24 #include "content/public/browser/notification_source.h" |
| 24 #include "content/public/browser/web_contents.h" | 25 #include "content/public/browser/web_contents.h" |
| (...skipping 370 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 395 pref_change_registrar_.Remove(prefs::kExtensionToolbar); | 396 pref_change_registrar_.Remove(prefs::kExtensionToolbar); |
| 396 service_->extension_prefs()->SetToolbarOrder(last_known_positions_); | 397 service_->extension_prefs()->SetToolbarOrder(last_known_positions_); |
| 397 pref_change_registrar_.Add(prefs::kExtensionToolbar, pref_change_callback_); | 398 pref_change_registrar_.Add(prefs::kExtensionToolbar, pref_change_callback_); |
| 398 } | 399 } |
| 399 | 400 |
| 400 int ExtensionToolbarModel::IncognitoIndexToOriginal(int incognito_index) { | 401 int ExtensionToolbarModel::IncognitoIndexToOriginal(int incognito_index) { |
| 401 int original_index = 0, i = 0; | 402 int original_index = 0, i = 0; |
| 402 for (ExtensionList::iterator iter = toolbar_items_.begin(); | 403 for (ExtensionList::iterator iter = toolbar_items_.begin(); |
| 403 iter != toolbar_items_.end(); | 404 iter != toolbar_items_.end(); |
| 404 ++iter, ++original_index) { | 405 ++iter, ++original_index) { |
| 405 if (service_->IsIncognitoEnabled((*iter)->id())) { | 406 if (extension_util::IsIncognitoEnabled((*iter)->id(), service_)) { |
| 406 if (incognito_index == i) | 407 if (incognito_index == i) |
| 407 break; | 408 break; |
| 408 ++i; | 409 ++i; |
| 409 } | 410 } |
| 410 } | 411 } |
| 411 return original_index; | 412 return original_index; |
| 412 } | 413 } |
| 413 | 414 |
| 414 int ExtensionToolbarModel::OriginalIndexToIncognito(int original_index) { | 415 int ExtensionToolbarModel::OriginalIndexToIncognito(int original_index) { |
| 415 int incognito_index = 0, i = 0; | 416 int incognito_index = 0, i = 0; |
| 416 for (ExtensionList::iterator iter = toolbar_items_.begin(); | 417 for (ExtensionList::iterator iter = toolbar_items_.begin(); |
| 417 iter != toolbar_items_.end(); | 418 iter != toolbar_items_.end(); |
| 418 ++iter, ++i) { | 419 ++iter, ++i) { |
| 419 if (original_index == i) | 420 if (original_index == i) |
| 420 break; | 421 break; |
| 421 if (service_->IsIncognitoEnabled((*iter)->id())) | 422 if (extension_util::IsIncognitoEnabled((*iter)->id(), service_)) |
| 422 ++incognito_index; | 423 ++incognito_index; |
| 423 } | 424 } |
| 424 return incognito_index; | 425 return incognito_index; |
| 425 } | 426 } |
| 426 | 427 |
| 427 void ExtensionToolbarModel::OnExtensionToolbarPrefChange() { | 428 void ExtensionToolbarModel::OnExtensionToolbarPrefChange() { |
| 428 // If extensions are not ready, defer to later Populate() call. | 429 // If extensions are not ready, defer to later Populate() call. |
| 429 if (!extensions_initialized_) | 430 if (!extensions_initialized_) |
| 430 return; | 431 return; |
| 431 | 432 |
| (...skipping 15 matching lines...) Expand all Loading... |
| 447 | 448 |
| 448 if (last_known_positions_.size() > pref_position_size) { | 449 if (last_known_positions_.size() > pref_position_size) { |
| 449 // Need to update pref because we have extra icons. But can't call | 450 // Need to update pref because we have extra icons. But can't call |
| 450 // UpdatePrefs() directly within observation closure. | 451 // UpdatePrefs() directly within observation closure. |
| 451 base::MessageLoop::current()->PostTask( | 452 base::MessageLoop::current()->PostTask( |
| 452 FROM_HERE, | 453 FROM_HERE, |
| 453 base::Bind(&ExtensionToolbarModel::UpdatePrefs, | 454 base::Bind(&ExtensionToolbarModel::UpdatePrefs, |
| 454 weak_ptr_factory_.GetWeakPtr())); | 455 weak_ptr_factory_.GetWeakPtr())); |
| 455 } | 456 } |
| 456 } | 457 } |
| OLD | NEW |