Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(268)

Side by Side Diff: components/safe_json/json_sanitizer.cc

Issue 1921923002: Convert //components/[o-t]* from scoped_ptr to std::unique_ptr (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: . Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « components/safe_json/json_sanitizer.h ('k') | components/safe_json/json_sanitizer_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "components/safe_json/json_sanitizer.h" 5 #include "components/safe_json/json_sanitizer.h"
6 6
7 #if defined(OS_ANDROID) 7 #if defined(OS_ANDROID)
8 #error Build json_sanitizer_android.cc instead of this file on Android. 8 #error Build json_sanitizer_android.cc instead of this file on Android.
9 #endif 9 #endif
10 10
(...skipping 16 matching lines...) Expand all
27 class OopJsonSanitizer : public JsonSanitizer { 27 class OopJsonSanitizer : public JsonSanitizer {
28 public: 28 public:
29 OopJsonSanitizer(const std::string& unsafe_json, 29 OopJsonSanitizer(const std::string& unsafe_json,
30 const StringCallback& success_callback, 30 const StringCallback& success_callback,
31 const StringCallback& error_callback); 31 const StringCallback& error_callback);
32 32
33 private: 33 private:
34 friend std::default_delete<OopJsonSanitizer>; 34 friend std::default_delete<OopJsonSanitizer>;
35 ~OopJsonSanitizer() {} 35 ~OopJsonSanitizer() {}
36 36
37 void OnParseSuccess(scoped_ptr<base::Value> value); 37 void OnParseSuccess(std::unique_ptr<base::Value> value);
38 void OnParseError(const std::string& error); 38 void OnParseError(const std::string& error);
39 39
40 StringCallback success_callback_; 40 StringCallback success_callback_;
41 StringCallback error_callback_; 41 StringCallback error_callback_;
42 42
43 DISALLOW_COPY_AND_ASSIGN(OopJsonSanitizer); 43 DISALLOW_COPY_AND_ASSIGN(OopJsonSanitizer);
44 }; 44 };
45 45
46 OopJsonSanitizer::OopJsonSanitizer(const std::string& unsafe_json, 46 OopJsonSanitizer::OopJsonSanitizer(const std::string& unsafe_json,
47 const StringCallback& success_callback, 47 const StringCallback& success_callback,
48 const StringCallback& error_callback) 48 const StringCallback& error_callback)
49 : success_callback_(success_callback), error_callback_(error_callback) { 49 : success_callback_(success_callback), error_callback_(error_callback) {
50 SafeJsonParser::Parse(unsafe_json, 50 SafeJsonParser::Parse(unsafe_json,
51 base::Bind(&OopJsonSanitizer::OnParseSuccess, 51 base::Bind(&OopJsonSanitizer::OnParseSuccess,
52 base::Unretained(this)), 52 base::Unretained(this)),
53 base::Bind(&OopJsonSanitizer::OnParseError, 53 base::Bind(&OopJsonSanitizer::OnParseError,
54 base::Unretained(this))); 54 base::Unretained(this)));
55 } 55 }
56 56
57 void OopJsonSanitizer::OnParseSuccess(scoped_ptr<base::Value> value) { 57 void OopJsonSanitizer::OnParseSuccess(std::unique_ptr<base::Value> value) {
58 // Self-destruct at the end of this method. 58 // Self-destruct at the end of this method.
59 scoped_ptr<OopJsonSanitizer> deleter(this); 59 std::unique_ptr<OopJsonSanitizer> deleter(this);
60 60
61 // A valid JSON document may only have a dictionary or list as its top-level 61 // A valid JSON document may only have a dictionary or list as its top-level
62 // type, but the JSON parser also accepts other types, so we filter them out. 62 // type, but the JSON parser also accepts other types, so we filter them out.
63 base::Value::Type type = value->GetType(); 63 base::Value::Type type = value->GetType();
64 if (type != base::Value::TYPE_DICTIONARY && type != base::Value::TYPE_LIST) { 64 if (type != base::Value::TYPE_DICTIONARY && type != base::Value::TYPE_LIST) {
65 error_callback_.Run("Invalid top-level type"); 65 error_callback_.Run("Invalid top-level type");
66 return; 66 return;
67 } 67 }
68 68
69 std::string json; 69 std::string json;
(...skipping 14 matching lines...) Expand all
84 84
85 // static 85 // static
86 void JsonSanitizer::Sanitize(const std::string& unsafe_json, 86 void JsonSanitizer::Sanitize(const std::string& unsafe_json,
87 const StringCallback& success_callback, 87 const StringCallback& success_callback,
88 const StringCallback& error_callback) { 88 const StringCallback& error_callback) {
89 // OopJsonSanitizer destroys itself when it is finished. 89 // OopJsonSanitizer destroys itself when it is finished.
90 new OopJsonSanitizer(unsafe_json, success_callback, error_callback); 90 new OopJsonSanitizer(unsafe_json, success_callback, error_callback);
91 } 91 }
92 92
93 } // namespace safe_json 93 } // namespace safe_json
OLDNEW
« no previous file with comments | « components/safe_json/json_sanitizer.h ('k') | components/safe_json/json_sanitizer_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698