1// Copyright (c) 2013 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef UI_SHELL_DIALOGS_SELECTED_FILE_INFO_H_
6#define UI_SHELL_DIALOGS_SELECTED_FILE_INFO_H_
7
8#include <vector>
9
10#include "base/files/file_path.h"
11#include "base/strings/string16.h"
12#include "ui/shell_dialogs/shell_dialogs_export.h"
13
14namespace ui {
15
16// Struct used for passing selected file info to WebKit.
17struct SHELL_DIALOGS_EXPORT SelectedFileInfo {
18  // Selected file's user friendly path as seen in the UI.
19  base::FilePath file_path;
20
21  // The actual local path to the selected file. This can be a snapshot file
22  // with a human unreadable name like /blah/.d41d8cd98f00b204e9800998ecf8427e.
23  // |real_path| can differ from |file_path| for drive files (e.g.
24  // /drive_cache/temporary/d41d8cd98f00b204e9800998ecf8427e vs.
25  // /special/drive/foo.txt).
26  // If not set, defaults to |file_path|.
27  base::FilePath local_path;
28
29  // This field is optional. The display name contains only the base name
30  // portion of a file name (ex. no path separators), and used for displaying
31  // selected file names. If this field is empty, the base name portion of
32  // |path| is used for displaying.
33  base::FilePath::StringType display_name;
34
35  SelectedFileInfo();
36  SelectedFileInfo(const base::FilePath& in_file_path,
37                   const base::FilePath& in_local_path);
38  ~SelectedFileInfo();
39};
40
41}  // namespace ui
42
43#endif  // UI_SHELL_DIALOGS_SELECTED_FILE_INFO_H_
44
45