OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 "content/browser/frame_host/navigation_entry_impl.h" | 5 #include "content/browser/frame_host/navigation_entry_impl.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include <queue> | 9 #include <queue> |
10 #include <utility> | 10 #include <utility> |
(...skipping 325 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
336 source_site_instance_ = source_site_instance; | 336 source_site_instance_ = source_site_instance; |
337 } | 337 } |
338 | 338 |
339 void NavigationEntryImpl::SetBindings(int bindings) { | 339 void NavigationEntryImpl::SetBindings(int bindings) { |
340 // Ensure this is set to a valid value, and that it stays the same once set. | 340 // Ensure this is set to a valid value, and that it stays the same once set. |
341 CHECK_NE(bindings, kInvalidBindings); | 341 CHECK_NE(bindings, kInvalidBindings); |
342 CHECK(bindings_ == kInvalidBindings || bindings_ == bindings); | 342 CHECK(bindings_ == kInvalidBindings || bindings_ == bindings); |
343 bindings_ = bindings; | 343 bindings_ = bindings; |
344 } | 344 } |
345 | 345 |
346 const base::string16& NavigationEntryImpl::GetTitleForDisplay( | 346 const base::string16& NavigationEntryImpl::GetTitleForDisplay() const { |
347 const std::string& languages) const { | |
348 // Most pages have real titles. Don't even bother caching anything if this is | 347 // Most pages have real titles. Don't even bother caching anything if this is |
349 // the case. | 348 // the case. |
350 if (!title_.empty()) | 349 if (!title_.empty()) |
351 return title_; | 350 return title_; |
352 | 351 |
353 // More complicated cases will use the URLs as the title. This result we will | 352 // More complicated cases will use the URLs as the title. This result we will |
354 // cache since it's more complicated to compute. | 353 // cache since it's more complicated to compute. |
355 if (!cached_display_title_.empty()) | 354 if (!cached_display_title_.empty()) |
356 return cached_display_title_; | 355 return cached_display_title_; |
357 | 356 |
358 // Use the virtual URL first if any, and fall back on using the real URL. | 357 // Use the virtual URL first if any, and fall back on using the real URL. |
359 base::string16 title; | 358 base::string16 title; |
360 if (!virtual_url_.is_empty()) { | 359 if (!virtual_url_.is_empty()) { |
361 title = url_formatter::FormatUrl(virtual_url_, languages); | 360 title = url_formatter::FormatUrl(virtual_url_); |
362 } else if (!GetURL().is_empty()) { | 361 } else if (!GetURL().is_empty()) { |
363 title = url_formatter::FormatUrl(GetURL(), languages); | 362 title = url_formatter::FormatUrl(GetURL()); |
364 } | 363 } |
365 | 364 |
366 // For file:// URLs use the filename as the title, not the full path. | 365 // For file:// URLs use the filename as the title, not the full path. |
367 if (GetURL().SchemeIsFile()) { | 366 if (GetURL().SchemeIsFile()) { |
368 // It is necessary to ignore the reference and query parameters or else | 367 // It is necessary to ignore the reference and query parameters or else |
369 // looking for slashes might accidentally return one of those values. See | 368 // looking for slashes might accidentally return one of those values. See |
370 // https://crbug.com/503003. | 369 // https://crbug.com/503003. |
371 base::string16::size_type refpos = title.find('#'); | 370 base::string16::size_type refpos = title.find('#'); |
372 base::string16::size_type querypos = title.find('?'); | 371 base::string16::size_type querypos = title.find('?'); |
373 base::string16::size_type lastpos; | 372 base::string16::size_type lastpos; |
(...skipping 404 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
778 return node; | 777 return node; |
779 } | 778 } |
780 // Enqueue any children and keep looking. | 779 // Enqueue any children and keep looking. |
781 for (auto& child : node->children) | 780 for (auto& child : node->children) |
782 work_queue.push(child); | 781 work_queue.push(child); |
783 } | 782 } |
784 return nullptr; | 783 return nullptr; |
785 } | 784 } |
786 | 785 |
787 } // namespace content | 786 } // namespace content |
OLD | NEW |