summaryrefslogtreecommitdiffstats
path: root/components/favicon_base/large_icon_url_parser.h
diff options
context:
space:
mode:
authorblundell <blundell@chromium.org>2015-07-08 03:07:45 -0700
committerCommit bot <commit-bot@chromium.org>2015-07-08 10:08:22 +0000
commitee0ade20e42f6ff67ec7402c80610e3d0b7f960a (patch)
tree60056d8d047c4bf82f6bf31ce0ec8ca286ef268c /components/favicon_base/large_icon_url_parser.h
parent0c714f7ca6d4f027501aa8ef8ae91ebc99788b62 (diff)
downloadchromium_src-ee0ade20e42f6ff67ec7402c80610e3d0b7f960a.zip
chromium_src-ee0ade20e42f6ff67ec7402c80610e3d0b7f960a.tar.gz
chromium_src-ee0ade20e42f6ff67ec7402c80610e3d0b7f960a.tar.bz2
Componentize //chrome/common/favicon
This code is used by iOS; move it into //components/favicon_base. TBR=sky, rdsmith Review URL: https://codereview.chromium.org/1223603002 Cr-Commit-Position: refs/heads/master@{#337794}
Diffstat (limited to 'components/favicon_base/large_icon_url_parser.h')
-rw-r--r--components/favicon_base/large_icon_url_parser.h46
1 files changed, 46 insertions, 0 deletions
diff --git a/components/favicon_base/large_icon_url_parser.h b/components/favicon_base/large_icon_url_parser.h
new file mode 100644
index 0000000..3d60b76
--- /dev/null
+++ b/components/favicon_base/large_icon_url_parser.h
@@ -0,0 +1,46 @@
+// Copyright 2015 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 COMPONENTS_FAVICON_BASE_LARGE_ICON_URL_PARSER_H_
+#define COMPONENTS_FAVICON_BASE_LARGE_ICON_URL_PARSER_H_
+
+#include <string>
+
+#include "base/macros.h"
+#include "base/strings/string_piece.h"
+
+// A parser for parameters to the chrome://large-icon/ host.
+class LargeIconUrlParser {
+ public:
+ LargeIconUrlParser();
+ ~LargeIconUrlParser();
+
+ std::string url_string() const { return url_string_; }
+
+ int size_in_pixels() const { return size_in_pixels_; }
+
+ size_t path_index() const { return path_index_; }
+
+ // Parses |path|, which should be in the format described at the top of the
+ // file "chrome/browser/ui/webui/large_icon_source.h". Note that |path| does
+ // not have leading '/'.
+ bool Parse(base::StringPiece path);
+
+ private:
+ friend class LargeIconUrlParserTest;
+
+ // The page URL string of the requested large icon.
+ std::string url_string_;
+
+ // The size of the requested large icon in pixels.
+ int size_in_pixels_;
+
+ // The index of the first character (relative to the path) where the the URL
+ // from which the large icon is being requested is located.
+ size_t path_index_;
+
+ DISALLOW_COPY_AND_ASSIGN(LargeIconUrlParser);
+};
+
+#endif // COMPONENTS_FAVICON_BASE_LARGE_ICON_URL_PARSER_H_