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

Side by Side Diff: chrome/browser/extensions/api/declarative/declarative_rule.h

Issue 491913003: Add Reapply() to declarative action interface. This is needed for RequestContentScript to work corr… (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase again Created 6 years, 4 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
« no previous file with comments | « no previous file | chrome/browser/extensions/api/declarative_content/content_action.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) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 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 // DeclarativeRule<>, DeclarativeConditionSet<>, and DeclarativeActionSet<> 5 // DeclarativeRule<>, DeclarativeConditionSet<>, and DeclarativeActionSet<>
6 // templates usable with multiple different declarativeFoo systems. These are 6 // templates usable with multiple different declarativeFoo systems. These are
7 // templated on the Condition and Action types that define the behavior of a 7 // templated on the Condition and Action types that define the behavior of a
8 // particular declarative event. 8 // particular declarative event.
9 9
10 #ifndef CHROME_BROWSER_EXTENSIONS_API_DECLARATIVE_DECLARATIVE_RULE_H__ 10 #ifndef CHROME_BROWSER_EXTENSIONS_API_DECLARATIVE_DECLARATIVE_RULE_H__
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
149 static scoped_ptr<DeclarativeActionSet> Create(const Extension* extension, 149 static scoped_ptr<DeclarativeActionSet> Create(const Extension* extension,
150 const AnyVector& actions, 150 const AnyVector& actions,
151 std::string* error, 151 std::string* error,
152 bool* bad_message); 152 bool* bad_message);
153 153
154 // Rules call this method when their conditions are fulfilled. 154 // Rules call this method when their conditions are fulfilled.
155 void Apply(const std::string& extension_id, 155 void Apply(const std::string& extension_id,
156 const base::Time& extension_install_time, 156 const base::Time& extension_install_time,
157 typename ActionT::ApplyInfo* apply_info) const; 157 typename ActionT::ApplyInfo* apply_info) const;
158 158
159 // Rules call this method when their conditions are fulfilled, but Apply has
160 // already been called.
161 void Reapply(const std::string& extension_id,
162 const base::Time& extension_install_time,
163 typename ActionT::ApplyInfo* apply_info) const;
164
159 // Rules call this method when they have stateful conditions, and those 165 // Rules call this method when they have stateful conditions, and those
160 // conditions stop being fulfilled. Rules with event-based conditions (e.g. a 166 // conditions stop being fulfilled. Rules with event-based conditions (e.g. a
161 // network request happened) will never Revert() an action. 167 // network request happened) will never Revert() an action.
162 void Revert(const std::string& extension_id, 168 void Revert(const std::string& extension_id,
163 const base::Time& extension_install_time, 169 const base::Time& extension_install_time,
164 typename ActionT::ApplyInfo* apply_info) const; 170 typename ActionT::ApplyInfo* apply_info) const;
165 171
166 // Returns the minimum priority of rules that may be evaluated after 172 // Returns the minimum priority of rules that may be evaluated after
167 // this rule. Defaults to MIN_INT. 173 // this rule. Defaults to MIN_INT.
168 int GetMinimumPriority() const; 174 int GetMinimumPriority() const;
(...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after
377 void DeclarativeActionSet<ActionT>::Apply( 383 void DeclarativeActionSet<ActionT>::Apply(
378 const std::string& extension_id, 384 const std::string& extension_id,
379 const base::Time& extension_install_time, 385 const base::Time& extension_install_time,
380 typename ActionT::ApplyInfo* apply_info) const { 386 typename ActionT::ApplyInfo* apply_info) const {
381 for (typename Actions::const_iterator i = actions_.begin(); 387 for (typename Actions::const_iterator i = actions_.begin();
382 i != actions_.end(); ++i) 388 i != actions_.end(); ++i)
383 (*i)->Apply(extension_id, extension_install_time, apply_info); 389 (*i)->Apply(extension_id, extension_install_time, apply_info);
384 } 390 }
385 391
386 template<typename ActionT> 392 template<typename ActionT>
393 void DeclarativeActionSet<ActionT>::Reapply(
394 const std::string& extension_id,
395 const base::Time& extension_install_time,
396 typename ActionT::ApplyInfo* apply_info) const {
397 for (typename Actions::const_iterator i = actions_.begin();
398 i != actions_.end(); ++i)
399 (*i)->Reapply(extension_id, extension_install_time, apply_info);
400 }
401
402 template<typename ActionT>
387 void DeclarativeActionSet<ActionT>::Revert( 403 void DeclarativeActionSet<ActionT>::Revert(
388 const std::string& extension_id, 404 const std::string& extension_id,
389 const base::Time& extension_install_time, 405 const base::Time& extension_install_time,
390 typename ActionT::ApplyInfo* apply_info) const { 406 typename ActionT::ApplyInfo* apply_info) const {
391 for (typename Actions::const_iterator i = actions_.begin(); 407 for (typename Actions::const_iterator i = actions_.begin();
392 i != actions_.end(); ++i) 408 i != actions_.end(); ++i)
393 (*i)->Revert(extension_id, extension_install_time, apply_info); 409 (*i)->Revert(extension_id, extension_install_time, apply_info);
394 } 410 }
395 411
396 template<typename ActionT> 412 template<typename ActionT>
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
482 } 498 }
483 499
484 template<typename ConditionT, typename ActionT> 500 template<typename ConditionT, typename ActionT>
485 int DeclarativeRule<ConditionT, ActionT>::GetMinimumPriority() const { 501 int DeclarativeRule<ConditionT, ActionT>::GetMinimumPriority() const {
486 return actions_->GetMinimumPriority(); 502 return actions_->GetMinimumPriority();
487 } 503 }
488 504
489 } // namespace extensions 505 } // namespace extensions
490 506
491 #endif // CHROME_BROWSER_EXTENSIONS_API_DECLARATIVE_DECLARATIVE_RULE_H__ 507 #endif // CHROME_BROWSER_EXTENSIONS_API_DECLARATIVE_DECLARATIVE_RULE_H__
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/extensions/api/declarative_content/content_action.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698