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

Side by Side Diff: chrome/browser/extensions/api/declarative/rules_registry.cc

Issue 108193008: Don't post tasks from RulesRegistry c-tor (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Creating event as signalled 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
« no previous file with comments | « no previous file | extensions/common/one_shot_event.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/browser/extensions/api/declarative/rules_registry.h" 5 #include "chrome/browser/extensions/api/declarative/rules_registry.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
66 return base::StringPrintf("_%d_", identifier); 66 return base::StringPrintf("_%d_", identifier);
67 } 67 }
68 68
69 } // namespace 69 } // namespace
70 70
71 71
72 namespace extensions { 72 namespace extensions {
73 73
74 // RulesRegistry 74 // RulesRegistry
75 75
76 RulesRegistry::RulesRegistry( 76 RulesRegistry::RulesRegistry(Profile* profile,
77 Profile* profile, 77 const std::string& event_name,
78 const std::string& event_name, 78 content::BrowserThread::ID owner_thread,
79 content::BrowserThread::ID owner_thread, 79 RulesCacheDelegate* cache_delegate,
80 RulesCacheDelegate* cache_delegate, 80 const WebViewKey& webview_key)
81 const WebViewKey& webview_key)
82 : profile_(profile), 81 : profile_(profile),
83 owner_thread_(owner_thread), 82 owner_thread_(owner_thread),
84 event_name_(event_name), 83 event_name_(event_name),
85 webview_key_(webview_key), 84 webview_key_(webview_key),
85 ready_(/*signaled=*/!cache_delegate), // Immediately ready if no cache
86 // delegate to wait for.
86 weak_ptr_factory_(profile ? this : NULL), 87 weak_ptr_factory_(profile ? this : NULL),
87 last_generated_rule_identifier_id_(0) { 88 last_generated_rule_identifier_id_(0) {
88 if (cache_delegate) { 89 if (cache_delegate) {
89 cache_delegate_ = cache_delegate->GetWeakPtr(); 90 cache_delegate_ = cache_delegate->GetWeakPtr();
90 cache_delegate->Init(this); 91 cache_delegate->Init(this);
91 } else {
92 content::BrowserThread::PostTask(
93 owner_thread,
94 FROM_HERE,
95 base::Bind(&RulesRegistry::MarkReady, this, base::Time::Now()));
96 } 92 }
97 } 93 }
98 94
99 std::string RulesRegistry::AddRulesNoFill( 95 std::string RulesRegistry::AddRulesNoFill(
100 const std::string& extension_id, 96 const std::string& extension_id,
101 const std::vector<linked_ptr<Rule> >& rules) { 97 const std::vector<linked_ptr<Rule> >& rules) {
102 DCHECK(content::BrowserThread::CurrentlyOn(owner_thread())); 98 DCHECK(content::BrowserThread::CurrentlyOn(owner_thread()));
103 99
104 // Verify that all rule IDs are new. 100 // Verify that all rule IDs are new.
105 for (std::vector<linked_ptr<Rule> >::const_iterator i = 101 for (std::vector<linked_ptr<Rule> >::const_iterator i =
(...skipping 270 matching lines...) Expand 10 before | Expand all | Expand 10 after
376 for (i = identifiers.begin(); i != identifiers.end(); ++i) 372 for (i = identifiers.begin(); i != identifiers.end(); ++i)
377 used_rule_identifiers_[extension_id].erase(*i); 373 used_rule_identifiers_[extension_id].erase(*i);
378 } 374 }
379 375
380 void RulesRegistry::RemoveAllUsedRuleIdentifiers( 376 void RulesRegistry::RemoveAllUsedRuleIdentifiers(
381 const std::string& extension_id) { 377 const std::string& extension_id) {
382 used_rule_identifiers_.erase(extension_id); 378 used_rule_identifiers_.erase(extension_id);
383 } 379 }
384 380
385 } // namespace extensions 381 } // namespace extensions
OLDNEW
« no previous file with comments | « no previous file | extensions/common/one_shot_event.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698