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

Issue 11193051: To fix the cross-site post submission bug.

Created:
8 years, 2 months ago by irobert
Modified:
6 years, 9 months ago
Reviewers:
michaeln, Charlie Reis
CC:
chromium-reviews, joi+watch-content_chromium.org, darin-cc_chromium.org, jam
Visibility:
Public.

Description

To fix the cross-site post submission bug. BUG=101395

Patch Set 1 #

Patch Set 2 : Fix FileRead Permission #

Total comments: 31

Patch Set 3 : Reuse ResourceRequestBody Struct #

Total comments: 41

Patch Set 4 : Fix Design #

Patch Set 5 : Fix Structure and Tests #

Total comments: 14

Patch Set 6 : New OpenURL function and DataType Test #

Total comments: 4

Patch Set 7 : Fix Comments #

Total comments: 38

Patch Set 8 : Fix Android Test and Include_rules #

Patch Set 9 : Fix Android API, Helper Function and Include_rules #

Unified diffs Side-by-side diffs Delta from patch set Stats (+348 lines, -95 lines) Patch
M chrome/browser/extensions/isolated_app_browsertest.cc View 1 2 3 4 5 6 7 8 1 chunk +66 lines, -0 lines 0 comments Download
M chrome/browser/ui/browser.cc View 1 2 3 4 5 6 7 1 chunk +5 lines, -0 lines 0 comments Download
M chrome/browser/ui/browser_navigator.h View 1 2 3 4 5 6 7 2 chunks +7 lines, -0 lines 0 comments Download
M chrome/browser/ui/browser_navigator.cc View 1 2 3 4 5 6 7 1 chunk +6 lines, -0 lines 0 comments Download
M content/browser/android/content_view_core_impl.cc View 1 2 3 4 5 6 7 1 chunk +10 lines, -1 line 0 comments Download
M content/browser/renderer_host/render_view_host_delegate.h View 1 2 3 4 5 6 3 chunks +13 lines, -7 lines 0 comments Download
M content/browser/renderer_host/render_view_host_impl.cc View 1 2 3 4 5 6 7 1 chunk +1 line, -1 line 0 comments Download
M content/browser/renderer_host/transfer_navigation_resource_throttle.cc View 1 2 3 4 5 6 7 1 chunk +2 lines, -2 lines 0 comments Download
M content/browser/web_contents/navigation_controller_impl_unittest.cc View 1 2 3 4 5 6 1 chunk +5 lines, -6 lines 0 comments Download
M content/browser/web_contents/navigation_entry_impl.h View 1 2 3 4 5 6 7 3 chunks +3 lines, -4 lines 0 comments Download
M content/browser/web_contents/navigation_entry_impl.cc View 1 2 3 4 5 6 1 chunk +3 lines, -4 lines 0 comments Download
M content/browser/web_contents/navigation_entry_impl_unittest.cc View 1 2 3 4 5 6 7 8 1 chunk +9 lines, -11 lines 0 comments Download
M content/browser/web_contents/render_view_host_manager.cc View 1 2 3 4 5 6 7 2 chunks +32 lines, -0 lines 0 comments Download
M content/browser/web_contents/web_contents_impl.h View 1 2 3 4 5 6 7 2 chunks +12 lines, -8 lines 0 comments Download
M content/browser/web_contents/web_contents_impl.cc View 1 2 3 4 5 6 7 6 chunks +22 lines, -13 lines 0 comments Download
M content/common/view_messages.h View 1 2 3 4 5 6 7 3 chunks +6 lines, -1 line 0 comments Download
M content/public/browser/navigation_controller.h View 1 2 3 4 5 6 2 chunks +2 lines, -8 lines 0 comments Download
M content/public/browser/navigation_entry.h View 1 2 3 4 5 6 7 3 chunks +8 lines, -3 lines 0 comments Download
M content/public/browser/page_navigator.h View 1 2 3 4 5 6 2 chunks +4 lines, -0 lines 0 comments Download
M content/renderer/render_view_browsertest.cc View 1 2 3 4 1 chunk +4 lines, -3 lines 0 comments Download
M content/renderer/render_view_impl.h View 1 2 3 4 5 6 7 2 chunks +4 lines, -1 line 0 comments Download
M content/renderer/render_view_impl.cc View 1 2 3 4 5 6 7 8 12 chunks +124 lines, -22 lines 0 comments Download

Messages

Total messages: 23 (0 generated)
irobert
Prototype Only. Welcome to any suggestions on design
8 years, 2 months ago (2012-10-19 20:47:51 UTC) #1
michaeln
Hi Robert, I've been taking a look at this CL to come up to speed. ...
8 years, 2 months ago (2012-10-23 23:22:18 UTC) #2
Charlie Reis
http://codereview.chromium.org/11193051/diff/17001/content/renderer/render_view_impl.cc File content/renderer/render_view_impl.cc (right): http://codereview.chromium.org/11193051/diff/17001/content/renderer/render_view_impl.cc#newcode2848 content/renderer/render_view_impl.cc:2848: OpenURL(frame, url, referrer, default_policy); I haven't looked at the ...
8 years, 2 months ago (2012-10-24 00:40:37 UTC) #3
irobert
http://codereview.chromium.org/11193051/diff/17001/chrome/browser/ui/browser_navigator.h File chrome/browser/ui/browser_navigator.h (right): http://codereview.chromium.org/11193051/diff/17001/chrome/browser/ui/browser_navigator.h#newcode211 chrome/browser/ui/browser_navigator.h:211: std::vector<content::WebHTTPPOSTBodyParams> post_data; This is the exactly same as the ...
8 years, 2 months ago (2012-10-24 00:51:16 UTC) #4
michaeln
Thnx, that's good to know. > http://codereview.chromium.org/11193051/diff/17001/content/renderer/render_view_impl.cc#newcode2848 > content/renderer/render_view_impl.cc:2848: OpenURL(frame, url, referrer, > default_policy); > ...
8 years, 2 months ago (2012-10-24 01:01:59 UTC) #5
michaeln
http://codereview.chromium.org/11193051/diff/17001/chrome/browser/ui/browser_navigator.h File chrome/browser/ui/browser_navigator.h (right): http://codereview.chromium.org/11193051/diff/17001/chrome/browser/ui/browser_navigator.h#newcode211 chrome/browser/ui/browser_navigator.h:211: std::vector<content::WebHTTPPOSTBodyParams> post_data; Looks like ResourceRequestBody and it's Element data ...
8 years, 2 months ago (2012-10-24 23:45:39 UTC) #6
irobert
http://codereview.chromium.org/11193051/diff/17001/content/browser/renderer_host/render_view_host_delegate.h File content/browser/renderer_host/render_view_host_delegate.h (right): http://codereview.chromium.org/11193051/diff/17001/content/browser/renderer_host/render_view_host_delegate.h#newcode433 content/browser/renderer_host/render_view_host_delegate.h:433: std::vector<content::WebHTTPPOSTBodyParams> post_data) {} On 2012/10/23 23:22:18, michaeln wrote: > ...
8 years, 1 month ago (2012-11-01 19:26:31 UTC) #7
michaeln
Not a complete review but some comments. I suspect should explicitly not handle the odd ...
8 years, 1 month ago (2012-11-02 00:08:23 UTC) #8
michaeln
http://codereview.chromium.org/11193051/diff/17001/content/renderer/render_view_impl.cc File content/renderer/render_view_impl.cc (right): http://codereview.chromium.org/11193051/diff/17001/content/renderer/render_view_impl.cc#newcode2848 content/renderer/render_view_impl.cc:2848: OpenURL(frame, url, referrer, default_policy); On 2012/10/24 00:40:37, creis wrote: ...
8 years, 1 month ago (2012-11-02 01:19:24 UTC) #9
irobert
http://codereview.chromium.org/11193051/diff/30004/chrome/browser/ui/browser.cc File chrome/browser/ui/browser.cc (right): http://codereview.chromium.org/11193051/diff/30004/chrome/browser/ui/browser.cc#newcode226 chrome/browser/ui/browser.cc:226: struct ViewMsg_Request; On 2012/11/02 00:08:23, michaeln wrote: > is ...
8 years, 1 month ago (2012-11-02 17:22:55 UTC) #10
michaeln
http://codereview.chromium.org/11193051/diff/30004/content/public/common/frame_navigate_params.h File content/public/common/frame_navigate_params.h (right): http://codereview.chromium.org/11193051/diff/30004/content/public/common/frame_navigate_params.h#newcode31 content/public/common/frame_navigate_params.h:31: scoped_refptr<webkit_glue::ResourceRequestBody> request_body; Can you point me to a bug ...
8 years, 1 month ago (2012-11-02 22:50:01 UTC) #11
Charlie Reis
A few high level comments below as I've tried to catch up on the discussion. ...
8 years, 1 month ago (2012-11-05 16:21:39 UTC) #12
irobert
With new data structure to store POST data https://codereview.chromium.org/11193051/diff/17001/content/browser/web_contents/render_view_host_manager.cc File content/browser/web_contents/render_view_host_manager.cc (right): https://codereview.chromium.org/11193051/diff/17001/content/browser/web_contents/render_view_host_manager.cc#newcode852 content/browser/web_contents/render_view_host_manager.cc:852: ChildProcessSecurityPolicyImpl* ...
8 years, 1 month ago (2012-11-05 17:26:51 UTC) #13
irobert
https://codereview.chromium.org/11193051/diff/29081/chrome/browser/ui/browser_navigator.h File chrome/browser/ui/browser_navigator.h (right): https://codereview.chromium.org/11193051/diff/29081/chrome/browser/ui/browser_navigator.h#newcode13 chrome/browser/ui/browser_navigator.h:13: #include "content/public/common/frame_navigate_params.h" I am planning to include resource_request_body.h. I ...
8 years, 1 month ago (2012-11-05 17:57:51 UTC) #14
michaeln
http://codereview.chromium.org/11193051/diff/29081/content/browser/renderer_host/render_view_host_delegate.h File content/browser/renderer_host/render_view_host_delegate.h (right): http://codereview.chromium.org/11193051/diff/29081/content/browser/renderer_host/render_view_host_delegate.h#newcode70 content/browser/renderer_host/render_view_host_delegate.h:70: struct ViewMsg_Request; stray code from before http://codereview.chromium.org/11193051/diff/29081/content/browser/renderer_host/render_view_host_delegate.h#newcode429 content/browser/renderer_host/render_view_host_delegate.h:429: virtual ...
8 years, 1 month ago (2012-11-05 23:38:29 UTC) #15
michaeln
> http://codereview.chromium.org/11193051/diff/17001/content/renderer/render_view_impl.cc#newcode1260 > content/renderer/render_view_impl.cc:1260: main_frame->loadRequest(request); > On 2012/10/24 23:45:39, michaeln wrote: > > I see... ...
8 years, 1 month ago (2012-11-06 00:02:08 UTC) #16
irobert
https://codereview.chromium.org/11193051/diff/29081/content/browser/renderer_host/render_view_host_delegate.h File content/browser/renderer_host/render_view_host_delegate.h (right): https://codereview.chromium.org/11193051/diff/29081/content/browser/renderer_host/render_view_host_delegate.h#newcode70 content/browser/renderer_host/render_view_host_delegate.h:70: struct ViewMsg_Request; On 2012/11/05 23:38:29, michaeln wrote: > stray ...
8 years, 1 month ago (2012-11-06 05:39:20 UTC) #17
michaeln
I'll take a looks at the new snapshot. https://codereview.chromium.org/11193051/diff/29081/content/renderer/render_view_impl.cc File content/renderer/render_view_impl.cc (right): https://codereview.chromium.org/11193051/diff/29081/content/renderer/render_view_impl.cc#newcode1172 content/renderer/render_view_impl.cc:1172: request.setHTTPMethod(WebString::fromUTF8("POST")); ...
8 years, 1 month ago (2012-11-06 22:18:41 UTC) #18
irobert
https://codereview.chromium.org/11193051/diff/29081/content/renderer/render_view_impl.cc File content/renderer/render_view_impl.cc (right): https://codereview.chromium.org/11193051/diff/29081/content/renderer/render_view_impl.cc#newcode1172 content/renderer/render_view_impl.cc:1172: request.setHTTPMethod(WebString::fromUTF8("POST")); PUT method submission will not end up in ...
8 years, 1 month ago (2012-11-06 22:25:45 UTC) #19
irobert
https://codereview.chromium.org/11193051/diff/34081/chrome/browser/extensions/isolated_app_browsertest.cc File chrome/browser/extensions/isolated_app_browsertest.cc (right): https://codereview.chromium.org/11193051/diff/34081/chrome/browser/extensions/isolated_app_browsertest.cc#newcode78 chrome/browser/extensions/isolated_app_browsertest.cc:78: IN_PROC_BROWSER_TEST_F(IsolatedAppTest, CrossSiteDataPost) { This Test is for the DataType ...
8 years, 1 month ago (2012-11-09 19:07:57 UTC) #20
irobert
https://codereview.chromium.org/11193051/diff/36040/chrome/browser/extensions/isolated_app_browsertest.cc File chrome/browser/extensions/isolated_app_browsertest.cc (right): https://codereview.chromium.org/11193051/diff/36040/chrome/browser/extensions/isolated_app_browsertest.cc#newcode78 chrome/browser/extensions/isolated_app_browsertest.cc:78: IN_PROC_BROWSER_TEST_F(IsolatedAppTest, CrossSiteFilePost) { I am currently blocking on this ...
8 years, 1 month ago (2012-11-19 19:56:31 UTC) #21
Charlie Reis
Some review comments below. I think there are still some unresolved questions about using that ...
8 years, 1 month ago (2012-11-20 05:46:03 UTC) #22
irobert
8 years, 1 month ago (2012-11-22 01:37:00 UTC) #23
https://codereview.chromium.org/11193051/diff/55003/chrome/browser/extensions...
File chrome/browser/extensions/isolated_app_browsertest.cc (right):

https://codereview.chromium.org/11193051/diff/55003/chrome/browser/extensions...
chrome/browser/extensions/isolated_app_browsertest.cc:151: string16 actual_title
= title_watcher.WaitAndGetTitle();
On 2012/11/20 05:46:03, creis wrote:
> Can we avoid relying on title changes?  Might be better to wait for LOAD_STOP.

> (Also, it's best to declare any observers before the action itself.  In this
> case, you'd declare it above ExecuteJavaScript and wait afterwards.)

Done.

https://codereview.chromium.org/11193051/diff/55003/chrome/browser/extensions...
chrome/browser/extensions/isolated_app_browsertest.cc:154: // Make Sure we are
in the new process
On 2012/11/20 05:46:03, creis wrote:
> nit: sure
> nit: end with period.

Done.

https://codereview.chromium.org/11193051/diff/55003/chrome/browser/extensions...
chrome/browser/extensions/isolated_app_browsertest.cc:159: std::string getResult
= "window.domAutomationController.send(";
On 2012/11/20 05:46:03, creis wrote:
> Maybe add a comment to this block about how it's reading the post data from
the
> body of the page.

Done.

https://codereview.chromium.org/11193051/diff/55003/chrome/browser/extensions...
chrome/browser/extensions/isolated_app_browsertest.cc:167:
EXPECT_EQ("data="+data+"\n", value);
On 2012/11/20 05:46:03, creis wrote:
> nit: Spaces around the +'s

Done.

https://codereview.chromium.org/11193051/diff/55003/chrome/browser/ui/browser...
File chrome/browser/ui/browser_navigator.h (right):

https://codereview.chromium.org/11193051/diff/55003/chrome/browser/ui/browser...
chrome/browser/ui/browser_navigator.h:21: //#include
"webkit/glue/resource_request_body.h"
I did a investigation on this, but do haven't got any clue yet

On 2012/11/20 05:46:03, creis wrote:
> What's the status of this?

https://codereview.chromium.org/11193051/diff/55003/chrome/browser/ui/browser...
chrome/browser/ui/browser_navigator.h:215: // request body
On 2012/11/20 05:46:03, creis wrote:
> Please elaborate in this comment.

Done.

https://codereview.chromium.org/11193051/diff/55003/content/browser/android/c...
File content/browser/android/content_view_core_impl.cc (right):

https://codereview.chromium.org/11193051/diff/55003/content/browser/android/c...
content/browser/android/content_view_core_impl.cc:676:
base::RefCountedBytes::TakeVector(&post_data_vector);
On 2012/11/20 05:46:03, creis wrote:
> nit: Indent 2 more spaces.

Done.

https://codereview.chromium.org/11193051/diff/55003/content/browser/renderer_...
File content/browser/renderer_host/transfer_navigation_resource_throttle.cc
(right):

https://codereview.chromium.org/11193051/diff/55003/content/browser/renderer_...
content/browser/renderer_host/transfer_navigation_resource_throttle.cc:39:
false, std::string(""), NULL);
On 2012/11/20 05:46:03, creis wrote:
> nit: No quotes on empty string.

Done.

https://codereview.chromium.org/11193051/diff/55003/content/browser/web_conte...
File content/browser/web_contents/render_view_host_manager.cc (right):

https://codereview.chromium.org/11193051/diff/55003/content/browser/web_conte...
content/browser/web_contents/render_view_host_manager.cc:849: // is pointed to
an invalid address.
On 2012/11/20 05:46:03, creis wrote:
> Valuable comment, but it should go before the if (not in the middle of it).

Done.

https://codereview.chromium.org/11193051/diff/55003/content/browser/web_conte...
File content/browser/web_contents/web_contents_impl.cc (right):

https://codereview.chromium.org/11193051/diff/55003/content/browser/web_conte...
content/browser/web_contents/web_contents_impl.cc:2909: if(request_body != NULL)
{
On 2012/11/20 05:46:03, creis wrote:
> nit: Space after if.
> nit: Don't need "!= NULL"

Done.

https://codereview.chromium.org/11193051/diff/55003/content/public/browser/na...
File content/public/browser/navigation_entry.h (right):

https://codereview.chromium.org/11193051/diff/55003/content/public/browser/na...
content/public/browser/navigation_entry.h:131: // 1) browser_initiated_post_data
when a new post data request is started.
On 2012/11/20 05:46:03, creis wrote:
> We may want to update this comment as well.

Done.

https://codereview.chromium.org/11193051/diff/55003/content/public/common/fra...
File content/public/common/frame_navigate_params.h (right):

https://codereview.chromium.org/11193051/diff/55003/content/public/common/fra...
content/public/common/frame_navigate_params.h:17: #include
"webkit/glue/resource_request_body.h"
Yes. This one is to get around the include problem. I just put it here to upload
my cl.

On 2012/11/20 05:46:03, creis wrote:
> Do we need this?  (If it's to get around the include problem in
> browser_navigator.h, then we need to reconsider this.  The DEPS check was
> complaining for a valid reason.)

https://codereview.chromium.org/11193051/diff/55003/content/renderer/render_v...
File content/renderer/render_view_impl.cc (right):

https://codereview.chromium.org/11193051/diff/55003/content/renderer/render_v...
content/renderer/render_view_impl.cc:1141: if(params.is_post) {
On 2012/11/20 05:46:03, creis wrote:
> nit: Space after if.

Done.

https://codereview.chromium.org/11193051/diff/55003/content/renderer/render_v...
content/renderer/render_view_impl.cc:2717: OpenURL(frame, request.url(),
referrer, policy, std::string(""), NULL);
On 2012/11/20 05:46:03, creis wrote:
> nit: No quotes.

Done.

https://codereview.chromium.org/11193051/diff/55003/content/renderer/render_v...
File content/renderer/render_view_impl.h (right):

https://codereview.chromium.org/11193051/diff/55003/content/renderer/render_v...
content/renderer/render_view_impl.h:857: std::string extra_header,
Like what we have done for Cross-Process redirect navigation. We can retrieve
the POST data from navigation_state and pass it to ViewHostMsg_OpenURL_Params.

On 2012/11/20 05:46:03, creis wrote:
> On 2012/11/19 19:56:31, irobert wrote:
> > If we save the POST data in the navigation_state or document_state, we can
> avoid
> > changing this API.
> 
> But those aren't sent to the browser process, are they?  And content_state
> doesn't get sent at the same time.

https://codereview.chromium.org/11193051/diff/55003/net/tools/testserver/test...
File net/tools/testserver/testserver.py (right):

https://codereview.chromium.org/11193051/diff/55003/net/tools/testserver/test...
net/tools/testserver/testserver.py:813:
self.wfile.write('<html><head><title>echoall</title><style>'
I also had a discussion with Albert about this issue. The purpose of doing this
is to make sure the page is finished loading. I ran the tests, it seems won't
effect other tests. But I have already changed our test so that we do not reply
on the title. Therefore, I will remove it in the new CL.

On 2012/11/20 05:46:03, creis wrote:
> Let's avoid changing this file if we can.  It could affect many tests.

Powered by Google App Engine
This is Rietveld 408576698