Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(261)

Unified Diff: net/cookies/parsed_cookie.h

Issue 992733002: Remove //net (except for Android test stuff) and sdch (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/cookies/cookie_util_unittest.cc ('k') | net/cookies/parsed_cookie.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/cookies/parsed_cookie.h
diff --git a/net/cookies/parsed_cookie.h b/net/cookies/parsed_cookie.h
deleted file mode 100644
index 115ca1ff22358ffd1cad7e6b94c5acb61d02c633..0000000000000000000000000000000000000000
--- a/net/cookies/parsed_cookie.h
+++ /dev/null
@@ -1,148 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef NET_COOKIES_PARSED_COOKIE_H_
-#define NET_COOKIES_PARSED_COOKIE_H_
-
-#include <string>
-#include <vector>
-
-#include "base/basictypes.h"
-#include "net/base/net_export.h"
-#include "net/cookies/cookie_constants.h"
-
-namespace net {
-
-class NET_EXPORT ParsedCookie {
- public:
- typedef std::pair<std::string, std::string> TokenValuePair;
- typedef std::vector<TokenValuePair> PairList;
-
- // The maximum length of a cookie string we will try to parse
- static const size_t kMaxCookieSize = 4096;
- // The maximum number of Token/Value pairs. Shouldn't have more than 8.
- static const int kMaxPairs = 16;
-
- // Construct from a cookie string like "BLAH=1; path=/; domain=.google.com"
- // Format is according to RFC 6265. Cookies with both name and value empty
- // will be considered invalid.
- ParsedCookie(const std::string& cookie_line);
- ~ParsedCookie();
-
- // You should not call any other methods except for SetName/SetValue on the
- // class if !IsValid.
- bool IsValid() const;
-
- const std::string& Name() const { return pairs_[0].first; }
- const std::string& Token() const { return Name(); }
- const std::string& Value() const { return pairs_[0].second; }
-
- bool HasPath() const { return path_index_ != 0; }
- const std::string& Path() const { return pairs_[path_index_].second; }
- bool HasDomain() const { return domain_index_ != 0; }
- const std::string& Domain() const { return pairs_[domain_index_].second; }
- bool HasExpires() const { return expires_index_ != 0; }
- const std::string& Expires() const { return pairs_[expires_index_].second; }
- bool HasMaxAge() const { return maxage_index_ != 0; }
- const std::string& MaxAge() const { return pairs_[maxage_index_].second; }
- bool IsSecure() const { return secure_index_ != 0; }
- bool IsHttpOnly() const { return httponly_index_ != 0; }
- CookiePriority Priority() const;
-
- // Returns the number of attributes, for example, returning 2 for:
- // "BLAH=hah; path=/; domain=.google.com"
- size_t NumberOfAttributes() const { return pairs_.size() - 1; }
-
- // These functions set the respective properties of the cookie. If the
- // parameters are empty, the respective properties are cleared.
- // The functions return false in case an error occurred.
- // The cookie needs to be assigned a name/value before setting the other
- // attributes.
- bool SetName(const std::string& name);
- bool SetValue(const std::string& value);
- bool SetPath(const std::string& path);
- bool SetDomain(const std::string& domain);
- bool SetExpires(const std::string& expires);
- bool SetMaxAge(const std::string& maxage);
- bool SetIsSecure(bool is_secure);
- bool SetIsHttpOnly(bool is_http_only);
- bool SetPriority(const std::string& priority);
-
- // Returns the cookie description as it appears in a HTML response header.
- std::string ToCookieLine() const;
-
- // Returns an iterator pointing to the first terminator character found in
- // the given string.
- static std::string::const_iterator FindFirstTerminator(const std::string& s);
-
- // Given iterators pointing to the beginning and end of a string segment,
- // returns as output arguments token_start and token_end to the start and end
- // positions of a cookie attribute token name parsed from the segment, and
- // updates the segment iterator to point to the next segment to be parsed.
- // If no token is found, the function returns false.
- static bool ParseToken(std::string::const_iterator* it,
- const std::string::const_iterator& end,
- std::string::const_iterator* token_start,
- std::string::const_iterator* token_end);
-
- // Given iterators pointing to the beginning and end of a string segment,
- // returns as output arguments value_start and value_end to the start and end
- // positions of a cookie attribute value parsed from the segment, and updates
- // the segment iterator to point to the next segment to be parsed.
- static void ParseValue(std::string::const_iterator* it,
- const std::string::const_iterator& end,
- std::string::const_iterator* value_start,
- std::string::const_iterator* value_end);
-
- // Same as the above functions, except the input is assumed to contain the
- // desired token/value and nothing else.
- static std::string ParseTokenString(const std::string& token);
- static std::string ParseValueString(const std::string& value);
-
- private:
- void ParseTokenValuePairs(const std::string& cookie_line);
- void SetupAttributes();
-
- // Sets a key/value pair for a cookie. |index| has to point to one of the
- // |*_index_| fields in ParsedCookie and is updated to the position where
- // the key/value pair is set in |pairs_|. Accordingly, |key| has to correspond
- // to the token matching |index|. If |value| contains invalid characters, the
- // cookie parameter is not changed and the function returns false.
- // If |value| is empty/false the key/value pair is removed.
- bool SetString(size_t* index,
- const std::string& key,
- const std::string& value);
- bool SetBool(size_t* index,
- const std::string& key,
- bool value);
-
- // Helper function for SetString and SetBool handling the case that the
- // key/value pair shall not be removed.
- bool SetAttributePair(size_t* index,
- const std::string& key,
- const std::string& value);
-
- // Removes the key/value pair from a cookie that is identified by |index|.
- // |index| refers to a position in |pairs_|.
- void ClearAttributePair(size_t index);
-
- PairList pairs_;
- // These will default to 0, but that should never be valid since the
- // 0th index is the user supplied token/value, not an attribute.
- // We're really never going to have more than like 8 attributes, so we
- // could fit these into 3 bits each if we're worried about size...
- size_t path_index_;
- size_t domain_index_;
- size_t expires_index_;
- size_t maxage_index_;
- size_t secure_index_;
- size_t httponly_index_;
- size_t priority_index_;
-
- DISALLOW_COPY_AND_ASSIGN(ParsedCookie);
-};
-
-} // namespace net
-
-#endif // NET_COOKIES_COOKIE_MONSTER_H_
« no previous file with comments | « net/cookies/cookie_util_unittest.cc ('k') | net/cookies/parsed_cookie.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698