Skip to content

Commit

Permalink
Remove SafeJsonParser and TestingJsonParser
Browse files Browse the repository at this point in the history
This converts remaining users to the new DataDecoder API which does not
depend on Service Manager.

Bug: 977637
Change-Id: Iaaa102f28ff63256a4c2090b6d6837085bb56103
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1892125
Commit-Queue: Ken Rockot <rockot@google.com>
Reviewed-by: Robert Sesek <rsesek@chromium.org>
Reviewed-by: Xiyuan Xia <xiyuan@chromium.org>
Reviewed-by: Scott Violet <sky@chromium.org>
Reviewed-by: Ganggui Tang <gogerald@chromium.org>
Reviewed-by: Kristi Park <kristipark@chromium.org>
Cr-Commit-Position: refs/heads/master@{#711955}
  • Loading branch information
krockot authored and Commit Bot committed Nov 2, 2019
1 parent 45d18ca commit d5fbc93
Show file tree
Hide file tree
Showing 37 changed files with 130 additions and 1,030 deletions.
1 change: 0 additions & 1 deletion chrome/browser/chromeos/arc/policy/arc_policy_bridge.cc
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,6 @@
#include "components/prefs/pref_service.h"
#include "components/user_manager/user.h"
#include "crypto/sha2.h"
#include "services/data_decoder/public/cpp/safe_json_parser.h"

namespace arc {

Expand Down
1 change: 0 additions & 1 deletion chrome/browser/extensions/webstore_install_helper.cc
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@
#include "net/base/load_flags.h"
#include "net/traffic_annotation/network_traffic_annotation.h"
#include "net/url_request/url_request.h"
#include "services/data_decoder/public/cpp/safe_json_parser.h"

using content::BrowserThread;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,6 @@
#include "content/public/browser/network_service_instance.h"
#include "content/public/browser/storage_partition.h"
#include "content/public/common/service_manager_connection.h"
#include "services/data_decoder/public/cpp/safe_json_parser.h"
#include "services/network/public/cpp/shared_url_loader_factory.h"
#include "services/network/public/mojom/network_context.mojom.h"

Expand Down
3 changes: 0 additions & 3 deletions chrome/browser/plugins/plugins_resource_service.cc
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@
#include "components/prefs/pref_service.h"
#include "content/public/browser/network_service_instance.h"
#include "content/public/browser/system_connector.h"
#include "services/data_decoder/public/cpp/safe_json_parser.h"
#include "services/network/public/cpp/shared_url_loader_factory.h"
#include "url/gurl.h"

Expand Down Expand Up @@ -87,8 +86,6 @@ PluginsResourceService::PluginsResourceService(PrefService* local_state)
g_browser_process->system_network_context_manager()
->GetSharedURLLoaderFactory(),
switches::kDisableBackgroundNetworking,
base::BindRepeating(&data_decoder::SafeJsonParser::Parse,
content::GetSystemConnector()),
kPluginResourceServiceTrafficAnnotation,
base::BindOnce(&content::GetNetworkConnectionTracker)) {}

Expand Down
168 changes: 0 additions & 168 deletions chrome/browser/safe_json_parser_browsertest.cc

This file was deleted.

28 changes: 13 additions & 15 deletions chrome/browser/search/one_google_bar/one_google_bar_loader_impl.cc
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,11 @@
#include "chrome/common/webui_url_constants.h"
#include "components/google/core/common/google_util.h"
#include "components/variations/net/variations_http_headers.h"
#include "content/public/browser/system_connector.h"
#include "net/base/load_flags.h"
#include "net/base/url_util.h"
#include "net/http/http_status_code.h"
#include "net/traffic_annotation/network_traffic_annotation.h"
#include "services/data_decoder/public/cpp/safe_json_parser.h"
#include "services/data_decoder/public/cpp/data_decoder.h"
#include "services/network/public/cpp/resource_request.h"
#include "services/network/public/cpp/shared_url_loader_factory.h"
#include "services/network/public/cpp/simple_url_loader.h"
Expand Down Expand Up @@ -335,22 +334,21 @@ void OneGoogleBarLoaderImpl::LoadDone(
response = response.substr(strlen(kResponsePreamble));
}

data_decoder::SafeJsonParser::Parse(
content::GetSystemConnector(), response,
base::BindOnce(&OneGoogleBarLoaderImpl::JsonParsed,
weak_ptr_factory_.GetWeakPtr()),
base::BindOnce(&OneGoogleBarLoaderImpl::JsonParseFailed,
weak_ptr_factory_.GetWeakPtr()));
data_decoder::DataDecoder::ParseJsonIsolated(
response, base::BindOnce(&OneGoogleBarLoaderImpl::JsonParsed,
weak_ptr_factory_.GetWeakPtr()));
}

void OneGoogleBarLoaderImpl::JsonParsed(base::Value value) {
base::Optional<OneGoogleBarData> result = JsonToOGBData(value);
Respond(result.has_value() ? Status::OK : Status::FATAL_ERROR, result);
}
void OneGoogleBarLoaderImpl::JsonParsed(
data_decoder::DataDecoder::ValueOrError result) {
if (!result.value) {
DVLOG(1) << "Parsing JSON failed: " << *result.error;
Respond(Status::FATAL_ERROR, base::nullopt);
return;
}

void OneGoogleBarLoaderImpl::JsonParseFailed(const std::string& message) {
DVLOG(1) << "Parsing JSON failed: " << message;
Respond(Status::FATAL_ERROR, base::nullopt);
base::Optional<OneGoogleBarData> data = JsonToOGBData(*result.value);
Respond(data.has_value() ? Status::OK : Status::FATAL_ERROR, data);
}

void OneGoogleBarLoaderImpl::Respond(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,7 @@
#include "base/memory/weak_ptr.h"
#include "base/optional.h"
#include "chrome/browser/search/one_google_bar/one_google_bar_loader.h"

namespace base {
class Value;
}
#include "services/data_decoder/public/cpp/data_decoder.h"

namespace network {
class SimpleURLLoader;
Expand Down Expand Up @@ -45,8 +42,7 @@ class OneGoogleBarLoaderImpl : public OneGoogleBarLoader {
void LoadDone(const network::SimpleURLLoader* simple_loader,
std::unique_ptr<std::string> response_body);

void JsonParsed(base::Value value);
void JsonParseFailed(const std::string& message);
void JsonParsed(data_decoder::DataDecoder::ValueOrError result);

void Respond(Status status, const base::Optional<OneGoogleBarData>& data);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,9 @@
#include "chrome/browser/search/one_google_bar/one_google_bar_data.h"
#include "components/signin/core/browser/signin_header_helper.h"
#include "content/public/test/browser_task_environment.h"
#include "content/public/test/test_service_manager_context.h"
#include "net/http/http_request_headers.h"
#include "net/http/http_status_code.h"
#include "services/data_decoder/public/cpp/testing_json_parser.h"
#include "services/data_decoder/public/cpp/test_support/in_process_data_decoder.h"
#include "services/network/public/cpp/weak_wrapper_shared_url_loader_factory.h"
#include "services/network/public/mojom/url_loader_factory.mojom.h"
#include "services/network/test/test_url_loader_factory.h"
Expand Down Expand Up @@ -96,12 +95,11 @@ class OneGoogleBarLoaderImplTest : public testing::Test {
}

private:
// variations::AppendVariationHeaders and SafeJsonParser require a
// threads and a ServiceManagerConnection to be set.
// variations::AppendVariationHeaders requires browser threads.
content::BrowserTaskEnvironment task_environment_;
content::TestServiceManagerContext service_manager_context_;

data_decoder::TestingJsonParser::ScopedFactoryOverride factory_override_;
// Supports JSON decoding in the loader implementation.
data_decoder::test::InProcessDataDecoder in_process_data_decoder_;

network::TestURLLoaderFactory test_url_loader_factory_;
scoped_refptr<network::SharedURLLoaderFactory> test_shared_loader_factory_;
Expand Down
37 changes: 17 additions & 20 deletions chrome/browser/search/promos/promo_service.cc
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,9 @@
#include "components/google/core/common/google_util.h"
#include "components/prefs/pref_service.h"
#include "components/prefs/scoped_user_pref_update.h"
#include "content/public/browser/system_connector.h"
#include "net/base/load_flags.h"
#include "net/base/url_util.h"
#include "net/traffic_annotation/network_traffic_annotation.h"
#include "services/data_decoder/public/cpp/safe_json_parser.h"
#include "services/network/public/cpp/shared_url_loader_factory.h"
#include "services/network/public/cpp/simple_url_loader.h"

Expand Down Expand Up @@ -178,33 +176,32 @@ void PromoService::OnLoadDone(std::unique_ptr<std::string> response_body) {
response = response.substr(strlen(kXSSIResponsePreamble));
}

data_decoder::SafeJsonParser::Parse(
content::GetSystemConnector(), response,
base::BindOnce(&PromoService::OnJsonParsed,
weak_ptr_factory_.GetWeakPtr()),
base::BindOnce(&PromoService::OnJsonParseFailed,
weak_ptr_factory_.GetWeakPtr()));
data_decoder::DataDecoder::ParseJsonIsolated(
response, base::BindOnce(&PromoService::OnJsonParsed,
weak_ptr_factory_.GetWeakPtr()));
}

void PromoService::OnJsonParsed(base::Value value) {
base::Optional<PromoData> result;
void PromoService::OnJsonParsed(
data_decoder::DataDecoder::ValueOrError result) {
if (!result.value) {
DVLOG(1) << "Parsing JSON failed: " << *result.error;
PromoDataLoaded(Status::FATAL_ERROR, base::nullopt);
return;
}

base::Optional<PromoData> data;
PromoService::Status status;

if (JsonToPromoData(value, &result)) {
bool is_blocked = IsBlockedAfterClearingExpired(result->promo_id);
if (JsonToPromoData(*result.value, &data)) {
bool is_blocked = IsBlockedAfterClearingExpired(data->promo_id);
if (is_blocked)
result = PromoData();
data = PromoData();
status = is_blocked ? Status::OK_BUT_BLOCKED : Status::OK_WITH_PROMO;
} else {
status = result ? Status::OK_WITHOUT_PROMO : Status::FATAL_ERROR;
status = data ? Status::OK_WITHOUT_PROMO : Status::FATAL_ERROR;
}

PromoDataLoaded(status, result);
}

void PromoService::OnJsonParseFailed(const std::string& message) {
DVLOG(1) << "Parsing JSON failed: " << message;
PromoDataLoaded(Status::FATAL_ERROR, base::nullopt);
PromoDataLoaded(status, data);
}

void PromoService::Shutdown() {
Expand Down
5 changes: 2 additions & 3 deletions chrome/browser/search/promos/promo_service.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,11 @@

#include "base/observer_list.h"
#include "base/optional.h"
#include "base/values.h"
#include "chrome/browser/search/promos/promo_data.h"
#include "chrome/browser/search/promos/promo_service_observer.h"
#include "components/keyed_service/core/keyed_service.h"
#include "components/prefs/pref_registry_simple.h"
#include "services/data_decoder/public/cpp/data_decoder.h"

class GURL;
class PrefService;
Expand Down Expand Up @@ -80,8 +80,7 @@ class PromoService : public KeyedService {

private:
void OnLoadDone(std::unique_ptr<std::string> response_body);
void OnJsonParsed(base::Value value);
void OnJsonParseFailed(const std::string& message);
void OnJsonParsed(data_decoder::DataDecoder::ValueOrError result);

void NotifyObservers();

Expand Down

0 comments on commit d5fbc93

Please sign in to comment.