| Index: content/renderer/devtools/v8_sampling_profiler.cc
|
| diff --git a/content/renderer/devtools/v8_sampling_profiler.cc b/content/renderer/devtools/v8_sampling_profiler.cc
|
| index 06d3104de50f933e635cbbcf0c9c1c6bc43ad4f8..9b3249745e27c070582e3c0858029e6222c04549 100644
|
| --- a/content/renderer/devtools/v8_sampling_profiler.cc
|
| +++ b/content/renderer/devtools/v8_sampling_profiler.cc
|
| @@ -117,9 +117,16 @@ class Sampler {
|
|
|
| void DoSample(const v8::RegisterState& state);
|
|
|
| + void SetEventsToCollectForTest(int code_added_events, int sample_events) {
|
| + code_added_events_to_collect_for_test_ = code_added_events;
|
| + sample_events_to_collect_for_test_ = sample_events;
|
| + }
|
| +
|
| bool EventsCollectedForTest() const {
|
| - return base::subtle::NoBarrier_Load(&code_added_events_count_) != 0 ||
|
| - base::subtle::NoBarrier_Load(&samples_count_) != 0;
|
| + return base::subtle::NoBarrier_Load(&code_added_events_count_) >=
|
| + code_added_events_to_collect_for_test_ &&
|
| + base::subtle::NoBarrier_Load(&samples_count_) >=
|
| + sample_events_to_collect_for_test_;
|
| }
|
|
|
| private:
|
| @@ -142,6 +149,8 @@ class Sampler {
|
| scoped_ptr<SamplingQueue> samples_data_;
|
| base::subtle::Atomic32 code_added_events_count_;
|
| base::subtle::Atomic32 samples_count_;
|
| + int code_added_events_to_collect_for_test_;
|
| + int sample_events_to_collect_for_test_;
|
|
|
| static base::LazyInstance<base::ThreadLocalPointer<Sampler>>::Leaky
|
| tls_instance_;
|
| @@ -155,7 +164,9 @@ Sampler::Sampler()
|
| thread_handle_(Sampler::GetCurrentThreadHandle()),
|
| isolate_(Isolate::GetCurrent()),
|
| code_added_events_count_(0),
|
| - samples_count_(0) {
|
| + samples_count_(0),
|
| + code_added_events_to_collect_for_test_(0),
|
| + sample_events_to_collect_for_test_(0) {
|
| DCHECK(isolate_);
|
| DCHECK(!GetInstance());
|
| tls_instance_.Pointer()->Set(this);
|
| @@ -213,7 +224,6 @@ void Sampler::DoSample(const v8::RegisterState& state) {
|
| return;
|
| record->Collect(isolate_, timestamp, state);
|
| samples_data_->FinishEnqueue();
|
| - base::subtle::NoBarrier_AtomicIncrement(&samples_count_, 1);
|
| }
|
|
|
| void Sampler::InjectPendingEvents() {
|
| @@ -225,6 +235,7 @@ void Sampler::InjectPendingEvents() {
|
| record->ToTraceFormat());
|
| samples_data_->Remove();
|
| record = samples_data_->Peek();
|
| + base::subtle::NoBarrier_AtomicIncrement(&samples_count_, 1);
|
| }
|
| }
|
|
|
| @@ -548,7 +559,10 @@ void V8SamplingProfiler::OnTraceLogDisabled() {
|
| sampling_thread_.reset();
|
| }
|
|
|
| -void V8SamplingProfiler::EnableSamplingEventForTesting() {
|
| +void V8SamplingProfiler::EnableSamplingEventForTesting(int code_added_events,
|
| + int sample_events) {
|
| + render_thread_sampler_->SetEventsToCollectForTest(code_added_events,
|
| + sample_events);
|
| waitable_event_for_testing_.reset(new base::WaitableEvent(false, false));
|
| }
|
|
|
|
|