| Index: chrome/browser/download/download_target_determiner.h
|
| diff --git a/chrome/browser/download/download_target_determiner.h b/chrome/browser/download/download_target_determiner.h
|
| index 0bb4cb034e297f6e0540ce9aee9d75502a64efe0..f9b96c94e13c4194262e60d1615c8b6f9f9a496d 100644
|
| --- a/chrome/browser/download/download_target_determiner.h
|
| +++ b/chrome/browser/download/download_target_determiner.h
|
| @@ -23,6 +23,9 @@ class DownloadPrefs;
|
|
|
| namespace content {
|
| enum DownloadDangerType;
|
| +#if defined(OS_ANDROID)
|
| +class DownloadControllerAndroid;
|
| +#endif
|
| }
|
|
|
| // Determines the target of the download.
|
| @@ -93,6 +96,7 @@ class DownloadTargetDeterminer
|
| // Result indicating how the workflow should proceed. The loop ends when a
|
| // handler returns COMPLETE.
|
| enum State {
|
| + STATE_PROMPT_USER_FOR_PERMISSION,
|
| STATE_GENERATE_TARGET_PATH,
|
| STATE_NOTIFY_EXTENSIONS,
|
| STATE_RESERVE_VIRTUAL_PATH,
|
| @@ -148,6 +152,15 @@ class DownloadTargetDeterminer
|
|
|
| // === Main workflow ===
|
|
|
| + // Prompts user for file access if necessary.
|
| + // Next state:
|
| + // - STATE_GENERATE_TARGET_PATH.
|
| + Result DoPromptUserForPermission();
|
| +
|
| + // Callback invoked after the file access prompt completes. Cancels the
|
| + // download if the user doesn't grant file access.
|
| + void PromptUserForPermissionDone(bool granted);
|
| +
|
| // Generates an initial target path. This target is based only on the state of
|
| // the download item.
|
| // Next state:
|
| @@ -318,6 +331,10 @@ class DownloadTargetDeterminer
|
| CompletionCallback completion_callback_;
|
| base::CancelableTaskTracker history_tracker_;
|
|
|
| +#if defined(OS_ANDROID)
|
| + // Download controller for file access prompt.
|
| + content::DownloadControllerAndroid* download_controller_;
|
| +#endif
|
| base::WeakPtrFactory<DownloadTargetDeterminer> weak_ptr_factory_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(DownloadTargetDeterminer);
|
|
|