• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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.
4 
5 #ifndef CHROME_BROWSER_SAFE_BROWSING_PROTOCOL_MANAGER_HELPER_H_
6 #define CHROME_BROWSER_SAFE_BROWSING_PROTOCOL_MANAGER_HELPER_H_
7 
8 // A class that provides common functionality for safebrowsing protocol managers
9 // that communicate with Google servers.
10 
11 #include <string>
12 
13 #include "base/memory/ref_counted.h"
14 #include "base/memory/scoped_ptr.h"
15 
16 #include "base/gtest_prod_util.h"
17 
18 struct SafeBrowsingProtocolConfig {
19   SafeBrowsingProtocolConfig();
20   ~SafeBrowsingProtocolConfig();
21   std::string client_name;
22   std::string url_prefix;
23   std::string backup_connect_error_url_prefix;
24   std::string backup_http_error_url_prefix;
25   std::string backup_network_error_url_prefix;
26   std::string version;
27   bool disable_auto_update;
28 };
29 
30 class SafeBrowsingProtocolManagerHelper {
31  public:
32   // returns version
33   static std::string Version();
34 
35   // Composes a URL using |prefix|, |method| (e.g.: gethash, download, report).
36   // |client_name| and |version|. When not empty, |additional_query| is
37   // appended to the URL with an additional "&" in the front.
38   static std::string ComposeUrl(const std::string& prefix,
39                                 const std::string& method,
40                                 const std::string& client_name,
41                                 const std::string& version,
42                                 const std::string& additional_query);
43 
44  private:
45   DISALLOW_IMPLICIT_CONSTRUCTORS(SafeBrowsingProtocolManagerHelper);
46 };
47 
48 #endif  // CHROME_BROWSER_SAFE_BROWSING_PROTOCOL_MANAGER_HELPER_H_
49