summaryrefslogtreecommitdiffstats
path: root/chromium/components/auto_login_parser/auto_login_parser.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/components/auto_login_parser/auto_login_parser.cc')
-rw-r--r--chromium/components/auto_login_parser/auto_login_parser.cc82
1 files changed, 0 insertions, 82 deletions
diff --git a/chromium/components/auto_login_parser/auto_login_parser.cc b/chromium/components/auto_login_parser/auto_login_parser.cc
deleted file mode 100644
index 298c9b7acf3..00000000000
--- a/chromium/components/auto_login_parser/auto_login_parser.cc
+++ /dev/null
@@ -1,82 +0,0 @@
-// Copyright (c) 2013 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.
-
-#include "components/auto_login_parser/auto_login_parser.h"
-
-#include <utility>
-#include <vector>
-
-#include "base/logging.h"
-#include "base/strings/string_split.h"
-#include "net/base/escape.h"
-#include "net/url_request/url_request.h"
-
-namespace auto_login_parser {
-
-namespace {
-
-const char kHeaderName[] = "X-Auto-Login";
-
-bool MatchRealm(const std::string& realm, RealmRestriction restriction) {
- switch (restriction) {
- case ONLY_GOOGLE_COM:
- return realm == "com.google";
- case ALLOW_ANY_REALM:
- return true;
- default:
- NOTREACHED();
- return false;
- }
-}
-
-} // namespace
-
-HeaderData::HeaderData() {}
-HeaderData::~HeaderData() {}
-
-bool ParseHeader(const std::string& header,
- RealmRestriction realm_restriction,
- HeaderData* header_data) {
- // TODO(pliard): Investigate/fix potential internationalization issue. It
- // seems that "account" from the x-auto-login header might contain non-ASCII
- // characters.
- if (header.empty())
- return false;
-
- std::vector<std::pair<std::string, std::string> > pairs;
- if (!base::SplitStringIntoKeyValuePairs(header, '=', '&', &pairs))
- return false;
-
- // Parse the information from the |header| string.
- HeaderData local_params;
- for (size_t i = 0; i < pairs.size(); ++i) {
- const std::pair<std::string, std::string>& pair = pairs[i];
- std::string unescaped_value(net::UnescapeURLComponent(
- pair.second, net::UnescapeRule::URL_SPECIAL_CHARS));
- if (pair.first == "realm") {
- if (!MatchRealm(unescaped_value, realm_restriction))
- return false;
- local_params.realm = unescaped_value;
- } else if (pair.first == "account") {
- local_params.account = unescaped_value;
- } else if (pair.first == "args") {
- local_params.args = unescaped_value;
- }
- }
- if (local_params.realm.empty() || local_params.args.empty())
- return false;
-
- *header_data = local_params;
- return true;
-}
-
-bool ParserHeaderInResponse(net::URLRequest* request,
- RealmRestriction realm_restriction,
- HeaderData* header_data) {
- std::string header_string;
- request->GetResponseHeaderByName(kHeaderName, &header_string);
- return ParseHeader(header_string, realm_restriction, header_data);
-}
-
-} // namespace auto_login_parser