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

Side by Side Diff: content/browser/download/docs/save-page-as.md

Issue 2890853002: Downloads: replace BrowserThread::FILE with task scheduler. (Closed)
Patch Set: Revert ScopedCOMInitializer invocations. Created 3 years, 5 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 unified diff | Download patch
OLDNEW
1 # High-level overview of Save-Page-As code 1 # High-level overview of Save-Page-As code
2 2
3 This document describes code under `//content/browser/downloads` 3 This document describes code under `//content/browser/downloads`
4 restricting the scope only to code handling Save-Page-As functionality 4 restricting the scope only to code handling Save-Page-As functionality
5 (i.e. leaving out other downloads-related code). 5 (i.e. leaving out other downloads-related code).
6 This document focuses on high-level overview and aspects of the code that 6 This document focuses on high-level overview and aspects of the code that
7 span multiple compilation units (hoping that individual compilation units 7 span multiple compilation units (hoping that individual compilation units
8 are described by their code comments or by their code structure). 8 are described by their code comments or by their code structure).
9 9
10 ## Classes overview 10 ## Classes overview
11 11
12 * SavePackage class 12 * SavePackage class
13 * coordinates overall save-page-as request 13 * coordinates overall save-page-as request
14 * created and owned by `WebContents` 14 * created and owned by `WebContents`
15 (ref-counted today, but it is unnecessary - see https://crbug.com/596953) 15 (ref-counted today, but it is unnecessary - see https://crbug.com/596953)
16 * UI-thread object 16 * UI-thread object
17 17
18 * SaveFileCreateInfo::SaveFileSource enum 18 * SaveFileCreateInfo::SaveFileSource enum
19 * classifies `SaveItem` and `SaveFile` processing into 2 flavours: 19 * classifies `SaveItem` and `SaveFile` processing into 2 flavours:
20 * `SAVE_FILE_FROM_NET` (see `SaveFileResourceHandler`) 20 * `SAVE_FILE_FROM_NET` (see `SaveFileResourceHandler`)
21 * `SAVE_FILE_FROM_DOM` (see "Complete HTML" section below) 21 * `SAVE_FILE_FROM_DOM` (see "Complete HTML" section below)
22 22
23 * SaveItem class 23 * SaveItem class
24 * tracks saving a single file 24 * tracks saving a single file
25 * created and owned by `SavePackage` 25 * created and owned by `SavePackage`
26 * UI-thread object 26 * UI-thread object
27 27
28 * SaveFileManager class 28 * SaveFileManager class
29 * coordinates between FILE and UI threads 29 * coordinates between the download sequence and the UI thread
30 * Gets requests from `SavePackage` and communicates results back to 30 * Gets requests from `SavePackage` and communicates results back to
31 `SavePackage` on the UI thread. 31 `SavePackage` on the UI thread.
32 * Shephards data (received from the network OR from DOM) into 32 * Shephards data (received from the network OR from DOM) into
33 FILE thread - via `SaveFileManager::UpdateSaveProgress` 33 the download sequence - via `SaveFileManager::UpdateSaveProgress`
34 * created and owned by `BrowserMainLoop` 34 * created and owned by `BrowserMainLoop`
35 (ref-counted today, but it is unnecessary - see https://crbug.com/596953) 35 (ref-counted today, but it is unnecessary - see https://crbug.com/596953)
36 * The global instance can be retrieved by the Get method. 36 * The global instance can be retrieved by the Get method.
37 37
38 * SaveFile class 38 * SaveFile class
39 * tracks saving a single file 39 * tracks saving a single file
40 * created and owned by `SaveFileManager` 40 * created and owned by `SaveFileManager`
41 * FILE-thread object 41 * download sequence object
42 42
43 * SaveFileResourceHandler class 43 * SaveFileResourceHandler class
44 * tracks network downloads + forwards their status into `SaveFileManager` 44 * tracks network downloads + forwards their status into `SaveFileManager`
45 (onto FILE-thread) 45 (onto download sequence)
46 * created by `ResourceDispatcherHostImpl::BeginSaveFile` 46 * created by `ResourceDispatcherHostImpl::BeginSaveFile`
47 * IO-thread object 47 * IO-thread object
48 48
49 * SaveFileCreateInfo POD struct 49 * SaveFileCreateInfo POD struct
50 * short-lived object holding data passed to callbacks handling start of 50 * short-lived object holding data passed to callbacks handling start of
51 saving a file. 51 saving a file.
52 52
53 * MHTMLGenerationManager class 53 * MHTMLGenerationManager class
54 * singleton that manages progress of jobs responsible for saving individual 54 * singleton that manages progress of jobs responsible for saving individual
55 MHTML files (represented by `MHTMLGenerationManager::Job`). 55 MHTML files (represented by `MHTMLGenerationManager::Job`).
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
131 131
132 * Blink: 132 * Blink:
133 * `//third_party/WebKit/public/web/WebFrameSerializer...` 133 * `//third_party/WebKit/public/web/WebFrameSerializer...`
134 * `//third_party/WebKit/Source/web/WebFrameSerializerImpl...` 134 * `//third_party/WebKit/Source/web/WebFrameSerializerImpl...`
135 (used for Complete HTML today; should use `FrameSerializer` instead in 135 (used for Complete HTML today; should use `FrameSerializer` instead in
136 the long-term - see https://crbug.com/328354). 136 the long-term - see https://crbug.com/328354).
137 * `//third_party/WebKit/Source/core/frame/FrameSerializer...` 137 * `//third_party/WebKit/Source/core/frame/FrameSerializer...`
138 (used for MHTML today) 138 (used for MHTML today)
139 * `//third_party/WebKit/Source/platform/mhtml/MHTMLArchive...` 139 * `//third_party/WebKit/Source/platform/mhtml/MHTMLArchive...`
140 140
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698