  .../ui/webui/chrome_web_ui_controller_factory.cc   |    3 +
  .../browser/ui/webui/file_picker/file_picker_ui.cc |   46 ++++++
  .../browser/ui/webui/file_picker/file_picker_ui.h  |   24 +++
- .../ui/webui/file_picker/file_picker_web_dialog.cc |  165 ++++++++++++++++++++
+ .../ui/webui/file_picker/file_picker_web_dialog.cc |  164 ++++++++++++++++++++
  chrome/chrome_browser_ui.gypi                      |    4 +
  chrome/common/url_constants.cc                     |    3 +
  chrome/common/url_constants.h                      |    2 +
  tools/gritsettings/resource_ids                    |    2 +-
- 14 files changed, 429 insertions(+), 3 deletions(-)
+ 14 files changed, 428 insertions(+), 3 deletions(-)
  create mode 100644 chrome/browser/resources/file_picker/file_picker.css
  create mode 100644 chrome/browser/resources/file_picker/file_picker.html
  create mode 100644 chrome/browser/resources/file_picker/file_picker.js

+}
+
+void FilePickerWebDialog::OnDialogClosed(const std::string& json_retval) {
+  listener_->FileSelectionCanceled(NULL);
+  delete this;
+}
+

+ public:
+  FilePickerMessageHandler(
+      const ui::FilePickerWebDialog* dialog);
+  ~FilePickerMessageHandler();
+  void RegisterMessages() override;
+
+ private:
+  // content::WebUIMessageHandler implementation.
