CrOS - Refactor file picker closing to avoid race conditions.
* Move ExtensionDialogObserver to separate header to reduce #include burden on clients of FileManagerDialog.
* Move file picker callback registry logic into FileManagerDialog, which is the owner of the listener pointers.
* Change fileBrowserPrivate.{selectFile,selectFiles,cancel} to immediately close the dialog window. Talked to mpcomplete@ about this, he thinks it's OK to tear it down in the middle of a function call. If this causes problems we can add a callback parameter to those functions and use it to call window.close().
* Added FileManagerDialogTest.SelectFileAndOpen to test picking a file.
BUG=chromium-os:16607
TEST=browser_tests FileManagerDialogTest.*
Review URL: http://codereview.chromium.org/7201007
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@89920 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/chrome/chrome_browser.gypi b/chrome/chrome_browser.gypi
index 107d2c4..5068cab 100644
--- a/chrome/chrome_browser.gypi
+++ b/chrome/chrome_browser.gypi
@@ -3053,6 +3053,8 @@
'browser/ui/views/extensions/browser_action_drag_data.h',
'browser/ui/views/extensions/browser_action_overflow_menu_controller.cc',
'browser/ui/views/extensions/browser_action_overflow_menu_controller.h',
+ 'browser/ui/views/extensions/extension_dialog_observer.cc',
+ 'browser/ui/views/extensions/extension_dialog_observer.h',
'browser/ui/views/extensions/extension_dialog.cc',
'browser/ui/views/extensions/extension_dialog.h',
'browser/ui/views/extensions/extension_install_dialog_view.cc',
@@ -4164,6 +4166,8 @@
['include', '^browser/ui/views/extensions/browser_action_drag_data.h'],
['include', '^browser/ui/views/extensions/browser_action_overflow_menu_controller.cc'],
['include', '^browser/ui/views/extensions/browser_action_overflow_menu_controller.h'],
+ ['include', '^browser/ui/views/extensions/extension_dialog_observer.cc'],
+ ['include', '^browser/ui/views/extensions/extension_dialog_observer.h'],
['include', '^browser/ui/views/extensions/extension_dialog.cc'],
['include', '^browser/ui/views/extensions/extension_dialog.h'],
['include', '^browser/ui/views/extensions/extension_install_dialog_view.cc'],