1 // Copyright 2013 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef CC_DEBUG_UNITTEST_ONLY_BENCHMARK_H_ 6 #define CC_DEBUG_UNITTEST_ONLY_BENCHMARK_H_ 7 8 #include "base/memory/weak_ptr.h" 9 #include "cc/debug/micro_benchmark.h" 10 11 namespace cc { 12 13 class CC_EXPORT UnittestOnlyBenchmark : public MicroBenchmark { 14 public: 15 UnittestOnlyBenchmark(scoped_ptr<base::Value> value, 16 const DoneCallback& callback); 17 virtual ~UnittestOnlyBenchmark(); 18 19 virtual void DidUpdateLayers(LayerTreeHost* host) OVERRIDE; 20 21 protected: 22 virtual scoped_ptr<MicroBenchmarkImpl> CreateBenchmarkImpl( 23 scoped_refptr<base::MessageLoopProxy> origin_loop) OVERRIDE; 24 25 private: 26 void RecordImplResults(scoped_ptr<base::Value> results); 27 28 bool create_impl_benchmark_; 29 base::WeakPtrFactory<UnittestOnlyBenchmark> weak_ptr_factory_; 30 }; 31 32 } // namespace cc 33 34 #endif // CC_DEBUG_UNITTEST_ONLY_BENCHMARK_H_ 35 36