summaryrefslogtreecommitdiffstats
path: root/chrome/browser/renderer_host/async_resource_handler.cc
Commit message (Collapse)AuthorAgeFilesLines
* Whitelist all content for various internal schemes.pkasting@chromium.org2010-02-091-3/+5
| | | | | | | | BUG=34805 TEST=New Tab page should still work if you disable script + images Review URL: http://codereview.chromium.org/588011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38536 0039d316-1c4b-4281-b951-d872f2087c98
* IPC per-host content settings to the renderers.thakis@chromium.org2010-01-301-6/+9
| | | | | | | | | BUG=32719 TEST=none Review URL: http://codereview.chromium.org/549218 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37628 0039d316-1c4b-4281-b951-d872f2087c98
* Revert "Implement HostContentSettingsMap"evan@chromium.org2010-01-291-6/+2
| | | | | | | | This reverts commit r37508, as it was crashing on the reliability bots. Review URL: http://codereview.chromium.org/556076 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37519 0039d316-1c4b-4281-b951-d872f2087c98
* Implement HostContentSettingsMapjochen@chromium.org2010-01-291-2/+6
| | | | | | | | | | | This map stores whether a given host may load images or use plugins and javascript. And makes this information available to the render view BUG=32782 TEST=none Review URL: http://codereview.chromium.org/551149 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37508 0039d316-1c4b-4281-b951-d872f2087c98
* Implement ResourceQueue, an object that makes it easy to delay startingphajdan.jr@chromium.org2009-12-101-1/+2
| | | | | | | | | | | | | | | requests in ResourceDispatcherHost until specified conditions are met. Make UserScriptListener use ResourceQueue. This is the first step toward waiting for the privacy blacklists to load. TEST=Covered by unit_tests. BUG=21541 Review URL: http://codereview.chromium.org/460108 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34271 0039d316-1c4b-4281-b951-d872f2087c98
* Remember zoom on a per-host basis.pkasting@chromium.org2009-12-041-1/+21
| | | | | | | | BUG=567 TEST=Visit a page, zoom in or out, then navigate to a different host. The new page should not be zoomed. Go back, or restart, or open a new tab and navigate to the old page, and it should be zoomed. Review URL: http://codereview.chromium.org/437077 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@33886 0039d316-1c4b-4281-b951-d872f2087c98
* Don't do work in the SharedIOBuffer constructor; use an Init method instead. ↵hawk@chromium.org2009-11-201-5/+11
| | | | | | | | | | | | This eliminates instances of allocated-but-invalid SharedIOBuffers. Also clean up some CHECKs and TODOs associated with the bug. The upshot is that we no longer crash in AsyncResourceHandler::OnResponseCompleted() when we can't allocate shared memory. We now crash (properly, I believe) in the renderer process if the shared memory that failed to allocate was the TransportDIB, since the renderer can't communicate with the browser without it. BUG=16371 TEST=none Review URL: http://codereview.chromium.org/391009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@32701 0039d316-1c4b-4281-b951-d872f2087c98
* A large number of style nits in preparation for turning on automated cpplint.py.erg@google.com2009-11-111-1/+1
| | | | | | Review URL: http://codereview.chromium.org/385023 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@31669 0039d316-1c4b-4281-b951-d872f2087c98
* Eighth patch in making destructors of refcounted objects private.jam@chromium.org2009-11-071-0/+3
| | | | | | | BUG=26749 Review URL: http://codereview.chromium.org/378004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@31339 0039d316-1c4b-4281-b951-d872f2087c98
* Fourth patch in making destructors of refcounted objects private.jam@chromium.org2009-11-051-5/+6
| | | | | | | BUG=26749 Review URL: http://codereview.chromium.org/360043 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@31167 0039d316-1c4b-4281-b951-d872f2087c98
* Only double the buffer when AsyncResourceHandler's caller fill the buffer.erg@google.com2009-10-261-6/+11
| | | | | | | | | | | This is an update to r29904 and came out of a discussion with Darin. BUG=http://crbug.com/24493 TEST=NONE Review URL: http://codereview.chromium.org/335010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@30058 0039d316-1c4b-4281-b951-d872f2087c98
* When sending resources across the IPC barrier, use increasing sized buffers.erg@google.com2009-10-231-8/+32
| | | | | | | | | | | | | | | | | | | | | | | AsyncResourceHandler::OnWillRead will usually allocate a new piece of shared memory for each 32 kilobyte chunk of a resource to be sent over IPC from the browser to the renderer. Instead, use a 32k chunk, then a 64k chunk, then a 128k chunk up to a maximum size of 512k. Why? Because transferring large resources is really slow. To send a sequence of 32k chunks to the renderer, we need to wait for the renderer to send an ACK message back before we send the next chunk. The themeing on the new tab page is a pathological case for this code. Most of the background images are large, and my test case is about 800k. This was 25 round trips. Now it is 5. According to the web inspector, it used to take ~700ms to transfer said image. Now it's in the ~30ms range. It feels faster, and the web inspector shows the speed up, but tab_complex_theme_cold does not... BUG=http://crbug.com/24493 TEST=Doesn't regress any performance tests. Review URL: http://codereview.chromium.org/331001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@29904 0039d316-1c4b-4281-b951-d872f2087c98
* CHECK that IOBuffer::data_ in AsyncResourceHandler is not NULL before ↵willchan@chromium.org2009-07-311-0/+2
| | | | | | | | | | caching it. BUG=http://crbug.com/16371 Review URL: http://codereview.chromium.org/159730 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@22214 0039d316-1c4b-4281-b951-d872f2087c98
* Add plumbing for allowing the renderer to intercept and cancel redirects beforedarin@chromium.org2009-07-301-4/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | they are sent. A good portion of this CL is to support the new UI test. The IPC to notify the renderer of a redirect now includes a ResponseInfo struct allowing WebURLLoaderImpl to provide detailed response info (including response headers) to WebKit. This isn't strictly necessary, but I thought I'd include this to make the code more future proof. A cross origin restriction is added to SyncResourceHandler::OnRequestRedirected that mimics the code in WebCore/platform/network/cf/ResourceHandleCFNet.cpp. This is most unfortunate, and I filed a bug at bugs.webkit.org about the similar duplication of logic in WebCore. There seemed to be enough code paths leading to request cancellation at the ResourceDispatcher level that I couldn't easily ensure that a request only gets cancelled once. So, I added an is_cancelled flag to record if it is not necessary to send a ViewHostMsg_CancelRequest IPC. This avoids some warnings in the ResourceDispatcherHost. To support my UI test, I needed to change URLRequestMockHttpJob to know how to serve redirects. I moved URLRequestHttpJob::IsRedirectResponse to its base class, URLRequestJob so that the implementation could be shared. This revealed a minor bug in URLRequest. We were never resetting response_info_ upon following a redirect. I added this code consolidated similar code from URLRequest::Redirect and URLRequest::RestartWithJob into a new PrepareToRestart method. To support my UI test, I added a "hit count" field to URLRequestFilter, and I added an associated automation IPC to query the value. The test was a bit challenging to write because there is no way to tell the difference from JS. Before and after, it appears to JS as though the cross-origin redirect failed. However, the server can see the extra redirect request. So, I simply record the number of hits against URLs of the form http://mock.http/foo, and use that to observe if any extra requests were made. I implemented the new IPC message by extending the AutomationResourceMessageFilter. This allowed me to trap the IPC message on the IO thread where it is safe to probe the URLRequestFilter. I then changed the implementation of AutomationMsg_SetFilteredInet to work similarly. I revised URLRequestMockHTTPJob::GetOnDiskPath to support ports. This actually allowed me to reuse URLRequestMockHTTPJob to service URLs in different security origins. My test redirects from http://mock.http/ to http://mock.http:4000/. Please see the comments in cross-origin-redirect-blocked.html for details about how the test functions. R=brettw,wtc BUG=16413 TEST=covered by resource_dispatcher_host_uitest.cc Review URL: http://codereview.chromium.org/159370 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@22067 0039d316-1c4b-4281-b951-d872f2087c98
* Add CHECKs to the ResourceHandler derived classes to see which is returning ↵willchan@chromium.org2009-07-291-8/+20
| | | | | | | | | | a NULL IOBuffer:data_. BUG=http://crbug.com/16371 Review URL: http://codereview.chromium.org/159561 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21940 0039d316-1c4b-4281-b951-d872f2087c98
* Hide the details about ResourceDispatcherHost messages from child processes. ↵jam@chromium.org2009-03-171-1/+1
| | | | | | | | The usage of RDH is now like RD, the client sends the message to RDH to see if it should handle it. I added methods to the Receiver interface so that RDH can get to the process id/handle/type when starting requests. Review URL: http://codereview.chromium.org/42202 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@11816 0039d316-1c4b-4281-b951-d872f2087c98
* Stop having renderers use both pids and a monotonically increasing ↵jam@chromium.org2009-03-121-7/+7
| | | | | | | | "host_id". This allows ResourceDispatcher to be used by child processes other than renderers. I've done minor related cleanup on the way to make the code simpler. Review URL: http://codereview.chromium.org/42054 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@11509 0039d316-1c4b-4281-b951-d872f2087c98
* Landing again the CL that adds security info to canceled requests (last time ↵jcampan@chromium.org2009-03-081-3/+7
| | | | | | | | | it was causing sync XMLHttpRequests to hang, breaking many layout tests). TBR=darin Review URL: http://codereview.chromium.org/39321 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@11221 0039d316-1c4b-4281-b951-d872f2087c98
* Revert change 11197 because it created 138 new layout testsnsylvain@chromium.org2009-03-071-7/+3
| | | | | | | | failures. Review URL: http://codereview.chromium.org/39311 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@11201 0039d316-1c4b-4281-b951-d872f2087c98
* Landing again the CL that adds security info to canceled requests (it was ↵jcampan@chromium.org2009-03-071-3/+7
| | | | | | | | | | | breaking NPAPI tests on Vista due to an erroneuous commented line). TBR=darin Review URL: http://codereview.chromium.org/39309 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@11197 0039d316-1c4b-4281-b951-d872f2087c98
* Reverting 11179.jcampan@chromium.org2009-03-071-7/+3
| | | | | | | Reverting CL as plugin UI tests fail on Vista Review URL: http://codereview.chromium.org/40260 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@11187 0039d316-1c4b-4281-b951-d872f2087c98
* This CL adds a way to specify the security info when canceling a URLRequest.jcampan@chromium.org2009-03-071-3/+7
| | | | | | | | | | | This allows to tag a request on the renderer side with its security info. It is useful for the "frame info" dialog. When showing that dialog for blocked frames, the security info can be retrieved and users can see the cert details for the blocked frame. TEST=Open a page containing a frame served over bad HTTPS. The frame is blocked (replaced with a warning message). Right-click, select "Frame info". The dialog should have a "show cert" button which when pressed should show the frame's bad cert. BUG=2853 Review URL: http://codereview.chromium.org/7276 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@11179 0039d316-1c4b-4281-b951-d872f2087c98
* Fix a browser crash when the async resource handler keeps anrvargas@google.com2009-02-111-1/+6
| | | | | | | | | | | | | | | | IOBuffer after a failed attempt to send the data to a (now gone) renderer. The shared memory section is unmapped so the buffer must not be kept around and possibly re-used. I'm also fixing a leak reported by purify. BUG=7487 BUG=7374 Review URL: http://codereview.chromium.org/21222 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@9540 0039d316-1c4b-4281-b951-d872f2087c98
* Fix a memory leak on the async resource handler.rvargas@google.com2009-02-061-1/+1
| | | | | | | | BUG=7374 Review URL: http://codereview.chromium.org/20099 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@9284 0039d316-1c4b-4281-b951-d872f2087c98
* Finish taking out render_messages.h includes from headers.jam@chromium.org2009-02-051-0/+2
| | | | | | Review URL: http://codereview.chromium.org/20072 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@9209 0039d316-1c4b-4281-b951-d872f2087c98
* Change URLRequest to use a ref-counted buffer for actual IO.rvargas@google.com2009-01-291-16/+37
| | | | | | | | | | This will re-land http://codereview.chromium.org/18390 BUG=5325 Review URL: http://codereview.chromium.org/19004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@8847 0039d316-1c4b-4281-b951-d872f2087c98
* revert r8603rvargas@google.com2009-01-241-34/+15
| | | | | | Review URL: http://codereview.chromium.org/18576 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@8605 0039d316-1c4b-4281-b951-d872f2087c98
* Change URLRequest to use a ref-counted buffer for actual IO.The ref-counting ↵rvargas@google.com2009-01-241-15/+34
| | | | | | | | will prevent the deletion / reuse of memorywhile the buffer is actually being used by pending IO.This seems a very intrusive change, but at least we will be ableto make sure that it works without having to chase every singledestruction of an URLRequest to make sure that any pending IOwas cancelled, and also allows us to avoid blocking onthe object destruction.BUG=5325 Review URL: http://codereview.chromium.org/18390 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@8603 0039d316-1c4b-4281-b951-d872f2087c98
* Porting in chrome/phajdan.jr@chromium.org2008-12-311-1/+3
| | | | | | Review URL: http://codereview.chromium.org/17016 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@7529 0039d316-1c4b-4281-b951-d872f2087c98
* New attempt at landing the resource_dispatcher_host.cc splitting (broke the ↵jcampan@chromium.org2008-12-231-0/+109
| | | | | | | | | build on Friday). TBR=darin Review URL: http://codereview.chromium.org/15801 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@7400 0039d316-1c4b-4281-b951-d872f2087c98
* Reverting my CL to fix build bustage.jcampan@chromium.org2008-12-201-109/+0
| | | | | | | TBR=maruel Review URL: http://codereview.chromium.org/15099 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@7338 0039d316-1c4b-4281-b951-d872f2087c98
* This CL moves the different resource handlers from ↵jcampan@chromium.org2008-12-201-0/+109
resource_dispatcher_host.cc into their own files, into a new renderer_host directory. Their is no functionality change in this CL. The motivation for doing that was: - resource_dispatcher_host.cc has become very long and more than 1/3 of the code is for the resource handler. - having the resource handler in their own file allows having unit tests for them. BUG=none TEST=run all unit tests and UI tests. Review URL: http://codereview.chromium.org/14487 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@7336 0039d316-1c4b-4281-b951-d872f2087c98