| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/6298021
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@73024 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Optimizations to fill packets better for the edsm server.
Problems:
- the SETTINGS frame was the first packet we'd send, uncorked (~45B).
This was wasting the first packet of our cwnd.
- uncork was overaggressive. We now only uncork when there are
no more packets in our queue.
- rework the packet sizing to fully fill packets better.
BUG=none
TEST=n/a
Review URL: http://codereview.chromium.org/6245015
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72983 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
New features:
-Message to ping DMServer and ask if a user is managed
-Signed policy responses
-Server assigns names to ChromeOS devices
A temporary version of cloud_policies.proto is also checked in (it will be auto-generated later).
BUG=chromium-os:11253,chromium-os:11254
TEST=none
Review URL: http://codereview.chromium.org/6161007
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72975 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
BUG=none
TEST=compiles with use_openssl
Review URL: http://codereview.chromium.org/6340020
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72962 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
because HttpRequestInfo is passed to HttpNetworkTransaction::Start() and HttpNetworkTransaction access the request info object in many places.
With the current code UploadData gets deleted before HttpStreamParser and that causes
read-after-free cases as shown in the below bug.
BUG=70825
TEST=verify that the valgrind issue mentioned in the bug gets fixed
Review URL: http://codereview.chromium.org/6327020
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72954 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Eliminate lazy initialization of HttpNetworkSession in HttpNetworkLayer.
* This eliminates the need to update parameters for HttpNetworkLayer, it just takes a HttpNetworkSession.
* It is OK to eliminate lazy initialization since these variables are cheap.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/6402002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72931 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
BUG=NONE
TEST=NONE
Review URL: http://codereview.chromium.org/6299020
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72925 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
BUG=70936
TEST=All unit tests should pass.
Review URL: http://codereview.chromium.org/6317016
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72921 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Instead of changing the frame length to a huge number, which would
require that many bytes of frame data to match, I change the frame
length to a smaller number, so that we won't read beyond the end of
a valid data buffer.
R=mbelshe,willchan
BUG=48588
TEST=net_unittests --gtest_filter=*.CorruptFrameSessionError* should
not crash in memcpy.
Review URL: http://codereview.chromium.org/6286008
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72880 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
reject. Strip headers with 0 length header names or 0 length header values.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/6286012
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72858 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problems:
- the SETTINGS frame was the first packet we'd send, uncorked.
This was wasting the first packet of our cwnd.
- uncork was overaggressive. We now only uncork when there are
no more packets in our queue.
- rework the packet sizing to fully fill packets better.
Question - should I remove the MSG_MORE code now? It seems to be an
alternative way to do corking, but it just doesn't work with the SSL layer.
BUG=none
TEST=n/a
Review URL: http://codereview.chromium.org/6327022
TBR=mbelshe@chromium.org
Review URL: http://codereview.chromium.org/6359016
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72849 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problems:
- the SETTINGS frame was the first packet we'd send, uncorked.
This was wasting the first packet of our cwnd.
- uncork was overaggressive. We now only uncork when there are
no more packets in our queue.
- rework the packet sizing to fully fill packets better.
Question - should I remove the MSG_MORE code now? It seems to be an
alternative way to do corking, but it just doesn't work with the SSL layer.
BUG=none
TEST=n/a
Review URL: http://codereview.chromium.org/6327022
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72844 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This adds an histogram to the HTTP response header parser. I reviewed
the code, and I've convinced myself that this captures the two main
cases of HTTP header parsing (tunneling, and normal HTTP), and that
double-calls aren't occuring. I liked having all the code in the one
translation unit. But, I might have missed one, and we might still
be getting called twice for the same load: so the statistics might be off.
Alternatively, I could put a static function on HttpResponseHeader, to
be called from the site of parse. But this might miss a parse.
All in all, I wanted to be sure to catch all distinct response codes
we get, so we can be sure not to stomp on anything. So I chose the
approach using the HttpResponseHeaders constructor.
TEST=none
BUG=70428
Review URL: http://codereview.chromium.org/6317011
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72801 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
Stubs out SslServerSocket for OpenSSL.
BUG=none
TEST=Sha256Test.TestContext (and compiles with openssl flag).
Review URL: http://codereview.chromium.org/6276002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72782 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
team.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/6393009
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72754 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
fixes the
URLRequestTestHTTP.TestPostChunkedDataBeforeStart net test failure in ChromeFrame.
To support chunked encoding we need to marshal the corresponding information in the
net::UploadData object to ensure that this object gets reconstructed correctly on the
other side (CF).
Disabled the URLRequestTestHTTP.TestPostChunkedDataAfterStart for ChromeFrame as this
test modifies the UploadData object after it has been marshaled over to CF which we don't
support in ChromeFrame.
BUG=none
TEST=Covered by existing net tests.
Review URL: http://codereview.chromium.org/6357017
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72723 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
BUG=68682
TEST=compiles
Review URL: http://codereview.chromium.org/6339012
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72710 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(Reapply r72562 with willchan's nits + locally tested shlib fixes + removing duplicate code that was partially responsible for the failure.)
- Move code included from blah_unittest.h (where blah_unittest.cc has actual
unittests) into their own files, often completely out-of-lining the
definitions.
- Remove anonymous namespaces from headers.
- Reorder method declarations.
- Make other unit test link against net_test_support instead of reaching in and
including .h files in their targets directly.
BUG=68682
TEST=compiles
First Review URL: http://codereview.chromium.org/6264013
Review URL: http://codereview.chromium.org/6248021
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72682 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
I added this when I first started working on Chrome, and never use it. It's a command line utility to issue DNS commands.
BUG=None
TEST=None
Review URL: http://codereview.chromium.org/6320014
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72641 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
This will make it easier to identify specific TCP connections in a wireshark trace.
BUG=70649
TEST=Connect somewhere, check about:net-internals to see that source ip and port are logged.
Review URL: http://codereview.chromium.org/6394004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72607 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
BUG=66472
TEST=none
Review URL: http://codereview.chromium.org/6313014
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72604 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
Note, this isn't a complete fix for the bug. We need to persist information for that.
BUG=66472
TEST=none
Review URL: http://codereview.chromium.org/6340016
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72600 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
This reverts commit 006f377bbb65ece3490b7c76e58e0dc4cb330909 (r72562).
BUG=68682
TEST=compiles
TBR=thomasvl
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72564 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
with the result of that corruption.
1. Now we mark any open entry as dirty, even if we are
supposed to delete the entry right away because if we
crash before that, we may end up clearing the dirty
flag of a dirty entry.
2. When we look for a parent of a given entry we now
double check that the entry is the one that we want (and
not just another entry with the same key).
3. If we have a loop on the hash collision list (result of
failing to do 1 and 2 above), we figure that out.
4. Now every time we open an entry from an LRU list we end
up using the same code path (with the proper handling of
dirty entries).
BUG=69135
TEST=net_unittests
Review URL: http://codereview.chromium.org/6292011
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72563 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Move code included from blah_unittest.h (where blah_unittest.cc has actual
unittests) into their own files, often completely out-of-lining the
definitions.
- Remove anonymous namespaces from headers.
- Reorder method declarations.
- Make other unit test link against net_test_support instead of reaching in and
including .h files in their targets directly.
BUG=68682
TEST=compiles
Review URL: http://codereview.chromium.org/6264013
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72562 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Refactor the first-read logic for the in-mem server.
Split out functions from the initial connection setup on first read.
* Fixed the SPDY-only (non-NPN negotiated) case.
* Hardened the server against invalid protocol attacks; would happily
crash when an invalid-looking frame arrived.
BUG=none
TEST=self
Review URL: http://codereview.chromium.org/6262014
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72536 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This allows for cases where the request complete callback is invoked outside a message loop,
for e.g. in TestPostChunkedDataAfterStart(). Quit() can only be invoked inside a message
loop whereas posting a QuitTask to the message loop can be done from anywhere.
BUG=none
TEST=TestPostChunkedDataAfterStart passes through the tsan bots and net_unittests in general runs fine.
Review URL: http://codereview.chromium.org/6329019
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72493 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This CL introduces preference settings for incognito windows. The semantics are the following:
- An extension can set regular preferences as before. These affect regular and incognito windows.
- An extension can set regular preferences *and* incognito preferences. In this case, the incognito preferences affect only incognito windows.
- If extension A sets reg+incognito, extension B sets reg but no incognito, extension B has higher precedence than A --> B's preferences hold for all regular and incognito windows.
- Incognito preferences are never persisted to disk.
In order to realize this, the ExtensionPrefs class allows setting regular and incognito extension controlled preferences. It allows creating an incognito version of the PrefService with an independent PrefValueStore. This (incognito) PrefValueStore and the original PrefValueStore share several of their PrefStores (i.e. DefaultPrefStore, CommandLinePrefStore, Configuration PrefStores) but differ in two pref stores:
- We maintain two separate ExtensionPrefStores containing the effective preferences for regular and incognito windows.
- We maintain two separate user pref stores. The regular JsonPrefStore is expanded by an OverlayPersistentPrefStore that maintains all write-operations in an in-memory overlay. Therefore, incognito changes are not visible in the file-backed JsonPrefStore.
The two ExtensionPrefStores retrieve their effective values from a shared ExtensionPrefValueMap.
The OffTheRecordProfileImpl provides a request_context_ that uses the new PrefService already.
BUG=66027,69057
TEST=unit tests, will be fully testable once the Proxy Settings API allows incognito settings.
Review URL: http://codereview.chromium.org/5915004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72489 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In CL http://codereview.chromium.org/6134003 I did a find/replace for all places in testserver.py
that read the request body and incorrectly replaced this one as well. The intention was only to
make the change to methods of TestPageHandler and not SyncPageHandler.
BUG=none
TEST=sync_integration_tests builds fine in the buildbots.
Review URL: http://codereview.chromium.org/6391003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72486 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/6134003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72471 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
Dropped the DCHECk since it seems some Windows version don't initialize the unused variable.
BUG=27400
TEST=none
Review URL: http://codereview.chromium.org/6242011
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72429 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
45s until first TCP Keep-Alive and 45s in between keep alives.
BUG=27400
TEST=Run Wireshark, make sure TCP Keep-Alive packets are sent.
Review URL: http://codereview.chromium.org/6300013
TBR=willchan@chromium.org
Review URL: http://codereview.chromium.org/6371010
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72426 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
45s until first TCP Keep-Alive and 45s in between keep alives.
BUG=27400
TEST=Run Wireshark, make sure TCP Keep-Alive packets are sent.
Review URL: http://codereview.chromium.org/6300013
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72421 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We should only use FilePath when working with real paths on disk.
Note: I made a minor semantic change to downloads -- we no
longer preserve backslashes in server-suggested paths on non-Windows.
I think the previous behavior is crazy but from looking at the
blame I'm the one who wrote it originally, so I don't feel bad
about changing my mind.
BUG=69467
TEST=existing test still passes
Review URL: http://codereview.chromium.org/6241001
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72390 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
(I copied the code from djb and still screwed it up!)
BUG=none
TEST=DnsRRResolver works on OS X
Review URL: http://codereview.chromium.org/6353011
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72332 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
(Contains some minor de-inlining.)
BUG=68682
TEST=compiles
Review URL: http://codereview.chromium.org/6263010
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72232 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
ChromeFrame where the
chromeframe suffix is added to the outgoing UA.
BUG=none
TEST=Existing OverideUserAgent test should pass in the regular and ChromeFrame case.
R=wtc
Review URL: http://codereview.chromium.org/6369008
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72228 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
The throttling feature rejects outbound HTTP requests to a server for a period of time, when it finds that the server is returning 5XX.
This change disables the feature.
TEST=none
BUG=70412
Review URL: http://codereview.chromium.org/6369007
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72214 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add a job to inflight_ only after the job's worker has started
successfully.
R=agl
BUG=63357,67289
TEST=net_unittests --gtest_filter=CertVerifierTest.CancelRequestThenQuit
should not leak a CertVerifierRequest object under valgrind.
Review URL: http://codereview.chromium.org/5973004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72203 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
SSL_ConfigServerSessionIDCache() is being used in SSLServerSocketNSS and
enabling session resumption since passes are now passing.
BUG=67236
TEST=net_unittests, remoting_unittests
Review URL: http://codereview.chromium.org/6370008
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72186 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In addition to the normal method reordering, this patch also deinlines
net/base/test_completion_callback.h and places the compiled code in the
net_test_support target. Minimization of that header also required adding
includes in a few unit tests.
BUG=68682
TEST=compiles
Review URL: http://codereview.chromium.org/6341004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72162 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
error status. CertGetCertificateChain no longer detects the error.
R=agl
BUG=70210
TEST=none
Review URL: http://codereview.chromium.org/6331009
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72159 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- do not strip User-Agent while flattening headers in renderer
- do not override User-Agent header in the network stack if one is already supplied by higher level;
- added RequestHeaders::SetHeaderIfMissing
TEST=URLRequestTestHTTP.OverrideUserAgent
BUG=http://crbug.com/67063
Review URL=http://codereview.chromium.org/6065008
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72131 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
the base namespace. Fix several files including lock.h unnecessarily.
BUG=none
TEST=none
Original review=http://codereview.chromium.org/6142009/
Patch by leviw@chromium.org
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72106 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
BUG=69135
TEST=none
TBR=gavinp
Review URL: http://codereview.chromium.org/6300009
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72063 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
BUG=none
TEST=<this is the test>
Review URL: http://codereview.chromium.org/6338013
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72059 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
pidfile.
SPDY frames were leaking when used with DataFrame and OutputList.
HUP signal will now reopen the log file.
Remote IP obtained for 'forward-ip-header' was incorrect.
Added connection idle timeout.
Fixed up pidfile handling.
Flip server now creates and locks a pid file.
Patch from Kevin Lindsay: kelindsay@gmail.com
BUG=none
TEST=self
Review URL: http://codereview.chromium.org/6332010
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72046 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The destructor of net::NetworkConfigWatcherMacThread ends up calling
PlatformThread::Join(), an operation that needs to be done only from an
IO thread. This currently causes a DCHECK to fire in base::ThreadRestrictions.
The bug was discovered by running the sync integration tests on a mac trybot.
The tests create Profile objects during setup, that indirectly call
~NetworkConfigWatcherMacThread() from their destructors.
This patch allows IO operations in ~NetworkConfigWatcherMacThread()
using a ScopedAllowIO.
BUG=70190
TEST=sync_integration_tests
Review URL: http://codereview.chromium.org/6353008
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72030 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
But OrphanJob() call job_->Kill() internally, so first Kill() call
in PrepareToRestart() is not needed.
This changelist remove the duplicated Kill() call.
BUG=chromium:69937
TEST=pass net_unittests.
Patch provided by toyoshim@google.com.
Original review: http://codereview.chromium.org/6373002/
Review URL: http://codereview.chromium.org/6250021
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72015 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
BUG=68682
TEST=compiles
Review URL: http://codereview.chromium.org/6382003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72013 0039d316-1c4b-4281-b951-d872f2087c98
|