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

Side by Side Diff: chrome/browser/extensions/suspicious_extension_bubble_controller_delegate.cc

Issue 95133002: Add an extension bubble explaining which extensions are in dev mode. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix compile error Created 7 years 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 | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "chrome/browser/extensions/suspicious_extension_bubble_controller_deleg ate.h"
6
7 #include "base/bind.h"
8 #include "base/metrics/histogram.h"
9 #include "base/strings/utf_string_conversions.h"
10 #include "chrome/browser/extensions/extension_message_bubble.h"
11 #include "chrome/browser/extensions/extension_prefs.h"
12 #include "chrome/browser/extensions/extension_service.h"
13 #include "chrome/browser/ui/browser.h"
14 #include "chrome/browser/ui/browser_finder.h"
15 #include "chrome/common/url_constants.h"
16 #include "content/public/browser/user_metrics.h"
17 #include "grit/chromium_strings.h"
18 #include "grit/generated_resources.h"
19 #include "ui/base/l10n/l10n_util.h"
20
21 namespace {
22
23 static base::LazyInstance<extensions::ProfileKeyedAPIFactory<
24 extensions::SuspiciousExtensionBubbleControllerDelegate> >
25 g_factory = LAZY_INSTANCE_INITIALIZER;
26
27 } // namespace
28
29 namespace extensions {
30
31 ////////////////////////////////////////////////////////////////////////////////
32 // SuspiciousExtensionBubbleControllerDelegate
33
34 SuspiciousExtensionBubbleControllerDelegate::
35 SuspiciousExtensionBubbleControllerDelegate(
36 Profile* profile)
37 : controller_(new ExtensionMessageBubbleController(this, profile)),
38 service_(extensions::ExtensionSystem::Get(profile)->extension_service()),
39 profile_(profile) {
40 }
41
42 SuspiciousExtensionBubbleControllerDelegate::
43 ~SuspiciousExtensionBubbleControllerDelegate() {
44 }
45
46 // static
47 ProfileKeyedAPIFactory<SuspiciousExtensionBubbleControllerDelegate>*
48 SuspiciousExtensionBubbleControllerDelegate::GetFactoryInstance() {
49 return &g_factory.Get();
50 }
51
52 // static
53 SuspiciousExtensionBubbleControllerDelegate*
54 SuspiciousExtensionBubbleControllerDelegate::Get(Profile* profile) {
55 return ProfileKeyedAPIFactory<
56 SuspiciousExtensionBubbleControllerDelegate>::GetForProfile(profile);
57 }
58
59 void SuspiciousExtensionBubbleControllerDelegate::Show(
60 ExtensionMessageBubble* bubble) {
61 controller_->Show(bubble);
not at google - send to devlin 2013/12/10 01:21:39 see comment in extension_message_bubble_view.cc, t
Finnur 2013/12/11 23:12:18 These functions are now gone.
62 }
63
64 bool SuspiciousExtensionBubbleControllerDelegate::ShowingBubble() const {
65 return controller_->showing_bubble();
66 }
67
68 bool SuspiciousExtensionBubbleControllerDelegate::HasExtensionList() const {
69 return controller_->HasExtensionList();
70 }
71
72 std::vector<string16>
73 SuspiciousExtensionBubbleControllerDelegate::GetExtensionList() const {
74 return controller_->GetExtensionList();
75 }
76
77 const ExtensionIdList&
78 SuspiciousExtensionBubbleControllerDelegate::GetExtensionIdList() const {
79 return controller_->extension_id_list();
80 }
81
82
83 bool SuspiciousExtensionBubbleControllerDelegate::ShouldIncludeExtension(
84 const std::string& extension_id) {
85 ExtensionPrefs* prefs = service_->extension_prefs();
86 if (!prefs->IsExtensionDisabled(extension_id))
87 return false;
88
89 int disble_reasons = prefs->GetDisableReasons(extension_id);
90 if (disble_reasons & Extension::DISABLE_NOT_VERIFIED)
91 return !prefs->HasWipeoutBeenAcknowledged(extension_id);
92
93 return false;
94 }
95
96 void SuspiciousExtensionBubbleControllerDelegate::AcknowledgeExtension(
97 const std::string& extension_id,
98 ExtensionMessageBubbleController::BubbleAction user_action) {
99 ExtensionPrefs* prefs = service_->extension_prefs();
100 prefs->SetWipeoutAcknowledged(extension_id, true);
101 }
102
103 void SuspiciousExtensionBubbleControllerDelegate::PerformAction(
104 const ExtensionIdList& list) {
105 // This bubble solicits no action from the user. Or as Nimoy would have it:
106 // "Well, my work here is done".
107 }
108
109 string16 SuspiciousExtensionBubbleControllerDelegate::GetTitle() const {
110 return l10n_util::GetStringUTF16(IDS_EXTENSIONS_SUSPICIOUS_DISABLED_TITLE);
111 }
112
113 string16 SuspiciousExtensionBubbleControllerDelegate::GetMessageBody() const {
114 return l10n_util::GetStringFUTF16(IDS_EXTENSIONS_SUSPICIOUS_DISABLED_BODY,
115 l10n_util::GetStringUTF16(IDS_EXTENSION_WEB_STORE_TITLE));
116 }
117
118 string16 SuspiciousExtensionBubbleControllerDelegate::GetOverflowText(
119 const string16& overflow_count) const {
120 return l10n_util::GetStringFUTF16(
121 IDS_EXTENSIONS_SUSPICIOUS_DISABLED_AND_N_MORE,
122 overflow_count);
123 }
124
125 string16
126 SuspiciousExtensionBubbleControllerDelegate::GetLearnMoreLabel() const {
127 return l10n_util::GetStringUTF16(IDS_LEARN_MORE);
128 }
129
130 GURL SuspiciousExtensionBubbleControllerDelegate::GetLearnMoreUrl() const {
131 return GURL(chrome::kRemoveNonCWSExtensionURL);
132 }
133
134 string16
135 SuspiciousExtensionBubbleControllerDelegate::GetActionButtonLabel() const {
136 return string16();
137 }
138
139 string16
140 SuspiciousExtensionBubbleControllerDelegate::GetDismissButtonLabel() const {
141 return l10n_util::GetStringUTF16(IDS_EXTENSIONS_SUSPICIOUS_DISABLED_BUTTON);
142 }
143
144 bool
145 SuspiciousExtensionBubbleControllerDelegate::ShouldShowExtensionList() const {
146 return true;
147 }
148
149 void SuspiciousExtensionBubbleControllerDelegate::LogExtensionCount(
150 size_t count) {
151 UMA_HISTOGRAM_COUNTS_100(
152 "ExtensionWipeoutBubble.ExtensionWipeoutCount", count);
153 }
154
155 void SuspiciousExtensionBubbleControllerDelegate::LogAction(
156 ExtensionMessageBubbleController::BubbleAction action) {
157 UMA_HISTOGRAM_ENUMERATION(
158 "ExtensionWipeoutBubble.UserSelection",
159 action, ExtensionMessageBubbleController::ACTION_BOUNDARY);
160 }
161
162 template <>
163 void ProfileKeyedAPIFactory<
164 SuspiciousExtensionBubbleControllerDelegate>::DeclareFactoryDependencies() {
165 DependsOn(extensions::ExtensionSystemFactory::GetInstance());
166 }
167
168 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698