Input file type now supported in extension popups.
To do this, this CL generalize the TabContentsFileSelectHelper (renamed FileSelectHelper) so it is associated with a RenderViewHost rather than a TabContents.
This allows the extension popups which don't use a TabContents to use it.

As part of that, I also moved GetTopLevelNativeWindow() from TabContentsView to TabContent, as it can be implemented in a non-platform specific way.

BUG=28829
TEST=Make sure you can still open file on web pages (such as http://www.cs.tut.fi/~jkorpela/forms/file.html.
     Create an extension with a popup that contains an input file tag. Make sure it does open a file dialog and lets you choose a file.

Review URL: http://codereview.chromium.org/3209002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@59105 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/chrome/chrome_browser.gypi b/chrome/chrome_browser.gypi
index 195316a5..07da92f 100644
--- a/chrome/chrome_browser.gypi
+++ b/chrome/chrome_browser.gypi
@@ -1513,6 +1513,8 @@
         'browser/file_path_watcher_inotify.cc',
         'browser/file_path_watcher_mac.cc',
         'browser/file_path_watcher_win.cc',
+        'browser/file_select_helper.cc',
+        'browser/file_select_helper.h',
         'browser/file_system/file_system_dispatcher_host.cc',
         'browser/file_system/file_system_dispatcher_host.h',
         'browser/file_system/file_system_host_context.cc',
@@ -2680,8 +2682,6 @@
         'browser/tab_contents/tab_contents.h',
         'browser/tab_contents/tab_contents_delegate.cc',
         'browser/tab_contents/tab_contents_delegate.h',
-        'browser/tab_contents/tab_contents_file_select_helper.cc',
-        'browser/tab_contents/tab_contents_file_select_helper.h',
         'browser/tab_contents/tab_contents_ssl_helper.cc',
         'browser/tab_contents/tab_contents_ssl_helper.h',
         'browser/tab_contents/tab_contents_view.cc',