  .../browser/resources/file_picker/file_picker.css  |   72 +++++++++
  .../browser/resources/file_picker/file_picker.html |   37 +++++
  .../browser/resources/file_picker/file_picker.js   |   51 ++++++
- .../aura/chrome_browser_main_extra_parts_aura.cc   |   11 +-
+ .../aura/chrome_browser_main_extra_parts_aura.cc   |   12 +-
  .../ui/webui/chrome_web_ui_controller_factory.cc   |    5 +
  .../browser/ui/webui/file_picker/file_picker_ui.cc |   47 ++++++
  .../browser/ui/webui/file_picker/file_picker_ui.h  |   24 +++

+document.addEventListener('DOMContentLoaded',
+                          filePicker.initialize);
diff --git a/chrome/browser/ui/aura/chrome_browser_main_extra_parts_aura.cc b/chrome/browser/ui/aura/chrome_browser_main_extra_parts_aura.cc
index c0cd472..66e2e53 100644
--- a/chrome/browser/ui/aura/chrome_browser_main_extra_parts_aura.cc
+++ b/chrome/browser/ui/aura/chrome_browser_main_extra_parts_aura.cc
@@ -19,17 +19,21 @@

 #if defined(USE_ASH)
 #include "chrome/browser/ui/ash/ash_init.h"
 #endif  // defined(USE_ASH)
@@ -99,6 +103,10 @@ void ChromeBrowserMainExtraPartsAura::PreEarlyInitialization() {
     ui::InitializeInputMethodForTesting();
   }
 #endif
+
+#if defined(OS_LINUX) && defined(USE_OZONE)
+    views::LinuxUI::SetInstance(BuildWebUI());
+#endif
 }
 
 void ChromeBrowserMainExtraPartsAura::ToolkitInitialized() {
diff --git a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
index 9a0c2c0..af7f107 100644
--- a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
