Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/common/favicon/fallback_icon_url_parser.h" | 5 #include "chrome/common/favicon/fallback_icon_url_parser.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "base/logging.h" | 9 #include "base/logging.h" |
| 10 #include "base/macros.h" | 10 #include "base/macros.h" |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 47 if (path.empty()) | 47 if (path.empty()) |
| 48 return false; | 48 return false; |
| 49 | 49 |
| 50 size_t slash = path.find("/", 0); | 50 size_t slash = path.find("/", 0); |
| 51 if (slash == std::string::npos) | 51 if (slash == std::string::npos) |
| 52 return false; | 52 return false; |
| 53 std::string spec_str = path.substr(0, slash); | 53 std::string spec_str = path.substr(0, slash); |
| 54 if (!ParseSpecs(spec_str, &size_in_pixels_, &style_)) | 54 if (!ParseSpecs(spec_str, &size_in_pixels_, &style_)) |
| 55 return false; // Parse failed. | 55 return false; // Parse failed. |
| 56 | 56 |
| 57 // Extract URL, which may be empty (if first slash appears at the end). | 57 // Need to store the index of the URL field, so Instant Extended can translate |
| 58 std::string url_str = path.substr(slash + 1); | 58 // fallback icon URLs using advanced parameters. |
| 59 url_ = GURL(url_str); | 59 // Example: |
| 60 return url_str.empty() || url_.is_valid(); // Allow empty URL. | 60 // "chrome-search://fallback-icon/48/<renderer-id>/<most-visited-id>" |
| 61 // would be translated to: | |
| 62 // "chrome-search://fallback-icon/48/<most-visited-item-with-given-id>". | |
|
beaudoin
2015/03/18 00:05:38
Same comment here as the previous CL. I believe th
huangs
2015/03/18 18:38:49
As before, prefer to defer to crbug.com/468320.
beaudoin
2015/03/18 19:03:18
Acknowledged.
| |
| 63 path_index_ = slash + 1; | |
| 64 url_string_ = path.substr(path_index_); | |
| 65 return true; | |
| 61 } | 66 } |
| 62 | 67 |
| 63 // static | 68 // static |
| 64 bool ParsedFallbackIconPath::ParseSpecs( | 69 bool ParsedFallbackIconPath::ParseSpecs( |
| 65 const std::string& specs_str, | 70 const std::string& specs_str, |
| 66 int *size, | 71 int *size, |
| 67 favicon_base::FallbackIconStyle* style) { | 72 favicon_base::FallbackIconStyle* style) { |
| 68 DCHECK(size); | 73 DCHECK(size); |
| 69 DCHECK(style); | 74 DCHECK(style); |
| 70 | 75 |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 122 SkColor temp_color = SK_ColorWHITE; | 127 SkColor temp_color = SK_ColorWHITE; |
| 123 const char* end = SkParse::FindColor(color_str.c_str(), &temp_color); | 128 const char* end = SkParse::FindColor(color_str.c_str(), &temp_color); |
| 124 if (end && !*end) { // Successful if call succeeds and string is consumed. | 129 if (end && !*end) { // Successful if call succeeds and string is consumed. |
| 125 *color = temp_color; | 130 *color = temp_color; |
| 126 return true; | 131 return true; |
| 127 } | 132 } |
| 128 return false; | 133 return false; |
| 129 } | 134 } |
| 130 | 135 |
| 131 } // namespace chrome | 136 } // namespace chrome |
| OLD | NEW |