New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 615575 link

Starred by 2 users

Issue metadata

Status: Available
Owner: ----
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug



Sign in to add a comment

OOPIF: Can't select files via form input

Project Member Reported by creis@chromium.org, May 27 2016

Issue description

Version: 53.0.2750.0
OS: All

What steps will reproduce the problem?
(1) Start Chrome with --site-per-process.
(2) Visit http://csreis.github.io/tests/cross-site-iframe.html
(3) In DevTools, enter: navFrame("https://csreis.github.io/tests/form-post.html")
(4) Try to click Choose File.

What is the expected output?

The file dialog should open.

What do you see instead?

Nothing happens.

We probably need to move the RunFileChooser logic from RenderView{Host} to RenderFrame{Host}.
 

Comment 1 by creis@chromium.org, Jun 7 2016

Labels: Proj-IsolateExtensions-BlockingLaunch
We should fix this for launch.  I'd volunteer but I'm a bit overbooked already.  Anyone want to move it over to RFH?
Project Member

Comment 2 by bugdroid1@chromium.org, Jun 10 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/35169afd1ede3dc971194e7cef278e7bb9c02a4d

commit 35169afd1ede3dc971194e7cef278e7bb9c02a4d
Author: nasko <nasko@chromium.org>
Date: Fri Jun 10 18:47:13 2016

Change WebContentsDelegate::RunFileChooser to be frame based.

The file chooser code needs to be updated to support out-of-process iframes.
This CL is a required step in converting the public API to run the file
chooser based on RenderFrameHost instead of WebContents.

BUG=615575
CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_site_isolation

Review-Url: https://codereview.chromium.org/2059533002
Cr-Commit-Position: refs/heads/master@{#399240}

[modify] https://crrev.com/35169afd1ede3dc971194e7cef278e7bb9c02a4d/android_webview/native/aw_web_contents_delegate.cc
[modify] https://crrev.com/35169afd1ede3dc971194e7cef278e7bb9c02a4d/android_webview/native/aw_web_contents_delegate.h
[modify] https://crrev.com/35169afd1ede3dc971194e7cef278e7bb9c02a4d/apps/custom_launcher_page_contents.cc
[modify] https://crrev.com/35169afd1ede3dc971194e7cef278e7bb9c02a4d/apps/custom_launcher_page_contents.h
[modify] https://crrev.com/35169afd1ede3dc971194e7cef278e7bb9c02a4d/chrome/browser/android/tab_web_contents_delegate_android.cc
[modify] https://crrev.com/35169afd1ede3dc971194e7cef278e7bb9c02a4d/chrome/browser/android/tab_web_contents_delegate_android.h
[modify] https://crrev.com/35169afd1ede3dc971194e7cef278e7bb9c02a4d/chrome/browser/devtools/devtools_window.cc
[modify] https://crrev.com/35169afd1ede3dc971194e7cef278e7bb9c02a4d/chrome/browser/devtools/devtools_window.h
[modify] https://crrev.com/35169afd1ede3dc971194e7cef278e7bb9c02a4d/chrome/browser/extensions/extension_view_host.cc
[modify] https://crrev.com/35169afd1ede3dc971194e7cef278e7bb9c02a4d/chrome/browser/extensions/extension_view_host.h
[modify] https://crrev.com/35169afd1ede3dc971194e7cef278e7bb9c02a4d/chrome/browser/file_select_helper.cc
[modify] https://crrev.com/35169afd1ede3dc971194e7cef278e7bb9c02a4d/chrome/browser/file_select_helper.h
[modify] https://crrev.com/35169afd1ede3dc971194e7cef278e7bb9c02a4d/chrome/browser/ui/apps/chrome_app_delegate.cc
[modify] https://crrev.com/35169afd1ede3dc971194e7cef278e7bb9c02a4d/chrome/browser/ui/apps/chrome_app_delegate.h
[modify] https://crrev.com/35169afd1ede3dc971194e7cef278e7bb9c02a4d/chrome/browser/ui/browser.cc
[modify] https://crrev.com/35169afd1ede3dc971194e7cef278e7bb9c02a4d/chrome/browser/ui/browser.h
[modify] https://crrev.com/35169afd1ede3dc971194e7cef278e7bb9c02a4d/components/guest_view/browser/guest_view_base.cc
[modify] https://crrev.com/35169afd1ede3dc971194e7cef278e7bb9c02a4d/components/guest_view/browser/guest_view_base.h
[modify] https://crrev.com/35169afd1ede3dc971194e7cef278e7bb9c02a4d/content/browser/frame_host/render_frame_host_impl.cc
[modify] https://crrev.com/35169afd1ede3dc971194e7cef278e7bb9c02a4d/content/browser/frame_host/render_frame_host_impl.h
[modify] https://crrev.com/35169afd1ede3dc971194e7cef278e7bb9c02a4d/content/browser/frame_host/render_frame_host_manager_browsertest.cc
[modify] https://crrev.com/35169afd1ede3dc971194e7cef278e7bb9c02a4d/content/browser/web_contents/web_contents_impl.cc
[modify] https://crrev.com/35169afd1ede3dc971194e7cef278e7bb9c02a4d/content/public/browser/render_frame_host.h
[modify] https://crrev.com/35169afd1ede3dc971194e7cef278e7bb9c02a4d/content/public/browser/web_contents_delegate.h
[modify] https://crrev.com/35169afd1ede3dc971194e7cef278e7bb9c02a4d/extensions/browser/app_window/app_delegate.h
[modify] https://crrev.com/35169afd1ede3dc971194e7cef278e7bb9c02a4d/extensions/browser/app_window/app_window.cc
[modify] https://crrev.com/35169afd1ede3dc971194e7cef278e7bb9c02a4d/extensions/browser/app_window/app_window.h
[modify] https://crrev.com/35169afd1ede3dc971194e7cef278e7bb9c02a4d/extensions/shell/browser/shell_app_delegate.cc
[modify] https://crrev.com/35169afd1ede3dc971194e7cef278e7bb9c02a4d/extensions/shell/browser/shell_app_delegate.h

Comment 3 by nasko@chromium.org, Jun 10 2016

Owner: nasko@chromium.org
Status: Started (was: Available)
Project Member

Comment 4 by bugdroid1@chromium.org, Jun 11 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ada75b29b3ecd8cb61c357befd50f24f2e50d319

commit ada75b29b3ecd8cb61c357befd50f24f2e50d319
Author: nasko <nasko@chromium.org>
Date: Sat Jun 11 16:09:46 2016

Move file chooser from RenderView(Host) to RenderFrame(Host).

The file chooser does not work with out-of-process iframes, since it works through RenderView(Host). It needs to be moved to user RenderFrame(Host) at which point it works for subframes in a process different from its parent.

BUG=615575
CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_site_isolation

TBR=asvitkine@chromium.org

Review-Url: https://codereview.chromium.org/2050623005
Cr-Commit-Position: refs/heads/master@{#399373}

[modify] https://crrev.com/ada75b29b3ecd8cb61c357befd50f24f2e50d319/components/test_runner/web_frame_test_client.cc
[modify] https://crrev.com/ada75b29b3ecd8cb61c357befd50f24f2e50d319/components/test_runner/web_frame_test_client.h
[modify] https://crrev.com/ada75b29b3ecd8cb61c357befd50f24f2e50d319/components/test_runner/web_frame_test_proxy.h
[modify] https://crrev.com/ada75b29b3ecd8cb61c357befd50f24f2e50d319/components/test_runner/web_test_proxy.h
[modify] https://crrev.com/ada75b29b3ecd8cb61c357befd50f24f2e50d319/components/test_runner/web_view_test_client.cc
[modify] https://crrev.com/ada75b29b3ecd8cb61c357befd50f24f2e50d319/components/test_runner/web_view_test_client.h
[modify] https://crrev.com/ada75b29b3ecd8cb61c357befd50f24f2e50d319/content/browser/bad_message.h
[modify] https://crrev.com/ada75b29b3ecd8cb61c357befd50f24f2e50d319/content/browser/frame_host/render_frame_host_delegate.h
[modify] https://crrev.com/ada75b29b3ecd8cb61c357befd50f24f2e50d319/content/browser/frame_host/render_frame_host_impl.cc
[modify] https://crrev.com/ada75b29b3ecd8cb61c357befd50f24f2e50d319/content/browser/frame_host/render_frame_host_impl.h
[modify] https://crrev.com/ada75b29b3ecd8cb61c357befd50f24f2e50d319/content/browser/renderer_host/render_view_host_delegate.h
[modify] https://crrev.com/ada75b29b3ecd8cb61c357befd50f24f2e50d319/content/browser/renderer_host/render_view_host_impl.cc
[modify] https://crrev.com/ada75b29b3ecd8cb61c357befd50f24f2e50d319/content/browser/renderer_host/render_view_host_impl.h
[modify] https://crrev.com/ada75b29b3ecd8cb61c357befd50f24f2e50d319/content/browser/security_exploit_browsertest.cc
[modify] https://crrev.com/ada75b29b3ecd8cb61c357befd50f24f2e50d319/content/browser/web_contents/web_contents_impl.cc
[modify] https://crrev.com/ada75b29b3ecd8cb61c357befd50f24f2e50d319/content/browser/web_contents/web_contents_impl.h
[modify] https://crrev.com/ada75b29b3ecd8cb61c357befd50f24f2e50d319/content/common/frame_messages.h
[modify] https://crrev.com/ada75b29b3ecd8cb61c357befd50f24f2e50d319/content/common/view_messages.h
[modify] https://crrev.com/ada75b29b3ecd8cb61c357befd50f24f2e50d319/content/public/browser/render_view_host.h
[modify] https://crrev.com/ada75b29b3ecd8cb61c357befd50f24f2e50d319/content/renderer/pepper/mock_renderer_ppapi_host.cc
[modify] https://crrev.com/ada75b29b3ecd8cb61c357befd50f24f2e50d319/content/renderer/pepper/mock_renderer_ppapi_host.h
[modify] https://crrev.com/ada75b29b3ecd8cb61c357befd50f24f2e50d319/content/renderer/pepper/pepper_file_chooser_host.cc
[modify] https://crrev.com/ada75b29b3ecd8cb61c357befd50f24f2e50d319/content/renderer/pepper/pepper_file_chooser_host_unittest.cc
[modify] https://crrev.com/ada75b29b3ecd8cb61c357befd50f24f2e50d319/content/renderer/render_frame_impl.cc
[modify] https://crrev.com/ada75b29b3ecd8cb61c357befd50f24f2e50d319/content/renderer/render_frame_impl.h
[modify] https://crrev.com/ada75b29b3ecd8cb61c357befd50f24f2e50d319/content/renderer/render_view_impl.cc
[modify] https://crrev.com/ada75b29b3ecd8cb61c357befd50f24f2e50d319/content/renderer/render_view_impl.h
[modify] https://crrev.com/ada75b29b3ecd8cb61c357befd50f24f2e50d319/third_party/WebKit/Source/web/ChromeClientImpl.cpp
[modify] https://crrev.com/ada75b29b3ecd8cb61c357befd50f24f2e50d319/third_party/WebKit/public/web/WebFrameClient.h
[modify] https://crrev.com/ada75b29b3ecd8cb61c357befd50f24f2e50d319/third_party/WebKit/public/web/WebViewClient.h
[modify] https://crrev.com/ada75b29b3ecd8cb61c357befd50f24f2e50d319/tools/metrics/histograms/histograms.xml

Project Member

Comment 5 by bugdroid1@chromium.org, Jun 15 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/35169afd1ede3dc971194e7cef278e7bb9c02a4d

commit 35169afd1ede3dc971194e7cef278e7bb9c02a4d
Author: nasko <nasko@chromium.org>
Date: Fri Jun 10 18:47:13 2016

Change WebContentsDelegate::RunFileChooser to be frame based.

The file chooser code needs to be updated to support out-of-process iframes.
This CL is a required step in converting the public API to run the file
chooser based on RenderFrameHost instead of WebContents.

BUG=615575
CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_site_isolation

Review-Url: https://codereview.chromium.org/2059533002
Cr-Commit-Position: refs/heads/master@{#399240}

[modify] https://crrev.com/35169afd1ede3dc971194e7cef278e7bb9c02a4d/android_webview/native/aw_web_contents_delegate.cc
[modify] https://crrev.com/35169afd1ede3dc971194e7cef278e7bb9c02a4d/android_webview/native/aw_web_contents_delegate.h
[modify] https://crrev.com/35169afd1ede3dc971194e7cef278e7bb9c02a4d/apps/custom_launcher_page_contents.cc
[modify] https://crrev.com/35169afd1ede3dc971194e7cef278e7bb9c02a4d/apps/custom_launcher_page_contents.h
[modify] https://crrev.com/35169afd1ede3dc971194e7cef278e7bb9c02a4d/chrome/browser/android/tab_web_contents_delegate_android.cc
[modify] https://crrev.com/35169afd1ede3dc971194e7cef278e7bb9c02a4d/chrome/browser/android/tab_web_contents_delegate_android.h
[modify] https://crrev.com/35169afd1ede3dc971194e7cef278e7bb9c02a4d/chrome/browser/devtools/devtools_window.cc
[modify] https://crrev.com/35169afd1ede3dc971194e7cef278e7bb9c02a4d/chrome/browser/devtools/devtools_window.h
[modify] https://crrev.com/35169afd1ede3dc971194e7cef278e7bb9c02a4d/chrome/browser/extensions/extension_view_host.cc
[modify] https://crrev.com/35169afd1ede3dc971194e7cef278e7bb9c02a4d/chrome/browser/extensions/extension_view_host.h
[modify] https://crrev.com/35169afd1ede3dc971194e7cef278e7bb9c02a4d/chrome/browser/file_select_helper.cc
[modify] https://crrev.com/35169afd1ede3dc971194e7cef278e7bb9c02a4d/chrome/browser/file_select_helper.h
[modify] https://crrev.com/35169afd1ede3dc971194e7cef278e7bb9c02a4d/chrome/browser/ui/apps/chrome_app_delegate.cc
[modify] https://crrev.com/35169afd1ede3dc971194e7cef278e7bb9c02a4d/chrome/browser/ui/apps/chrome_app_delegate.h
[modify] https://crrev.com/35169afd1ede3dc971194e7cef278e7bb9c02a4d/chrome/browser/ui/browser.cc
[modify] https://crrev.com/35169afd1ede3dc971194e7cef278e7bb9c02a4d/chrome/browser/ui/browser.h
[modify] https://crrev.com/35169afd1ede3dc971194e7cef278e7bb9c02a4d/components/guest_view/browser/guest_view_base.cc
[modify] https://crrev.com/35169afd1ede3dc971194e7cef278e7bb9c02a4d/components/guest_view/browser/guest_view_base.h
[modify] https://crrev.com/35169afd1ede3dc971194e7cef278e7bb9c02a4d/content/browser/frame_host/render_frame_host_impl.cc
[modify] https://crrev.com/35169afd1ede3dc971194e7cef278e7bb9c02a4d/content/browser/frame_host/render_frame_host_impl.h
[modify] https://crrev.com/35169afd1ede3dc971194e7cef278e7bb9c02a4d/content/browser/frame_host/render_frame_host_manager_browsertest.cc
[modify] https://crrev.com/35169afd1ede3dc971194e7cef278e7bb9c02a4d/content/browser/web_contents/web_contents_impl.cc
[modify] https://crrev.com/35169afd1ede3dc971194e7cef278e7bb9c02a4d/content/public/browser/render_frame_host.h
[modify] https://crrev.com/35169afd1ede3dc971194e7cef278e7bb9c02a4d/content/public/browser/web_contents_delegate.h
[modify] https://crrev.com/35169afd1ede3dc971194e7cef278e7bb9c02a4d/extensions/browser/app_window/app_delegate.h
[modify] https://crrev.com/35169afd1ede3dc971194e7cef278e7bb9c02a4d/extensions/browser/app_window/app_window.cc
[modify] https://crrev.com/35169afd1ede3dc971194e7cef278e7bb9c02a4d/extensions/browser/app_window/app_window.h
[modify] https://crrev.com/35169afd1ede3dc971194e7cef278e7bb9c02a4d/extensions/shell/browser/shell_app_delegate.cc
[modify] https://crrev.com/35169afd1ede3dc971194e7cef278e7bb9c02a4d/extensions/shell/browser/shell_app_delegate.h

Project Member

Comment 6 by bugdroid1@chromium.org, Jun 15 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ada75b29b3ecd8cb61c357befd50f24f2e50d319

commit ada75b29b3ecd8cb61c357befd50f24f2e50d319
Author: nasko <nasko@chromium.org>
Date: Sat Jun 11 16:09:46 2016

Move file chooser from RenderView(Host) to RenderFrame(Host).

The file chooser does not work with out-of-process iframes, since it works through RenderView(Host). It needs to be moved to user RenderFrame(Host) at which point it works for subframes in a process different from its parent.

BUG=615575
CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_site_isolation

TBR=asvitkine@chromium.org

Review-Url: https://codereview.chromium.org/2050623005
Cr-Commit-Position: refs/heads/master@{#399373}

[modify] https://crrev.com/ada75b29b3ecd8cb61c357befd50f24f2e50d319/components/test_runner/web_frame_test_client.cc
[modify] https://crrev.com/ada75b29b3ecd8cb61c357befd50f24f2e50d319/components/test_runner/web_frame_test_client.h
[modify] https://crrev.com/ada75b29b3ecd8cb61c357befd50f24f2e50d319/components/test_runner/web_frame_test_proxy.h
[modify] https://crrev.com/ada75b29b3ecd8cb61c357befd50f24f2e50d319/components/test_runner/web_test_proxy.h
[modify] https://crrev.com/ada75b29b3ecd8cb61c357befd50f24f2e50d319/components/test_runner/web_view_test_client.cc
[modify] https://crrev.com/ada75b29b3ecd8cb61c357befd50f24f2e50d319/components/test_runner/web_view_test_client.h
[modify] https://crrev.com/ada75b29b3ecd8cb61c357befd50f24f2e50d319/content/browser/bad_message.h
[modify] https://crrev.com/ada75b29b3ecd8cb61c357befd50f24f2e50d319/content/browser/frame_host/render_frame_host_delegate.h
[modify] https://crrev.com/ada75b29b3ecd8cb61c357befd50f24f2e50d319/content/browser/frame_host/render_frame_host_impl.cc
[modify] https://crrev.com/ada75b29b3ecd8cb61c357befd50f24f2e50d319/content/browser/frame_host/render_frame_host_impl.h
[modify] https://crrev.com/ada75b29b3ecd8cb61c357befd50f24f2e50d319/content/browser/renderer_host/render_view_host_delegate.h
[modify] https://crrev.com/ada75b29b3ecd8cb61c357befd50f24f2e50d319/content/browser/renderer_host/render_view_host_impl.cc
[modify] https://crrev.com/ada75b29b3ecd8cb61c357befd50f24f2e50d319/content/browser/renderer_host/render_view_host_impl.h
[modify] https://crrev.com/ada75b29b3ecd8cb61c357befd50f24f2e50d319/content/browser/security_exploit_browsertest.cc
[modify] https://crrev.com/ada75b29b3ecd8cb61c357befd50f24f2e50d319/content/browser/web_contents/web_contents_impl.cc
[modify] https://crrev.com/ada75b29b3ecd8cb61c357befd50f24f2e50d319/content/browser/web_contents/web_contents_impl.h
[modify] https://crrev.com/ada75b29b3ecd8cb61c357befd50f24f2e50d319/content/common/frame_messages.h
[modify] https://crrev.com/ada75b29b3ecd8cb61c357befd50f24f2e50d319/content/common/view_messages.h
[modify] https://crrev.com/ada75b29b3ecd8cb61c357befd50f24f2e50d319/content/public/browser/render_view_host.h
[modify] https://crrev.com/ada75b29b3ecd8cb61c357befd50f24f2e50d319/content/renderer/pepper/mock_renderer_ppapi_host.cc
[modify] https://crrev.com/ada75b29b3ecd8cb61c357befd50f24f2e50d319/content/renderer/pepper/mock_renderer_ppapi_host.h
[modify] https://crrev.com/ada75b29b3ecd8cb61c357befd50f24f2e50d319/content/renderer/pepper/pepper_file_chooser_host.cc
[modify] https://crrev.com/ada75b29b3ecd8cb61c357befd50f24f2e50d319/content/renderer/pepper/pepper_file_chooser_host_unittest.cc
[modify] https://crrev.com/ada75b29b3ecd8cb61c357befd50f24f2e50d319/content/renderer/render_frame_impl.cc
[modify] https://crrev.com/ada75b29b3ecd8cb61c357befd50f24f2e50d319/content/renderer/render_frame_impl.h
[modify] https://crrev.com/ada75b29b3ecd8cb61c357befd50f24f2e50d319/content/renderer/render_view_impl.cc
[modify] https://crrev.com/ada75b29b3ecd8cb61c357befd50f24f2e50d319/content/renderer/render_view_impl.h
[modify] https://crrev.com/ada75b29b3ecd8cb61c357befd50f24f2e50d319/third_party/WebKit/Source/web/ChromeClientImpl.cpp
[modify] https://crrev.com/ada75b29b3ecd8cb61c357befd50f24f2e50d319/third_party/WebKit/public/web/WebFrameClient.h
[modify] https://crrev.com/ada75b29b3ecd8cb61c357befd50f24f2e50d319/third_party/WebKit/public/web/WebViewClient.h
[modify] https://crrev.com/ada75b29b3ecd8cb61c357befd50f24f2e50d319/tools/metrics/histograms/histograms.xml

Project Member

Comment 7 by bugdroid1@chromium.org, Jun 24 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/39e3eb7e848610bf9527bc648e4bd46fe59d4eda

commit 39e3eb7e848610bf9527bc648e4bd46fe59d4eda
Author: nasko <nasko@chromium.org>
Date: Fri Jun 24 23:15:44 2016

Fix file input dialog from out-of-process iframe.

The initial CL that ported over file input dialogs to function from
out-of-process iframes used the incorrect method to check whether the
frame is hidden or not. This CL fixes this issue and adds a test to
ensure file input works end-to-end.

BUG=615575

Review-Url: https://codereview.chromium.org/2100503002
Cr-Commit-Position: refs/heads/master@{#402007}

[modify] https://crrev.com/39e3eb7e848610bf9527bc648e4bd46fe59d4eda/content/browser/site_per_process_browsertest.cc
[modify] https://crrev.com/39e3eb7e848610bf9527bc648e4bd46fe59d4eda/content/renderer/render_frame_impl.cc

Comment 8 by nasko@chromium.org, Jun 24 2016

With the last CL that has landed, file selection from forms should work, including directories. However, it is known that drag-n-drop does not work with OOPIF, therefore dragging a directory over a file input element does not work for now.

Once we have a canary channel with revision 402007, I plan on removing the blocking label from this bug.

Comment 9 by creis@chromium.org, Jun 27 2016

Labels: -Proj-IsolateExtensions-BlockingLaunch
This appears to be working in 53.0.2780.0, so I'll remove the blocking label.  Thanks!
Project Member

Comment 10 by sheriffbot@chromium.org, Jul 8 2016

Labels: -M-53 M-54 MovedFrom-53
Moving this nonessential bug to the next milestone.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot

Comment 11 by tkent@chromium.org, Oct 14 2016

Can we close this bug?

Comment 12 by nasko@chromium.org, Oct 14 2016

No, there is more work to be done here.
Anything still remaining?
Cc: nasko@chromium.org
Owner: ----
Status: Available (was: Started)
Thanks for the ping. I should remove myself and make this one as Available. I haven't done work and have not verified whether the scenario in comment #8 is still broken. If it works, maybe we can close it as fixed?

Sign in to add a comment