| Index: chrome/browser/browsing_data/browsing_data_counter.cc | 
| diff --git a/chrome/browser/browsing_data/browsing_data_counter.cc b/chrome/browser/browsing_data/browsing_data_counter.cc | 
| index a716c32c90fc4eb61d0e0a2462538f7beedcb2a7..59901473285ea3547aaee057be15d4f49dbf44c1 100644 | 
| --- a/chrome/browser/browsing_data/browsing_data_counter.cc | 
| +++ b/chrome/browser/browsing_data/browsing_data_counter.cc | 
| @@ -53,12 +53,56 @@ void BrowsingDataCounter::Restart() { | 
| if (!profile_->GetPrefs()->GetBoolean(GetPrefName())) | 
| return; | 
|  | 
| -  callback_.Run(false, 0u); | 
| +  callback_.Run(make_scoped_ptr(new Result(this))); | 
|  | 
| Count(); | 
| } | 
|  | 
| void BrowsingDataCounter::ReportResult(ResultInt value) { | 
| DCHECK(initialized_); | 
| -  callback_.Run(true, value); | 
| +  callback_.Run(make_scoped_ptr(new FinishedResult(this, value))); | 
| +} | 
| + | 
| +void BrowsingDataCounter::ReportResult(scoped_ptr<Result> result) { | 
| +  DCHECK(initialized_); | 
| +  callback_.Run(result.Pass()); | 
| +} | 
| + | 
| +// BrowsingDataCounter::Result ------------------------------------------------- | 
| + | 
| +BrowsingDataCounter::Result::Result(const BrowsingDataCounter* source) | 
| +    : source_(source) { | 
| +} | 
| + | 
| +BrowsingDataCounter::Result::~Result() { | 
| +} | 
| + | 
| +bool BrowsingDataCounter::Result::Finished() const { | 
| +  return false; | 
| +} | 
| + | 
| +BrowsingDataCounter::ResultInt | 
| +    BrowsingDataCounter::Result::Value() const { | 
| +  NOTREACHED() << "Value() is only available in FinishedResult."; | 
| +  return 0; | 
| +} | 
| + | 
| +// BrowsingDataCounter::FinishedResult ----------------------------------------- | 
| + | 
| +BrowsingDataCounter::FinishedResult::FinishedResult( | 
| +    const BrowsingDataCounter* source, ResultInt value) | 
| +    : Result(source), | 
| +      value_(value) { | 
| +} | 
| + | 
| +BrowsingDataCounter::FinishedResult::~FinishedResult() { | 
| +} | 
| + | 
| +bool BrowsingDataCounter::FinishedResult::Finished() const { | 
| +  return true; | 
| +} | 
| + | 
| +BrowsingDataCounter::ResultInt | 
| +    BrowsingDataCounter::FinishedResult::Value() const { | 
| +  return value_; | 
| } | 
|  |