// Copyright 2014 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef EXTENSIONS_BROWSER_CONTENT_VERIFIER_IO_DATA_H_ #define EXTENSIONS_BROWSER_CONTENT_VERIFIER_IO_DATA_H_ #include #include #include #include "base/files/file_path.h" #include "base/memory/linked_ptr.h" #include "base/memory/ref_counted.h" #include "base/memory/scoped_ptr.h" #include "base/version.h" namespace extensions { // A helper class for keeping track of data for the ContentVerifier that should // only be accessed on the IO thread. class ContentVerifierIOData : public base::RefCountedThreadSafe { public: struct ExtensionData { scoped_ptr> browser_image_paths; base::Version version; ExtensionData(scoped_ptr> browser_image_paths, const base::Version& version); ~ExtensionData(); }; ContentVerifierIOData(); void AddData(const std::string& extension_id, scoped_ptr data); void RemoveData(const std::string& extension_id); void Clear(); // This should be called on the IO thread, and the return value should not // be retained or used on other threads. const ExtensionData* GetData(const std::string& extension_id); protected: friend class base::RefCountedThreadSafe; virtual ~ContentVerifierIOData(); std::map > data_map_; }; } // namespace extensions #endif // EXTENSIONS_BROWSER_CONTENT_VERIFIER_IO_DATA_H_