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

Unified Diff: chrome/browser/android/webapps/add_to_homescreen_data_fetcher.cc

Issue 1491373006: When an offline page is saved to homescreen, use the online URL. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@2564
Patch Set: Created 5 years 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/android/webapps/add_to_homescreen_data_fetcher.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/android/webapps/add_to_homescreen_data_fetcher.cc
diff --git a/chrome/browser/android/webapps/add_to_homescreen_data_fetcher.cc b/chrome/browser/android/webapps/add_to_homescreen_data_fetcher.cc
index 464e2f5e95400a12da5cd11c3216d555dd0cd2c9..fae9849fdc34ba05c385ef58dbd9beed600911a0 100644
--- a/chrome/browser/android/webapps/add_to_homescreen_data_fetcher.cc
+++ b/chrome/browser/android/webapps/add_to_homescreen_data_fetcher.cc
@@ -8,6 +8,7 @@
#include "base/location.h"
#include "base/strings/string16.h"
#include "base/task/cancelable_task_tracker.h"
+#include "chrome/browser/android/offline_pages/offline_page_model_factory.h"
#include "chrome/browser/android/shortcut_helper.h"
#include "chrome/browser/favicon/favicon_service_factory.h"
#include "chrome/browser/manifest/manifest_icon_downloader.h"
@@ -18,6 +19,9 @@
#include "chrome/common/web_application_info.h"
#include "components/dom_distiller/core/url_utils.h"
#include "components/favicon/core/favicon_service.h"
+#include "components/offline_pages/offline_page_feature.h"
+#include "components/offline_pages/offline_page_item.h"
+#include "components/offline_pages/offline_page_model.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/user_metrics.h"
#include "content/public/browser/web_contents.h"
@@ -45,8 +49,7 @@ AddToHomescreenDataFetcher::AddToHomescreenDataFetcher(
is_icon_saved_(false),
is_ready_(false),
icon_timeout_timer_(false, false),
- shortcut_info_(dom_distiller::url_utils::GetOriginalUrlFromDistillerUrl(
- web_contents->GetURL())),
+ shortcut_info_(GetShortcutUrl(web_contents->GetURL())),
ideal_icon_size_in_dp_(ideal_icon_size_in_dp),
minimum_icon_size_in_dp_(minimum_icon_size_in_dp),
ideal_splash_image_size_in_dp_(ideal_splash_image_size_in_dp),
@@ -271,3 +274,23 @@ void AddToHomescreenDataFetcher::NotifyObserver(const SkBitmap& bitmap,
is_ready_ = true;
weak_observer_->OnDataAvailable(shortcut_info_, shortcut_icon_);
}
+
+GURL AddToHomescreenDataFetcher::GetShortcutUrl(const GURL& actual_url) {
+ GURL shortcut_url =
+ dom_distiller::url_utils::GetOriginalUrlFromDistillerUrl(actual_url);
+
+ if (!offline_pages::IsOfflinePagesEnabled())
+ return shortcut_url;
+
+ Profile* profile =
+ Profile::FromBrowserContext(web_contents()->GetBrowserContext());
+
+ offline_pages::OfflinePageModel* offline_page_model =
+ offline_pages::OfflinePageModelFactory::GetForBrowserContext(profile);
+ const offline_pages::OfflinePageItem* offline_page =
+ offline_page_model->GetPageByOfflineURL(shortcut_url);
+ if (!offline_page)
+ return shortcut_url;
+
+ return offline_page->url;
+}
« no previous file with comments | « chrome/browser/android/webapps/add_to_homescreen_data_fetcher.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698