1// Copyright (c) 2009 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// The rules for parsing content-types were borrowed from Firefox:
6// http://lxr.mozilla.org/mozilla/source/netwerk/base/src/nsURLHelper.cpp#834
7
8#include "net/http/http_util.h"
9
10#include "base/logging.h"
11#include "net/base/net_util.h"
12
13namespace net {
14
15// static
16std::string HttpUtil::PathForRequest(const GURL& url) {
17  DCHECK(url.is_valid() && (url.SchemeIsHTTPOrHTTPS() ||
18                            url.SchemeIsWSOrWSS()));
19  if (url.has_query())
20    return url.path() + "?" + url.query();
21  return url.path();
22}
23
24// static
25std::string HttpUtil::SpecForRequest(const GURL& url) {
26  // We may get ftp scheme when fetching ftp resources through proxy.
27  DCHECK(url.is_valid() && (url.SchemeIsHTTPOrHTTPS() || url.SchemeIs("ftp") ||
28                            url.SchemeIsWSOrWSS()));
29  return SimplifyUrlForRequest(url).spec();
30}
31
32}  // namespace net
33