blob: 7d2bbfdd1302e503e4c8ba5f011bd9a3c0944e89 [file] [log] [blame]
[email protected]1f6a9a62013-05-22 01:53:061// 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
bauerbf0e64aa2015-06-25 15:54:075#include "components/safe_json/safe_json_parser.h"
[email protected]1f6a9a62013-05-22 01:53:066
avif57136c12015-12-25 23:27:457#include "build/build_config.h"
8
bauerbb1704d02015-07-13 11:05:449#if defined(OS_ANDROID)
10#include "components/safe_json/safe_json_parser_android.h"
11#else
bauerb64c5a3882015-07-06 20:08:5412#include "components/safe_json/safe_json_parser_impl.h"
bauerbb1704d02015-07-13 11:05:4413#endif
[email protected]1f6a9a62013-05-22 01:53:0614
bauerbf0e64aa2015-06-25 15:54:0715namespace safe_json {
eranmb7951552015-06-03 08:38:1316
bauerb64c5a3882015-07-06 20:08:5417namespace {
18
19SafeJsonParser::Factory g_factory = nullptr;
20
bauerbb1704d02015-07-13 11:05:4421SafeJsonParser* Create(const std::string& unsafe_json,
22 const SafeJsonParser::SuccessCallback& success_callback,
23 const SafeJsonParser::ErrorCallback& error_callback) {
24 if (g_factory)
25 return g_factory(unsafe_json, success_callback, error_callback);
26
27#if defined(OS_ANDROID)
28 return new SafeJsonParserAndroid(unsafe_json, success_callback,
29 error_callback);
30#else
31 return new SafeJsonParserImpl(unsafe_json, success_callback, error_callback);
32#endif
33}
34
bauerb64c5a3882015-07-06 20:08:5435} // namespace
36
37// static
38void SafeJsonParser::SetFactoryForTesting(Factory factory) {
39 g_factory = factory;
eranmb7951552015-06-03 08:38:1340}
[email protected]1f6a9a62013-05-22 01:53:0641
bauerb64c5a3882015-07-06 20:08:5442// static
43void SafeJsonParser::Parse(const std::string& unsafe_json,
44 const SuccessCallback& success_callback,
45 const ErrorCallback& error_callback) {
46 SafeJsonParser* parser =
bauerbb1704d02015-07-13 11:05:4447 Create(unsafe_json, success_callback, error_callback);
bauerb64c5a3882015-07-06 20:08:5448 parser->Start();
[email protected]1f6a9a62013-05-22 01:53:0649}
eranmb7951552015-06-03 08:38:1350
bauerbf0e64aa2015-06-25 15:54:0751} // namespace safe_json