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

Side by Side Diff: chrome/browser/prefs/tracked/tracked_preference_validation_delegate.h

Issue 336983002: Fix NULL deref in safe browsing preference validation delegate. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: parens Created 6 years, 6 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
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 #ifndef CHROME_BROWSER_PREFS_TRACKED_TRACKED_PREFERENCE_VALIDATION_DELEGATE_H_ 5 #ifndef CHROME_BROWSER_PREFS_TRACKED_TRACKED_PREFERENCE_VALIDATION_DELEGATE_H_
6 #define CHROME_BROWSER_PREFS_TRACKED_TRACKED_PREFERENCE_VALIDATION_DELEGATE_H_ 6 #define CHROME_BROWSER_PREFS_TRACKED_TRACKED_PREFERENCE_VALIDATION_DELEGATE_H_
7 7
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
11 #include "chrome/browser/prefs/pref_hash_store_transaction.h" 11 #include "chrome/browser/prefs/pref_hash_store_transaction.h"
12 #include "chrome/browser/prefs/tracked/tracked_preference_helper.h" 12 #include "chrome/browser/prefs/tracked/tracked_preference_helper.h"
13 13
14 namespace base { 14 namespace base {
15 class DictionaryValue; 15 class DictionaryValue;
16 class Value; 16 class Value;
17 } 17 }
18 18
19 // A TrackedPreferenceValidationDelegate is notified of the results of each 19 // A TrackedPreferenceValidationDelegate is notified of the results of each
20 // tracked preference validation event. 20 // tracked preference validation event.
21 class TrackedPreferenceValidationDelegate { 21 class TrackedPreferenceValidationDelegate {
22 public: 22 public:
23 virtual ~TrackedPreferenceValidationDelegate() {} 23 virtual ~TrackedPreferenceValidationDelegate() {}
24 24
25 // Notifies observes of the result (|value_state|) of checking the atomic 25 // Notifies observes of the result (|value_state|) of checking the atomic
26 // |value| at |pref_path|. |reset_action| indicates whether or not a reset 26 // |value| (which may be NULL) at |pref_path|. |reset_action| indicates
27 // will occur based on |value_state| and the enforcement level in place. 27 // whether or not a reset will occur based on |value_state| and the
28 // enforcement level in place.
28 virtual void OnAtomicPreferenceValidation( 29 virtual void OnAtomicPreferenceValidation(
29 const std::string& pref_path, 30 const std::string& pref_path,
30 const base::Value* value, 31 const base::Value* value,
31 PrefHashStoreTransaction::ValueState value_state, 32 PrefHashStoreTransaction::ValueState value_state,
32 TrackedPreferenceHelper::ResetAction reset_action) = 0; 33 TrackedPreferenceHelper::ResetAction reset_action) = 0;
33 34
34 // Notifies observes of the result (|value_state|) of checking the split 35 // Notifies observes of the result (|value_state|) of checking the split
35 // |dict_value| at |pref_path|. |reset_action| indicates whether or not a 36 // |dict_value| (which may be NULL) at |pref_path|. |reset_action| indicates
36 // reset of |value_keys| will occur based on |value_state| and the enforcement 37 // whether or not a reset of |value_keys| will occur based on |value_state|
37 // level in place. 38 // and the enforcement level in place.
38 virtual void OnSplitPreferenceValidation( 39 virtual void OnSplitPreferenceValidation(
39 const std::string& pref_path, 40 const std::string& pref_path,
40 const base::DictionaryValue* dict_value, 41 const base::DictionaryValue* dict_value,
41 const std::vector<std::string>& invalid_keys, 42 const std::vector<std::string>& invalid_keys,
42 PrefHashStoreTransaction::ValueState value_state, 43 PrefHashStoreTransaction::ValueState value_state,
43 TrackedPreferenceHelper::ResetAction reset_action) = 0; 44 TrackedPreferenceHelper::ResetAction reset_action) = 0;
44 }; 45 };
45 46
46 #endif // CHROME_BROWSER_PREFS_TRACKED_TRACKED_PREFERENCE_VALIDATION_DELEGATE_H _ 47 #endif // CHROME_BROWSER_PREFS_TRACKED_TRACKED_PREFERENCE_VALIDATION_DELEGATE_H _
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698