1c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott// Copyright (c) 2009 The Chromium Authors. All rights reserved.
2c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott// Use of this source code is governed by a BSD-style license that can be
3c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott// found in the LICENSE file.
4c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott
5c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott// The rules for parsing content-types were borrowed from Firefox:
6c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott// http://lxr.mozilla.org/mozilla/source/netwerk/base/src/nsURLHelper.cpp#834
7c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott
8c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott#include "net/http/http_util.h"
9c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott
10c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott#include "base/logging.h"
11c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott#include "net/base/net_util.h"
12c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott
13c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottnamespace net {
14c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott
15c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott// static
16c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottstd::string HttpUtil::PathForRequest(const GURL& url) {
17c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott  DCHECK(url.is_valid() && (url.SchemeIs("http") || url.SchemeIs("https")));
18c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott  if (url.has_query())
19c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott    return url.path() + "?" + url.query();
20c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott  return url.path();
21c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott}
22c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott
23c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott// static
24c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottstd::string HttpUtil::SpecForRequest(const GURL& url) {
25c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott  DCHECK(url.is_valid() && (url.SchemeIs("http") || url.SchemeIs("https")));
26c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott  return SimplifyUrlForRequest(url).spec();
27c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott}
28c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott
29c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott}  // namespace net
30