| Index: components/offline_pages/offline_page_model_impl.cc
|
| diff --git a/components/offline_pages/offline_page_model_impl.cc b/components/offline_pages/offline_page_model_impl.cc
|
| index cfb67fc33925267e49eabbd588ec40d6ad2eda6f..70ccc3a96447d9bb7e793ecb47191b76dee36750 100644
|
| --- a/components/offline_pages/offline_page_model_impl.cc
|
| +++ b/components/offline_pages/offline_page_model_impl.cc
|
| @@ -636,9 +636,23 @@ void OfflinePageModelImpl::GetPagesByOnlineURLWhenLoadDone(
|
| const MultipleOfflinePageItemCallback& callback) const {
|
| std::vector<OfflinePageItem> result;
|
|
|
| + GURL::Replacements remove_params;
|
| + remove_params.ClearRef();
|
| +
|
| + GURL online_url_without_fragment =
|
| + online_url.ReplaceComponents(remove_params);
|
| +
|
| for (const auto& id_page_pair : offline_pages_) {
|
| - if (id_page_pair.second.url == online_url &&
|
| - !id_page_pair.second.IsExpired()) {
|
| + if (id_page_pair.second.IsExpired())
|
| + continue;
|
| + if (online_url == id_page_pair.second.url) {
|
| + result.push_back(id_page_pair.second);
|
| + continue;
|
| + }
|
| + // If the full URL does not match, try with the fragment identifier
|
| + // stripped.
|
| + if (online_url_without_fragment ==
|
| + id_page_pair.second.url.ReplaceComponents(remove_params)) {
|
| result.push_back(id_page_pair.second);
|
| }
|
| }
|
|
|