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

Unified Diff: content/browser/download/save_package.h

Issue 1308113008: OOPIFs: Transitioning Get/Send...SavableResourceLinks away from RenderViewHost. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@page-serialization-test
Patch Set: Make Send target the right renderer process. Created 5 years, 3 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: content/browser/download/save_package.h
diff --git a/content/browser/download/save_package.h b/content/browser/download/save_package.h
index 071a5b7adead60a4eebbad9f4208bd2b957dd38d..b96d2ee5d5b44cec26336a5ddc3b4a427e50c7ba 100644
--- a/content/browser/download/save_package.h
+++ b/content/browser/download/save_package.h
@@ -147,6 +147,8 @@ class CONTENT_EXPORT SavePackage
// WebContentsObserver implementation.
bool OnMessageReceived(const IPC::Message& message) override;
+ bool OnMessageReceived(const IPC::Message& message,
+ RenderFrameHost* render_frame_host) override;
// DownloadItem::Observer implementation.
void OnDownloadDestroyed(DownloadItem* download) override;
@@ -175,9 +177,18 @@ class CONTENT_EXPORT SavePackage
bool need_html_ext,
base::FilePath::StringType* generated_name);
- // Get all savable resource links from current web page, include main
- // frame and sub-frame.
- void GetAllSavableResourceLinksForCurrentPage();
+ // Set of methods to get all savable resource links from current web page,
+ // including main frame and sub-frames.
+ void GetSavableResourceLinksForCurrentPage();
+ void GetSavableResourceLinksForFrame(RenderFrameHost* target);
+ void OnSavableResourceLinksResponse(
+ RenderFrameHost* sender,
+ const GURL& frame_url,
+ const std::vector<GURL>& resources_list,
+ const std::vector<Referrer>& referrers_list);
+ void OnSavableResourceLinksError(RenderFrameHost* sender);
+ void CompleteSavableResourceLinksResponseFromFrame();
+
// Get html data by serializing all frames of current page with lists
// which contain all resource links that have local copy.
void GetSerializedHtmlDataForCurrentPageWithLocalLinks();
@@ -202,10 +213,6 @@ class CONTENT_EXPORT SavePackage
const base::FilePath& final_name,
SavePageType type,
const SavePackageDownloadCreatedCallback& cb);
- void OnReceivedSavableResourceLinksForCurrentPage(
- const std::vector<GURL>& resources_list,
- const std::vector<Referrer>& referrers_list,
- const std::vector<GURL>& frames_list);
void OnReceivedSerializedHtmlData(const GURL& frame_url,
const std::string& data,
@@ -261,6 +268,15 @@ class CONTENT_EXPORT SavePackage
// A queue for items we are about to start saving.
SaveItemQueue waiting_item_queue_;
+ // Used to de-dupe urls that are being gathered into |waiting_item_queue_|.
+ std::set<GURL> unique_urls_to_save_;
+
+ // Temporarily stores urls of savable frames, until we can process them.
+ std::vector<GURL> frame_urls_to_save_;
+
+ // Number of frames that we still need to get a response from.
+ int number_of_frames_pending_response_;
+
typedef base::hash_map<int32, SaveItem*> SavedItemMap;
// saved_success_items_ is map of all saving job which are successfully saved.
SavedItemMap saved_success_items_;

Powered by Google App Engine
This is Rietveld 408576698