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

Side by Side Diff: chrome/browser/history/url_utils.h

Issue 23477033: Implementing URL prefix match for history thumbnail cache. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Replacing ASSERT_TRUE() << ... to NOTREACHED() << ... Created 7 years, 3 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/browser/history/top_sites_impl_unittest.cc ('k') | chrome/browser/history/url_utils.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright (c) 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 #ifndef CHROME_BROWSER_HISTORY_URL_UTILS_H_
6 #define CHROME_BROWSER_HISTORY_URL_UTILS_H_
7
8 #include <string>
9
10 #include "chrome/browser/history/history_types.h"
11
12 namespace history {
13
14 // CanonicalURLStringCompare performs lexicographical comparison of two strings
15 // that represent valid URLs, so that if the pre-path (scheme, host, and port)
16 // parts are equal, then the path parts are compared by treating path components
17 // (delimited by "/") as separate tokens that form units of comparison.
18 // For example, let us compare |s1| and |s2|, with
19 // |s1| = "http://www.google.com:80/base/test/ab/cd?query/stuff"
20 // |s2| = "http://www.google.com:80/base/test-case/yz#ref/stuff"
21 // The pre-path parts "http://www.google.com:80/" match. We treat the paths as
22 // |s1| => ["base", "test", "ab", "cd"]
23 // |s2| => ["base", "test-case", "yz"]
24 // Components 1 "base" are identical. Components 2 yield "test" < "test-case",
25 // so we consider |s1| < |s2|, and return true. Note that naive string
26 // comparison would yield the opposite (|s1| > |s2|), since '/' > '-' in ASCII.
27 // Note that path can be terminated by "?query" or "#ref". The post-path parts
28 // are compared in an arbitrary (but consistent) way.
29 bool CanonicalURLStringCompare(const std::string& s1, const std::string& s2);
30
31 // Returns whether or not |url1| is a "URL prefix" of |url2|. Criteria:
32 // - Scheme, host, port: exact match required.
33 // - Path: treated as a list of path components (e.g., ["a", "bb"] for "/a/bb"),
34 // and |url1|'s list must be a prefix of |url2|'s list.
35 // - Query and ref: ignored.
36 // Note that "http://www.google.com/test" is NOT a prefix of
37 // "http://www.google.com/testing", although "test" is a prefix of "testing".
38 bool UrlIsPrefix(const GURL& url1, const GURL& url2);
39
40 } // namespace history
41
42 #endif // CHROME_BROWSER_HISTORY_URL_UTILS_H_
OLDNEW
« no previous file with comments | « chrome/browser/history/top_sites_impl_unittest.cc ('k') | chrome/browser/history/url_utils.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698