1f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 2f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)// found in the LICENSE file. 4f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 56e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)#ifndef CHROME_BROWSER_SAFE_BROWSING_INCIDENT_REPORTING_PREFERENCE_VALIDATION_DELEGATE_H_ 66e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)#define CHROME_BROWSER_SAFE_BROWSING_INCIDENT_REPORTING_PREFERENCE_VALIDATION_DELEGATE_H_ 7f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 8f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#include "base/compiler_specific.h" 9f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#include "base/macros.h" 10f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#include "chrome/browser/prefs/tracked/tracked_preference_validation_delegate.h" 116e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)#include "chrome/browser/safe_browsing/incident_reporting/add_incident_callback.h" 12f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 13f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)namespace safe_browsing { 14f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 15f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)// A preference validation delegate that adds incidents to a given receiver 16f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)// for preference validation failures. 17f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)class PreferenceValidationDelegate 18f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) : public TrackedPreferenceValidationDelegate { 19f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) public: 20f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) explicit PreferenceValidationDelegate( 21f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) const AddIncidentCallback& add_incident); 22f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) virtual ~PreferenceValidationDelegate(); 23f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 24f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) private: 25f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) // TrackedPreferenceValidationDelegate methods. 26f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) virtual void OnAtomicPreferenceValidation( 27f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) const std::string& pref_path, 28f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) const base::Value* value, 29f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) PrefHashStoreTransaction::ValueState value_state, 30f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) TrackedPreferenceHelper::ResetAction reset_action) OVERRIDE; 31f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) virtual void OnSplitPreferenceValidation( 32f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) const std::string& pref_path, 33f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) const base::DictionaryValue* dict_value, 34f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) const std::vector<std::string>& invalid_keys, 35f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) PrefHashStoreTransaction::ValueState value_state, 36f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) TrackedPreferenceHelper::ResetAction reset_action) OVERRIDE; 37f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 38f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) AddIncidentCallback add_incident_; 39f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 40f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(PreferenceValidationDelegate); 41f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)}; 42f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 43f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)} // namespace safe_browsing 44f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 456e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)#endif // CHROME_BROWSER_SAFE_BROWSING_INCIDENT_REPORTING_PREFERENCE_VALIDATION_DELEGATE_H_ 46