Chromium Code Reviews| Index: content/browser/download/mhtml_generation_manager.h |
| diff --git a/content/browser/download/mhtml_generation_manager.h b/content/browser/download/mhtml_generation_manager.h |
| index e30001535b03735758e09f2734d69ce5cd1c03d7..feab126dd98ce2ee6278395bde4a2525cbb0da54 100644 |
| --- a/content/browser/download/mhtml_generation_manager.h |
| +++ b/content/browser/download/mhtml_generation_manager.h |
| @@ -15,7 +15,9 @@ |
| #include "base/macros.h" |
| #include "base/memory/singleton.h" |
| #include "base/process/process.h" |
| +#include "base/supports_user_data.h" |
| #include "content/common/download/mhtml_save_status.h" |
| +#include "content/public/browser/web_contents.h" |
| #include "content/public/common/mhtml_generation_params.h" |
| #include "ipc/ipc_platform_file.h" |
| @@ -34,7 +36,7 @@ class WebContents; |
| // MHTMLGenerationManager is a singleton. Each call to SaveMHTML method creates |
| // a new instance of MHTMLGenerationManager::Job that tracks generation of a |
| // single MHTML file. |
| -class MHTMLGenerationManager { |
| +class CONTENT_EXPORT MHTMLGenerationManager { |
| public: |
| static MHTMLGenerationManager* GetInstance(); |
| @@ -58,6 +60,36 @@ class MHTMLGenerationManager { |
| const std::set<std::string>& digests_of_uris_of_serialized_resources, |
| base::TimeDelta renderer_main_thread_time); |
| + // Contained class that represents an extra data section. |
|
Dmitry Titov
2017/03/18 00:58:34
This mechanism needs a great deal of comment, to e
Pete Williamson
2017/03/20 18:26:53
Added comments, LMK if I need more.
|
| + struct MHTMLExtraSection { |
|
Dmitry Titov
2017/03/18 00:58:34
Naming suggestion: MHTMLExtraSection -> ExtraPart.
Pete Williamson
2017/03/20 18:26:53
Done.
|
| + std::string content_type; |
| + std::string content_location; |
| + std::string body; |
| + }; |
| + |
| + // Helper class to put extra sections into the WebContents user data, and take |
| + // them back out again. |
| + class MHTMLExtraData : public base::SupportsUserData::Data { |
| + public: |
| + MHTMLExtraData(); |
| + |
|
Dmitry Titov
2017/03/18 00:58:34
extra empty line
Pete Williamson
2017/03/20 18:26:53
Done.
|
| + ~MHTMLExtraData() override; |
| + |
| + std::vector<MHTMLExtraSection>* sections() { return §ions_; } |
|
Dmitry Titov
2017/03/18 00:58:34
It feels that the access to the vector is not need
Pete Williamson
2017/03/20 18:26:53
Turns out I didn't really need this after all, I w
|
| + |
| + // Get the data string out of the web contents. |
| + // The web contents retains ownership of the vector |
| + static std::vector<MHTMLExtraSection>* FromWebContents( |
| + content::WebContents* contents); |
| + |
| + // Stash the data string in the web contents user data. |
| + static void AddToWebContents(content::WebContents* contents, |
|
Dmitry Titov
2017/03/18 00:58:34
Not sure why this method is needed.
Pete Williamson
2017/03/20 18:26:53
This method is for adding a part to the vector sto
|
| + MHTMLExtraSection& section); |
| + |
| + private: |
| + std::vector<MHTMLExtraSection> sections_; |
| + }; |
| + |
| private: |
| friend struct base::DefaultSingletonTraits<MHTMLGenerationManager>; |
| class Job; |