1 // Copyright (c) 2012 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.
5 #include "chrome/browser/safe_browsing/protocol_manager_helper.h"
8 #include "base/base64.h"
10 #include "base/environment.h"
11 #include "base/logging.h"
12 #include "base/stl_util.h"
13 #include "base/strings/string_util.h"
14 #include "base/strings/stringprintf.h"
15 #include "chrome/common/env_vars.h"
16 #include "components/version_info/version_info.h"
17 #include "google_apis/google_api_keys.h"
18 #include "net/base/escape.h"
20 SafeBrowsingProtocolConfig::SafeBrowsingProtocolConfig()
21 : disable_auto_update(false)
22 #if defined(OS_ANDROID)
23 , disable_connection_check(false)
28 SafeBrowsingProtocolConfig::~SafeBrowsingProtocolConfig() {
32 std::string
SafeBrowsingProtocolManagerHelper::Version() {
33 if (version_info::GetVersionNumber().empty())
36 return version_info::GetVersionNumber();
40 std::string
SafeBrowsingProtocolManagerHelper::ComposeUrl(
41 const std::string
& prefix
, const std::string
& method
,
42 const std::string
& client_name
, const std::string
& version
,
43 const std::string
& additional_query
) {
44 DCHECK(!prefix
.empty() && !method
.empty() &&
45 !client_name
.empty() && !version
.empty());
46 std::string url
= base::StringPrintf("%s/%s?client=%s&appver=%s&pver=3.0",
47 prefix
.c_str(), method
.c_str(),
48 client_name
.c_str(), version
.c_str());
49 std::string api_key
= google_apis::GetAPIKey();
50 if (!api_key
.empty()) {
51 base::StringAppendF(&url
, "&key=%s",
52 net::EscapeQueryParamValue(api_key
, true).c_str());
54 if (!additional_query
.empty()) {
55 DCHECK(url
.find("?") != std::string::npos
);
57 url
.append(additional_query
);