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

Unified Diff: ios/chrome/browser/reading_list/reading_list_distiller_page.h

Issue 2635193003: IOS Reading distillation: Handle Google AMP iFrame. (Closed)
Patch Set: rebase Created 3 years, 11 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 side-by-side diff with in-line comments
Download patch
Index: ios/chrome/browser/reading_list/reading_list_distiller_page.h
diff --git a/ios/chrome/browser/reading_list/reading_list_distiller_page.h b/ios/chrome/browser/reading_list/reading_list_distiller_page.h
index f330ae489b9074ed0596f68e93ed02f1c4b7580f..891de56b75bacf33df1669a332442005352dad33 100644
--- a/ios/chrome/browser/reading_list/reading_list_distiller_page.h
+++ b/ios/chrome/browser/reading_list/reading_list_distiller_page.h
@@ -37,12 +37,30 @@ class ReadingListDistillerPage : public dom_distiller::DistillerPageIOS {
web::PageLoadCompletionStatus load_completion_status) override;
private:
- void DelayedOnLoadURLDone(
- web::PageLoadCompletionStatus load_completion_status);
-
// Returns wether there is the loading has no error and if the distillation
// can continue.
bool IsLoadingSuccess(web::PageLoadCompletionStatus load_completion_status);
+ // Work around the fact that articles opened from Google Search page and
+ // Google News are presented in an iframe. This method detects if the current
+ // page is a Google AMP and navigate to the iframe in that case.
+ // Returns whether the current page is a Google AMP page.
+ // IsGoogleCachedAMPPage will determine if the current page is a Google AMP
+ // page.
+ bool IsGoogleCachedAMPPage();
+ // HandleGoogleCachedAMPPage will navigate to the iframe containing the actual
+ // article page.
+ void HandleGoogleCachedAMPPage();
+ // Handles the JavaScript response. If the URL of the iframe is returned,
+ // triggers a navigation to it. Stop distillation of the page there as the new
+ // load will trigger a new distillation.
+ bool HandleGoogleCachedAMPPageJavaScriptResult(id result, NSError* error);
+
+ // Waits a delay then calls DelayedOnLoadURLDone.
+ void WaitForPageLoadCompletion();
+
+ // Continues distillation by calling superclass |OnLoadURLDone|.
+ void DelayedOnLoadURLDone();
+
FaviconWebStateDispatcher* web_state_dispatcher_;
base::WeakPtrFactory<ReadingListDistillerPage> weak_ptr_factory_;
};
« no previous file with comments | « ios/chrome/browser/reading_list/BUILD.gn ('k') | ios/chrome/browser/reading_list/reading_list_distiller_page.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698