13345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick// Copyright (c) 2010 The Chromium Authors. All rights reserved. 2c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Use of this source code is governed by a BSD-style license that can be 3c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// found in the LICENSE file. 4c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// 5c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Contains the definition of a few helper functions used for generating sync 6c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// URLs. 7c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 8c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "chrome/browser/sync/engine/net/url_translator.h" 9c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 10c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "base/basictypes.h" 11c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "base/port.h" 12c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "net/base/escape.h" 13c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 14c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochusing std::string; 15c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 16c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochnamespace browser_sync { 17c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 18c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochnamespace { 19c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Parameters that the server understands. (here, a-Z) 20c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochconst char kParameterAuthToken[] = "auth"; 21c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochconst char kParameterClientID[] = "client_id"; 22c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch} 23c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 24c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Convenience wrappers around CgiEscapePath(). 25c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochstring CgiEscapeString(const char* src) { 26c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch return CgiEscapeString(string(src)); 27c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch} 28c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 29c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochstring CgiEscapeString(const string& src) { 30c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch return EscapeUrlEncodedData(src); 31c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch} 32c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 33c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// This method appends the query string to the sync server path. 34c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochstring MakeSyncServerPath(const string& path, const string& query_string) { 35c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch string result = path; 36c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch result.append("?"); 37c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch result.append(query_string); 38c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch return result; 39c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch} 40c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 41c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochstring MakeSyncQueryString(const string& client_id) { 42c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch string query; 43c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch query += kParameterClientID; 44c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch query += "=" + CgiEscapeString(client_id); 45c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch return query; 46c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch} 47c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 48c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch} // namespace browser_sync 49