Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(93)

Issue 2380193003: Block navigations in extensions via ShouldTransferNavigation (not via OpenURL). (Closed)

Created:
4 years, 2 months ago by Łukasz Anforowicz
Modified:
4 years, 2 months ago
Reviewers:
Devlin, sky
CC:
chromium-reviews
Target Ref:
refs/pending/branch-heads/2840
Project:
chromium
Visibility:
Public.

Description

Block navigations in extensions via ShouldTransferNavigation (not via OpenURL). (this is relanding a slightly tweaked r421287). Before this CL, blocking of top-level navigations in extension pop-ups was accomplished by routing them via OpenURL path and blocking (or rather - silently dropping) CURRENT_TAB navigations via ExtensionViewHost::OpenURLFromTab. This was problematic for a few reasons: 1. This unnecessarily blocked navigations that end-up being treated as downloads (i.e. because HTTP response says Content-Disposition: attachment). This was the root cause of the regression raised in https://crbug.com/646261 2. There are still some remaining issues in handling of POST requests via OpenURL path (e.g. dropping Content-Type header - https://crbug.com/648648). 3. In the long-term we want to rely less on process isolation accomplished via OpenURL - an exploited renderer process does not necessarily have to go through OpenURL path and can instead choose to use the regular, renderer-initiated path. After this CL: 1. ExtensionViewHost::ShouldTransferNavigation is used to block top-level navigations in extension pop-ups (and background pages). 2. POST navigations do not go through OpenURL path anymore (i.e. this CL effectively reverts the essence of r407586). In the long-term (tracked in https://crbug.com/650694) we want to make all extension navigations to not go through OpenURL path, but this seems too risky to merge back to M54, so for now we only do #2 above (i.e. avoid OpenURL only for POST requests). BUG=646261 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_site_isolation TBR=sky@chromium.org, rdevlin.cronin@chromium.org Review-Url: https://codereview.chromium.org/2377833002 Cr-Commit-Position: refs/heads/master@{#421645} (cherry picked from commit 1d02573dbb13b5d7bd76f172afdf19a6389dc2f7) Committed: https://chromium.googlesource.com/chromium/src/+/1fd4604fd78908736589d8ac5e3b0e3347c4c6ce

Patch Set 1 #

Unified diffs Side-by-side diffs Delta from patch set Stats (+310 lines, -16 lines) Patch
M chrome/browser/extensions/api/extension_action/browser_action_apitest.cc View 5 chunks +201 lines, -2 lines 0 comments Download
M chrome/browser/extensions/extension_view_host.h View 1 chunk +1 line, -0 lines 0 comments Download
M chrome/browser/extensions/extension_view_host.cc View 1 chunk +8 lines, -0 lines 0 comments Download
M chrome/browser/extensions/process_management_browsertest.cc View 2 chunks +54 lines, -0 lines 0 comments Download
M chrome/browser/prerender/prerender_contents.cc View 1 chunk +1 line, -1 line 0 comments Download
M chrome/renderer/chrome_content_renderer_client.cc View 1 chunk +10 lines, -0 lines 0 comments Download
A + chrome/test/data/extensions/api_test/browser_action/popup_with_form/manifest.json View 1 chunk +2 lines, -2 lines 0 comments Download
A chrome/test/data/extensions/api_test/browser_action/popup_with_form/other_page.html View 1 chunk +6 lines, -0 lines 0 comments Download
A chrome/test/data/extensions/api_test/browser_action/popup_with_form/popup.html View 1 chunk +14 lines, -0 lines 0 comments Download
A + chrome/test/data/extensions/api_test/browser_action/popup_with_form/popup.js View 0 chunks +-1 lines, --1 lines 0 comments Download
M content/browser/cross_site_transfer_browsertest.cc View 1 chunk +1 line, -1 line 0 comments Download
M content/browser/frame_host/navigation_request.cc View 1 chunk +2 lines, -3 lines 0 comments Download
M content/browser/frame_host/navigator_delegate.h View 1 chunk +1 line, -1 line 0 comments Download
M content/browser/frame_host/navigator_delegate.cc View 1 chunk +2 lines, -1 line 0 comments Download
M content/browser/frame_host/navigator_impl.cc View 1 chunk +2 lines, -1 line 0 comments Download
M content/browser/web_contents/web_contents_impl.h View 1 chunk +1 line, -1 line 0 comments Download
M content/browser/web_contents/web_contents_impl.cc View 1 chunk +2 lines, -2 lines 0 comments Download
M content/public/browser/web_contents_delegate.h View 1 chunk +1 line, -1 line 0 comments Download
M content/public/browser/web_contents_delegate.cc View 1 chunk +2 lines, -1 line 0 comments Download

Messages

Total messages: 2 (1 generated)
Łukasz Anforowicz
4 years, 2 months ago (2016-09-29 22:15:56 UTC) #2
Message was sent while issue was closed.
Committed patchset #1 (id:1) manually as
1fd4604fd78908736589d8ac5e3b0e3347c4c6ce.

Powered by Google App Engine
This is Rietveld 408576698