cookie_constants.cc revision 5e3f23d412006dc4db4e659864679f29341e113f
1// Copyright 2013 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#include "net/cookies/cookie_constants.h"
6
7#include "base/logging.h"
8#include "base/strings/string_util.h"
9
10namespace net {
11
12namespace {
13const char kPriorityLow[] = "low";
14const char kPriorityMedium[] = "medium";
15const char kPriorityHigh[] = "high";
16}  // namespace
17
18NET_EXPORT const std::string CookiePriorityToString(CookiePriority priority) {
19  switch(priority) {
20    case COOKIE_PRIORITY_HIGH:
21      return kPriorityHigh;
22    case COOKIE_PRIORITY_MEDIUM:
23      return kPriorityMedium;
24    case COOKIE_PRIORITY_LOW:
25      return kPriorityLow;
26    default:
27      NOTREACHED();
28  }
29  return std::string();
30}
31
32NET_EXPORT CookiePriority StringToCookiePriority(const std::string& priority) {
33  std::string priority_comp(priority);
34  StringToLowerASCII(&priority_comp);
35
36  if (priority_comp == kPriorityHigh)
37    return COOKIE_PRIORITY_HIGH;
38  if (priority_comp == kPriorityMedium)
39    return COOKIE_PRIORITY_MEDIUM;
40  if (priority_comp == kPriorityLow)
41    return COOKIE_PRIORITY_LOW;
42
43  return COOKIE_PRIORITY_DEFAULT;
44}
45
46}  // namespace net
47