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

Side by Side Diff: chrome/common/extensions/permissions/chrome_permission_message_provider.cc

Issue 137533013: Generalize "hide bookmark star" permission to "override bookmarks UI" (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 11 months 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
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/common/extensions/permissions/chrome_permission_message_provide r.h" 5 #include "chrome/common/extensions/permissions/chrome_permission_message_provide r.h"
6 6
7 #include "base/stl_util.h" 7 #include "base/stl_util.h"
8 #include "chrome/common/extensions/permissions/permission_message_util.h" 8 #include "chrome/common/extensions/permissions/permission_message_util.h"
9 #include "extensions/common/extensions_client.h" 9 #include "extensions/common/extensions_client.h"
10 #include "extensions/common/permissions/permission_message.h" 10 #include "extensions/common/permissions/permission_message.h"
11 #include "extensions/common/permissions/permission_set.h" 11 #include "extensions/common/permissions/permission_set.h"
12 #include "extensions/common/url_pattern_set.h" 12 #include "extensions/common/url_pattern_set.h"
13 #include "grit/generated_resources.h" 13 #include "grit/generated_resources.h"
14 #include "ui/base/l10n/l10n_util.h" 14 #include "ui/base/l10n/l10n_util.h"
15 15
16 namespace extensions { 16 namespace extensions {
17 17
18 namespace {
19
20 PermissionMessages::const_iterator FindMessageByID(
21 const PermissionMessages& messages,
22 int id) {
23 for (PermissionMessages::const_iterator it = messages.begin();
24 it != messages.end(); ++it) {
25 if (it->id() == id)
26 return it;
27 }
28
29 return messages.end();
30 }
31
32 } // namespace
33
18 ChromePermissionMessageProvider::ChromePermissionMessageProvider() { 34 ChromePermissionMessageProvider::ChromePermissionMessageProvider() {
19 } 35 }
20 36
21 ChromePermissionMessageProvider::~ChromePermissionMessageProvider() { 37 ChromePermissionMessageProvider::~ChromePermissionMessageProvider() {
22 } 38 }
23 39
24 // static 40 // static
25 PermissionMessages ChromePermissionMessageProvider::GetPermissionMessages( 41 PermissionMessages ChromePermissionMessageProvider::GetPermissionMessages(
26 const PermissionSet* permissions, 42 const PermissionSet* permissions,
27 Manifest::Type extension_type) const { 43 Manifest::Type extension_type) const {
28 PermissionMessages messages; 44 PermissionMessages messages;
29 45
30 if (permissions->HasEffectiveFullAccess()) { 46 if (permissions->HasEffectiveFullAccess()) {
31 messages.push_back(PermissionMessage( 47 messages.push_back(PermissionMessage(
32 PermissionMessage::kFullAccess, 48 PermissionMessage::kFullAccess,
33 l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_WARNING_FULL_ACCESS))); 49 l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_WARNING_FULL_ACCESS)));
34 return messages; 50 return messages;
35 } 51 }
36 52
37 std::set<PermissionMessage> host_msgs = 53 std::set<PermissionMessage> host_msgs =
38 GetHostPermissionMessages(permissions, extension_type); 54 GetHostPermissionMessages(permissions, extension_type);
39 std::set<PermissionMessage> api_msgs = GetAPIPermissionMessages(permissions); 55 std::set<PermissionMessage> api_msgs = GetAPIPermissionMessages(permissions);
40 std::set<PermissionMessage> manifest_permission_msgs = 56 std::set<PermissionMessage> manifest_permission_msgs =
41 GetManifestPermissionMessages(permissions); 57 GetManifestPermissionMessages(permissions);
42 messages.insert(messages.end(), host_msgs.begin(), host_msgs.end()); 58 messages.insert(messages.end(), host_msgs.begin(), host_msgs.end());
43 messages.insert(messages.end(), api_msgs.begin(), api_msgs.end()); 59 messages.insert(messages.end(), api_msgs.begin(), api_msgs.end());
44 messages.insert(messages.end(), manifest_permission_msgs.begin(), 60 messages.insert(messages.end(), manifest_permission_msgs.begin(),
45 manifest_permission_msgs.end()); 61 manifest_permission_msgs.end());
46 62
63 PermissionMessages::const_iterator bookmarksPermission =
not at google - send to devlin 2014/01/18 00:36:44 bookmarks_permission
Mike Wittman 2014/01/18 00:49:34 Removed.
64 FindMessageByID(messages, PermissionMessage::kBookmarks);
65
66 PermissionMessages::const_iterator overrideBookmarksUI =
not at google - send to devlin 2014/01/18 00:36:44 override_bookmarks_ui
Mike Wittman 2014/01/18 00:49:34 Done.
67 FindMessageByID(messages, PermissionMessage::kOverrideBookmarksUI);
68
69 // Bookmarks permission message supersedes override bookmarks UI permission
70 // message if both permissions are specified.
71 if (bookmarksPermission != messages.end() &&
72 overrideBookmarksUI != messages.end()) {
not at google - send to devlin 2014/01/18 00:36:44 you can make this slightly more efficient by findi
Mike Wittman 2014/01/18 00:49:34 Done.
73 messages.erase(overrideBookmarksUI);
74 }
75
47 return messages; 76 return messages;
48 } 77 }
49 78
50 // static 79 // static
51 std::vector<base::string16> ChromePermissionMessageProvider::GetWarningMessages( 80 std::vector<base::string16> ChromePermissionMessageProvider::GetWarningMessages(
52 const PermissionSet* permissions, 81 const PermissionSet* permissions,
53 Manifest::Type extension_type) const { 82 Manifest::Type extension_type) const {
54 std::vector<base::string16> message_strings; 83 std::vector<base::string16> message_strings;
55 PermissionMessages messages = 84 PermissionMessages messages =
56 GetPermissionMessages(permissions, extension_type); 85 GetPermissionMessages(permissions, extension_type);
(...skipping 266 matching lines...) Expand 10 before | Expand all | Expand 10 after
323 std::set<std::string> old_hosts_set( 352 std::set<std::string> old_hosts_set(
324 permission_message_util::GetDistinctHosts(old_list, false, false)); 353 permission_message_util::GetDistinctHosts(old_list, false, false));
325 std::set<std::string> new_hosts_only = 354 std::set<std::string> new_hosts_only =
326 base::STLSetDifference<std::set<std::string> >(new_hosts_set, 355 base::STLSetDifference<std::set<std::string> >(new_hosts_set,
327 old_hosts_set); 356 old_hosts_set);
328 357
329 return !new_hosts_only.empty(); 358 return !new_hosts_only.empty();
330 } 359 }
331 360
332 } // namespace extensions 361 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698