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: webkit/plugins/ppapi/resource_tracker.cc

Issue 5828003: Move the Pepper implementation from webkit/glue/plugins/pepper_* to... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 10 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
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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 "webkit/glue/plugins/pepper_resource_tracker.h" 5 #include "webkit/plugins/ppapi/resource_tracker.h"
6 6
7 #include <limits> 7 #include <limits>
8 #include <set> 8 #include <set>
9 9
10 #include "base/lazy_instance.h"
10 #include "base/logging.h" 11 #include "base/logging.h"
11 #include "base/rand_util.h" 12 #include "base/rand_util.h"
12 #include "ppapi/c/pp_resource.h" 13 #include "ppapi/c/pp_resource.h"
13 #include "webkit/glue/plugins/pepper_resource.h" 14 #include "webkit/plugins/ppapi/resource.h"
14 15
15 namespace pepper { 16 namespace webkit {
17 namespace plugins {
18 namespace ppapi {
19
20 static base::LazyInstance<ResourceTracker> g_resource_tracker(
21 base::LINKER_INITIALIZED);
16 22
17 scoped_refptr<Resource> ResourceTracker::GetResource(PP_Resource res) const { 23 scoped_refptr<Resource> ResourceTracker::GetResource(PP_Resource res) const {
18 ResourceMap::const_iterator result = live_resources_.find(res); 24 ResourceMap::const_iterator result = live_resources_.find(res);
19 if (result == live_resources_.end()) { 25 if (result == live_resources_.end()) {
20 return scoped_refptr<Resource>(); 26 return scoped_refptr<Resource>();
21 } 27 }
22 return result->second.first; 28 return result->second.first;
23 } 29 }
24 30
25 // static 31 // static
26 ResourceTracker* ResourceTracker::singleton_override_ = NULL; 32 ResourceTracker* ResourceTracker::singleton_override_ = NULL;
27 33
28 ResourceTracker::ResourceTracker() 34 ResourceTracker::ResourceTracker()
29 : last_id_(0) { 35 : last_id_(0) {
30 } 36 }
31 37
32 ResourceTracker::~ResourceTracker() { 38 ResourceTracker::~ResourceTracker() {
33 } 39 }
34 40
35 // static 41 // static
36 ResourceTracker* ResourceTracker::Get() { 42 ResourceTracker* ResourceTracker::Get() {
37 if (singleton_override_) 43 if (singleton_override_)
38 return singleton_override_; 44 return singleton_override_;
39 return Singleton<ResourceTracker>::get(); 45 return g_resource_tracker.Pointer();
40 } 46 }
41 47
42 PP_Resource ResourceTracker::AddResource(Resource* resource) { 48 PP_Resource ResourceTracker::AddResource(Resource* resource) {
43 // If the plugin manages to create 4B resources... 49 // If the plugin manages to create 4B resources...
44 if (last_id_ == std::numeric_limits<PP_Resource>::max()) { 50 if (last_id_ == std::numeric_limits<PP_Resource>::max()) {
45 return 0; 51 return 0;
46 } 52 }
47 // Add the resource with plugin use-count 1. 53 // Add the resource with plugin use-count 1.
48 ++last_id_; 54 ++last_id_;
49 live_resources_.insert(std::make_pair(last_id_, std::make_pair(resource, 1))); 55 live_resources_.insert(std::make_pair(last_id_, std::make_pair(resource, 1)));
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after
179 DCHECK(!singleton_override_); 185 DCHECK(!singleton_override_);
180 singleton_override_ = tracker; 186 singleton_override_ = tracker;
181 } 187 }
182 188
183 // static 189 // static
184 void ResourceTracker::ClearSingletonOverride() { 190 void ResourceTracker::ClearSingletonOverride() {
185 DCHECK(singleton_override_); 191 DCHECK(singleton_override_);
186 singleton_override_ = NULL; 192 singleton_override_ = NULL;
187 } 193 }
188 194
189 } // namespace pepper 195 } // namespace ppapi
196 } // namespace plugins
197 } // namespace webkit
198
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698