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

Side by Side Diff: extensions/common/permissions/permission_message_provider.cc

Issue 27446002: Move permission warning message handling from PermissionSet to PermissionMessageProvider. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 2 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
(Empty)
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
3 // found in the LICENSE file.
4
5 #include "extensions/common/permissions/permission_message_provider.h"
6
7 #include "base/lazy_instance.h"
8 #include "base/stl_util.h"
9
10 namespace extensions {
11
12 namespace {
13
14 struct Providers {
15 friend struct base::DefaultLazyInstanceTraits<Providers>;
16
17 ~Providers();
18
19 scoped_ptr<PermissionMessageProvider> default_provider;
20 std::vector<std::pair<Manifest::Type, PermissionMessageProvider* > >
Matt Perry 2013/10/16 20:07:04 how about a map?
21 custom_providers;
22 };
23
24 Providers::~Providers() {
25 STLDeleteContainerPairSecondPointers(custom_providers.begin(),
26 custom_providers.end());
27 }
28
29 base::LazyInstance<Providers> g_providers = LAZY_INSTANCE_INITIALIZER;
30
31 } // namespace
32
33 // static
34 PermissionMessageProvider* PermissionMessageProvider::Get(
35 Manifest::Type extension_type) {
36 for (size_t i = 0; i < g_providers.Get().custom_providers.size(); ++i) {
37 if (g_providers.Get().custom_providers[i].first == extension_type)
38 return g_providers.Get().custom_providers[i].second;
39 }
40 return g_providers.Get().default_provider.get();
41 }
42
43 // static
44 void PermissionMessageProvider::SetProviders(
45 PermissionMessageProvider* default_provider,
46 const std::vector<std::pair<Manifest::Type, PermissionMessageProvider*> >&
47 custom_providers) {
48 g_providers.Get().default_provider.reset(default_provider);
49 g_providers.Get().custom_providers = custom_providers;
50 }
51
52 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698