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