OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/webui/ntp/app_launcher_handler.h" | 5 #include "chrome/browser/ui/webui/ntp/app_launcher_handler.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/auto_reset.h" | 10 #include "base/auto_reset.h" |
(...skipping 12 matching lines...) Expand all Loading... |
23 #include "chrome/browser/extensions/extension_prefs.h" | 23 #include "chrome/browser/extensions/extension_prefs.h" |
24 #include "chrome/browser/extensions/extension_service.h" | 24 #include "chrome/browser/extensions/extension_service.h" |
25 #include "chrome/browser/prefs/pref_service.h" | 25 #include "chrome/browser/prefs/pref_service.h" |
26 #include "chrome/browser/prefs/scoped_user_pref_update.h" | 26 #include "chrome/browser/prefs/scoped_user_pref_update.h" |
27 #include "chrome/browser/profiles/profile.h" | 27 #include "chrome/browser/profiles/profile.h" |
28 #include "chrome/browser/ui/browser.h" | 28 #include "chrome/browser/ui/browser.h" |
29 #include "chrome/browser/ui/browser_list.h" | 29 #include "chrome/browser/ui/browser_list.h" |
30 #include "chrome/browser/ui/browser_window.h" | 30 #include "chrome/browser/ui/browser_window.h" |
31 #include "chrome/browser/ui/webui/extension_icon_source.h" | 31 #include "chrome/browser/ui/webui/extension_icon_source.h" |
32 #include "chrome/browser/ui/webui/ntp/new_tab_ui.h" | 32 #include "chrome/browser/ui/webui/ntp/new_tab_ui.h" |
33 #include "chrome/browser/ui/webui/ntp/shown_sections_handler.h" | |
34 #include "chrome/common/chrome_notification_types.h" | 33 #include "chrome/common/chrome_notification_types.h" |
35 #include "chrome/common/extensions/extension.h" | 34 #include "chrome/common/extensions/extension.h" |
36 #include "chrome/common/extensions/extension_constants.h" | 35 #include "chrome/common/extensions/extension_constants.h" |
37 #include "chrome/common/extensions/extension_icon_set.h" | 36 #include "chrome/common/extensions/extension_icon_set.h" |
38 #include "chrome/common/extensions/extension_resource.h" | 37 #include "chrome/common/extensions/extension_resource.h" |
39 #include "chrome/common/favicon_url.h" | 38 #include "chrome/common/favicon_url.h" |
40 #include "chrome/common/pref_names.h" | 39 #include "chrome/common/pref_names.h" |
41 #include "chrome/common/url_constants.h" | 40 #include "chrome/common/url_constants.h" |
42 #include "chrome/common/web_apps.h" | 41 #include "chrome/common/web_apps.h" |
43 #include "content/browser/disposition_utils.h" | 42 #include "content/browser/disposition_utils.h" |
(...skipping 459 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
503 // Tell the client whether to show the promo for this view. We don't do this | 502 // Tell the client whether to show the promo for this view. We don't do this |
504 // in the case of PREF_CHANGED because: | 503 // in the case of PREF_CHANGED because: |
505 // | 504 // |
506 // a) At that point in time, depending on the pref that changed, it can look | 505 // a) At that point in time, depending on the pref that changed, it can look |
507 // like the set of apps installed has changed, and we will mark the promo | 506 // like the set of apps installed has changed, and we will mark the promo |
508 // expired. | 507 // expired. |
509 // b) Conceptually, it doesn't really make sense to count a | 508 // b) Conceptually, it doesn't really make sense to count a |
510 // prefchange-triggered refresh as a promo 'view'. | 509 // prefchange-triggered refresh as a promo 'view'. |
511 AppsPromo* apps_promo = extension_service_->apps_promo(); | 510 AppsPromo* apps_promo = extension_service_->apps_promo(); |
512 Profile* profile = Profile::FromWebUI(web_ui_); | 511 Profile* profile = Profile::FromWebUI(web_ui_); |
513 PrefService* prefs = profile->GetPrefs(); | |
514 bool apps_promo_just_expired = false; | 512 bool apps_promo_just_expired = false; |
515 if (apps_promo->ShouldShowPromo(extension_service_->GetAppIds(), | 513 if (apps_promo->ShouldShowPromo(extension_service_->GetAppIds(), |
516 &apps_promo_just_expired)) { | 514 &apps_promo_just_expired)) { |
517 apps_promo->MaximizeAppsIfNecessary(); | |
518 dictionary.SetBoolean("showPromo", true); | 515 dictionary.SetBoolean("showPromo", true); |
519 FillPromoDictionary(&dictionary); | 516 FillPromoDictionary(&dictionary); |
520 promo_active_ = true; | 517 promo_active_ = true; |
521 } else { | 518 } else { |
522 dictionary.SetBoolean("showPromo", false); | 519 dictionary.SetBoolean("showPromo", false); |
523 promo_active_ = false; | 520 promo_active_ = false; |
524 } | 521 } |
525 | 522 |
526 // If the default apps have just expired (user viewed them too many times with | 523 // If the default apps have just expired (user viewed them too many times with |
527 // no interaction), then we uninstall them and focus the recent sites section. | 524 // no interaction), then we uninstall them and focus the recent sites section. |
528 if (apps_promo_just_expired) { | 525 if (apps_promo_just_expired) { |
529 ignore_changes_ = true; | 526 ignore_changes_ = true; |
530 UninstallDefaultApps(); | 527 UninstallDefaultApps(); |
531 ignore_changes_ = false; | 528 ignore_changes_ = false; |
532 ShownSectionsHandler::SetShownSection(prefs, THUMB); | |
533 } | 529 } |
534 | 530 |
535 SetAppToBeHighlighted(); | 531 SetAppToBeHighlighted(); |
536 FillAppDictionary(&dictionary); | 532 FillAppDictionary(&dictionary); |
537 web_ui_->CallJavascriptFunction("getAppsCallback", dictionary); | 533 web_ui_->CallJavascriptFunction("getAppsCallback", dictionary); |
538 | 534 |
539 // First time we get here we set up the observer so that we can tell update | 535 // First time we get here we set up the observer so that we can tell update |
540 // the apps as they change. | 536 // the apps as they change. |
541 if (!has_loaded_apps_) { | 537 if (!has_loaded_apps_) { |
542 pref_change_registrar_.Init( | 538 pref_change_registrar_.Init( |
(...skipping 510 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1053 | 1049 |
1054 void AppLauncherHandler::UninstallDefaultApps() { | 1050 void AppLauncherHandler::UninstallDefaultApps() { |
1055 AppsPromo* apps_promo = extension_service_->apps_promo(); | 1051 AppsPromo* apps_promo = extension_service_->apps_promo(); |
1056 const ExtensionIdSet& app_ids = apps_promo->old_default_apps(); | 1052 const ExtensionIdSet& app_ids = apps_promo->old_default_apps(); |
1057 for (ExtensionIdSet::const_iterator iter = app_ids.begin(); | 1053 for (ExtensionIdSet::const_iterator iter = app_ids.begin(); |
1058 iter != app_ids.end(); ++iter) { | 1054 iter != app_ids.end(); ++iter) { |
1059 if (extension_service_->GetExtensionById(*iter, true)) | 1055 if (extension_service_->GetExtensionById(*iter, true)) |
1060 extension_service_->UninstallExtension(*iter, false, NULL); | 1056 extension_service_->UninstallExtension(*iter, false, NULL); |
1061 } | 1057 } |
1062 } | 1058 } |
OLD | NEW |