Index: components/safe_json/safe_json_parser_impl.cc |
diff --git a/components/safe_json/safe_json_parser_impl.cc b/components/safe_json/safe_json_parser_impl.cc |
index 8f0ea483ed9a37e35c318e9c453ca69d9e932d0c..7a988d3d6e93cb56eb968f37b9482507e7006ad2 100644 |
--- a/components/safe_json/safe_json_parser_impl.cc |
+++ b/components/safe_json/safe_json_parser_impl.cc |
@@ -61,7 +61,7 @@ void SafeJsonParserImpl::OnConnectionError() { |
nullptr, "Connection error with the json parser process.")); |
} |
-void SafeJsonParserImpl::OnParseDone(std::unique_ptr<base::Value> result, |
+void SafeJsonParserImpl::OnParseDone(const base::Optional<base::Value>& result, |
const base::Optional<std::string>& error) { |
DCHECK(io_thread_checker_.CalledOnValidThread()); |
@@ -72,7 +72,8 @@ void SafeJsonParserImpl::OnParseDone(std::unique_ptr<base::Value> result, |
caller_task_runner_->PostTask( |
FROM_HERE, |
base::Bind(&SafeJsonParserImpl::ReportResults, base::Unretained(this), |
- base::Passed(&result), error.value_or(""))); |
+ base::Passed(result ? result->CreateDeepCopy() : nullptr), |
+ error.value_or(""))); |
} |
void SafeJsonParserImpl::ReportResults(std::unique_ptr<base::Value> parsed_json, |