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 #if defined(OS_ANDROID) 29 bool disable_connection_check; 30 #endif 31 }; 32 33 class SafeBrowsingProtocolManagerHelper { 34 public: 35 // returns version 36 static std::string Version(); 37 38 // Composes a URL using |prefix|, |method| (e.g.: gethash, download, report). 39 // |client_name| and |version|. When not empty, |additional_query| is 40 // appended to the URL with an additional "&" in the front. 41 static std::string ComposeUrl(const std::string& prefix, 42 const std::string& method, 43 const std::string& client_name, 44 const std::string& version, 45 const std::string& additional_query); 46 47 private: 48 DISALLOW_IMPLICIT_CONSTRUCTORS(SafeBrowsingProtocolManagerHelper); 49 }; 50 51 #endif // CHROME_BROWSER_SAFE_BROWSING_PROTOCOL_MANAGER_HELPER_H_ 52