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

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 ppapi {
18
19 static base::LazyInstance<ResourceTracker> g_resource_tracker(
20 base::LINKER_INITIALIZED);
16 21
17 scoped_refptr<Resource> ResourceTracker::GetResource(PP_Resource res) const { 22 scoped_refptr<Resource> ResourceTracker::GetResource(PP_Resource res) const {
18 ResourceMap::const_iterator result = live_resources_.find(res); 23 ResourceMap::const_iterator result = live_resources_.find(res);
19 if (result == live_resources_.end()) { 24 if (result == live_resources_.end()) {
20 return scoped_refptr<Resource>(); 25 return scoped_refptr<Resource>();
21 } 26 }
22 return result->second.first; 27 return result->second.first;
23 } 28 }
24 29
25 // static 30 // static
26 ResourceTracker* ResourceTracker::singleton_override_ = NULL; 31 ResourceTracker* ResourceTracker::singleton_override_ = NULL;
27 32
28 ResourceTracker::ResourceTracker() 33 ResourceTracker::ResourceTracker()
29 : last_id_(0) { 34 : last_id_(0) {
30 } 35 }
31 36
32 ResourceTracker::~ResourceTracker() { 37 ResourceTracker::~ResourceTracker() {
33 } 38 }
34 39
35 // static 40 // static
36 ResourceTracker* ResourceTracker::Get() { 41 ResourceTracker* ResourceTracker::Get() {
37 if (singleton_override_) 42 if (singleton_override_)
38 return singleton_override_; 43 return singleton_override_;
39 return Singleton<ResourceTracker>::get(); 44 return g_resource_tracker.Pointer();
40 } 45 }
41 46
42 PP_Resource ResourceTracker::AddResource(Resource* resource) { 47 PP_Resource ResourceTracker::AddResource(Resource* resource) {
43 // If the plugin manages to create 4B resources... 48 // If the plugin manages to create 4B resources...
44 if (last_id_ == std::numeric_limits<PP_Resource>::max()) { 49 if (last_id_ == std::numeric_limits<PP_Resource>::max()) {
45 return 0; 50 return 0;
46 } 51 }
47 // Add the resource with plugin use-count 1. 52 // Add the resource with plugin use-count 1.
48 ++last_id_; 53 ++last_id_;
49 live_resources_.insert(std::make_pair(last_id_, std::make_pair(resource, 1))); 54 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_); 184 DCHECK(!singleton_override_);
180 singleton_override_ = tracker; 185 singleton_override_ = tracker;
181 } 186 }
182 187
183 // static 188 // static
184 void ResourceTracker::ClearSingletonOverride() { 189 void ResourceTracker::ClearSingletonOverride() {
185 DCHECK(singleton_override_); 190 DCHECK(singleton_override_);
186 singleton_override_ = NULL; 191 singleton_override_ = NULL;
187 } 192 }
188 193
189 } // namespace pepper 194 } // namespace ppapi
195 } // namespace webkit
196
OLDNEW
« no previous file with comments | « webkit/plugins/ppapi/resource_tracker.h ('k') | webkit/plugins/ppapi/resource_tracker_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698