| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
| |
BUG=423948,455952,475751,475753,475755,475761
TEST=none
TBR=jochen,rvargas,piman
Review URL: https://codereview.chromium.org/1077973002
Cr-Commit-Position: refs/heads/master@{#324748}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This removes the ability to pass in a custom CookieStore to a URLRequest. It's
a small change to net/url_request which then balloons to everything in the
project that ever makes a URLRequest.
This reverts the rest of https://codereview.chromium.org/188693003 (and then
does a whole lot more because URLRequest constructors were unified recently to
always require passing in the fourth argument).
BUG=457344
Review URL: https://codereview.chromium.org/1003953008
Cr-Commit-Position: refs/heads/master@{#321820}
|
|
|
|
|
|
|
|
| |
BUG=466848
Review URL: https://codereview.chromium.org/1005683003
Cr-Commit-Position: refs/heads/master@{#320804}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Prior instrumentations showed that:
ReadRawData = 16 jph
InformDelegateDownloadProgress = 4.8 jph
Instrumenting deeper.
The jank in InformDelegateDownloadProgress is a surprise since this method does nothing but posting a task. But still, who knows, and I'm instrumenting it too.
BUG=423948
TBR=jianli@chromium.org, jhawkins@chromium.org, zork@chromium.org, jochen@chromium.org, tzik@chromium.org
Review URL: https://codereview.chromium.org/821073003
Cr-Commit-Position: refs/heads/master@{#309783}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The Google C++ style guide states:
Explicitly annotate overrides of virtual functions or virtual
destructors with an override or (less frequently) final specifier.
Older (pre-C++11) code will use the virtual keyword as an inferior
alternative annotation. For clarity, use exactly one of override,
final, or virtual when declaring an override.
To better conform to these guidelines, the following constructs have
been rewritten:
- if a base class has a virtual destructor, then:
virtual ~Foo(); -> ~Foo() override;
- virtual void Foo() override; -> void Foo() override;
- virtual void Foo() override final; -> void Foo() final;
This patch was automatically generated. The clang plugin can generate
fixit hints, which are suggested edits when it is 100% sure it knows how
to fix a problem. The hints from the clang plugin were applied to the
source tree using the tool in https://codereview.chromium.org/598073004.
Several formatting edits by clang-format were manually reverted, due to
mangling of some of the more complicate IPC macros.
BUG=417463
Review URL: https://codereview.chromium.org/823713002
Cr-Commit-Position: refs/heads/master@{#309497}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the check.
WeakPtrFactory members should always be last so that they invalidate WeakPtrs prior to other destructors running. These are mostly trivial/mechanical ones.
(We'll also need https://codereview.chromium.org/795003003/, which I split out)
BUG=303818
TBR=rockot,vitalybuka,cbentzel,shess,dmazzoni,stanisc,sky,tim,mathp,benjhayden,kinuko,scottmg,sergeyu,zork,ddorwin
Review URL: https://codereview.chromium.org/780713002
Cr-Commit-Position: refs/heads/master@{#308137}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If the reader of the stream is aborted before the stream is registered,
StreamRegistry::RegisterStream() should fail to reduce the memory consumption.
So this change introduces StreamRegistry::RegisterReaderAbortedStream().
We will use this method in this situation:
- The request from the page is sent to the ServiceWorker.
- The ServiceWorker creates a Stream and starts uploading the data to the browser process with it.
- The browser process receives the stream URL in ServiceWorkerHostMsg_FetchEventFinished.
But it didn't receive StreamHostMsg_StartBuilding yet.
- The page stops the loading the resource.
-> Call this method in the browser process.
- The browser receives StreamHostMsg_StartBuilding and creates a Stream and registers it to the StreamRegistry.
-> This registration should fail.
BUG=436424
TEST=content_unittests --gtest_filter=StreamTest.*
Review URL: https://codereview.chromium.org/759823003
Cr-Commit-Position: refs/heads/master@{#308025}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There is no way to flush the buffer in the stream.
This cl introduces Stream::flush method.
We can flush the buffer in the browser process using this method from blink.
We will use this method when we send the data from the ServiceWorker to the browser process progressively.
1/2 blink: https://codereview.chromium.org/747323007/
2/2 chromium: https://codereview.chromium.org/760823002/
BUG=436424
Review URL: https://codereview.chromium.org/760823002
Cr-Commit-Position: refs/heads/master@{#307684}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We are planing to use Streams to send the data from the ServiceWorker to the browser process when FetchEvent.respondWith() is called. (crbug.com/436424)
When FetchEvent.respondWith() is called, we will create a blink::Stream and get the stream URL of it and send ServiceWorkerHostMsg_FetchEventFinished message with the stream URL to the browser process. And after that the ServiceWorker reads the body of the response and sends the data to the browser process using the Stream.
When we call blink::Stream::create() in the worker thread, StreamHostMsg_StartBuilding message is sent from the main thread.
And when the browser process receives this message, StreamRegistry::RegisterStream() is called.
But ServiceWorkerHostMsg_FetchEventFinished is sent from the worker thread.
So when the browser receives the FetchEventFinished message, StreamRegistry::RegisterStream() may not be called yet.
To support this condition we need to introduce StreamRegisterObserver.
When he browser process receives the FetchEventFinished message, it gets the Stream by calling StreamRegistry::GetStream(). And if it fails it registers a StreamRegisterObserver and waits for StreamHostMsg_StartBuilding message.
BUG=436424
TEST=content_unittests --gtest_filter=StreamTest.*
Review URL: https://codereview.chromium.org/755233002
Cr-Commit-Position: refs/heads/master@{#305792}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The Google C++ style guide states:
Explicitly annotate overrides of virtual functions or virtual
destructors with an override or (less frequently) final specifier.
Older (pre-C++11) code will use the virtual keyword as an inferior
alternative annotation. For clarity, use exactly one of override,
final, or virtual when declaring an override.
To better conform to these guidelines, the following constructs have
been rewritten:
- if a base class has a virtual destructor, then:
virtual ~Foo(); -> ~Foo() override;
- virtual void Foo() override; -> void Foo() override;
- virtual void Foo() override final; -> void Foo() final;
This patch was automatically generated. The clang plugin can generate
fixit hints, which are suggested edits when it is 100% sure it knows how
to fix a problem. The hints from the clang plugin were applied to the
source tree using the tool in https://codereview.chromium.org/598073004.
BUG=417463
R=nasko@chromium.org
Review URL: https://codereview.chromium.org/678073006
Cr-Commit-Position: refs/heads/master@{#301534}
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch was automatically generated by applying clang fixit hints
generated by the plugin to the source tree.
BUG=417463
TBR=sky@chromium.org
Review URL: https://codereview.chromium.org/667943003
Cr-Commit-Position: refs/heads/master@{#300469}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This was split out from https://codereview.chromium.org/519533002/
StreamHandle is now split into a StreamHandle and StreamInfo. StreamHandle only
manages the stream URL. StreamInfo also contains the headers and other metadata
that the streams_private mechanism uses.
StreamResourceHandler is also split out into a StreamWriter so other resource
handlers may also use it.
BUG=376015
Review URL: https://codereview.chromium.org/625993002
Cr-Commit-Position: refs/heads/master@{#299745}
|
|
|
|
|
|
|
|
|
|
|
| |
This step is a giant search and replace for OVERRIDE and FINAL to
replace them with their lowercase versions.
BUG=417463
Review URL: https://codereview.chromium.org/637183002
Cr-Commit-Position: refs/heads/master@{#298804}
|
|
|
|
|
|
|
|
|
| |
This fixes a bug introduced in https://codereview.chromium.org/588643002
which caused a crash if NULL response_headers were passed to StreamhandleImpl.
Review URL: https://codereview.chromium.org/587173002
Cr-Commit-Position: refs/heads/master@{#296104}
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
BufferedResourceHandler passes the response to both the old and the new
handler, so there is a race where the streams logic could access headers on the
UI thread while the old handler (AsyncResourceHandler) is busy modifying them
(via ChromeResourceDispatcherHostDelegate).
BUG=none
Review URL: https://codereview.chromium.org/588643002
Cr-Commit-Position: refs/heads/master@{#295753}
|
|
|
|
|
|
|
|
|
|
|
| |
This implements an extensions API to abort a stream that has been started. Aborting the stream will cause the original URL request to be cancelled, which may be desired if the client of the API wants to cancel the request before it is completely downloaded.
BUG=348464,303491
R=jam@chromium.org, kalman@chromium.org, mpearson@chromium.org, zork@chromium.org
Review URL: https://codereview.chromium.org/281513003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@273087 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
a dictionary
This changes from returning the response headers as a raw string to a dictionary mapping
header name to header value. If there are multiple headers with the same name, the values
are merged in a dictionary and separated by a ", ".
BUG=350755
Review URL: https://codereview.chromium.org/198463005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@259496 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
used for a given render process id. This special cookie store will then
be used for renderer messages pertaining to cookies, url fetches in net,
and websockets. If the special cookie store is NULL, a default cookie store
will be used.
Re-submit of https://codereview.chromium.org/188693003
See https://codereview.chromium.org/188693003 for reviewers/lgtm's.
Review URL: https://codereview.chromium.org/197043005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@256657 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This broke the Android builders. The try-bots on the CL did point
out the compile errors, but it was committed manually anyway. Logs:
http://build.chromium.org/p/chromium.linux/builders/Android%20Clang%20Builder%20%28dbg%29/builds/30977/steps/compile/logs/stdio
> Allow the content browser client to specify a special cookie store to be
> used for a given render process id. This special cookie store will then
> be used for renderer messages pertaining to cookies, url fetches in net,
> and websockets. If the special cookie store is NULL, a default cookie store
> will be used.
>
> R=erikwright@chromium.org, jam@chromium.org, lambroslambrou@chromium.org, mmenke@chromium.org, tyoshino@chromium.org
>
> Review URL: https://codereview.chromium.org/188693003
TBR=tburkard@chromium.org
Review URL: https://codereview.chromium.org/197463003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@256583 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
used for a given render process id. This special cookie store will then
be used for renderer messages pertaining to cookies, url fetches in net,
and websockets. If the special cookie store is NULL, a default cookie store
will be used.
R=erikwright@chromium.org, jam@chromium.org, lambroslambrou@chromium.org, mmenke@chromium.org, tyoshino@chromium.org
Review URL: https://codereview.chromium.org/188693003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@256579 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
This passes the response headers through to the API callback allowing the
application to access the headers without having to make an additional
http request.
BUG=303491
Review URL: https://codereview.chromium.org/185663002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@255593 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
Fix references to it to be 'text/plain'. Also one instance of 'plain/html'.
BUG=none
Review URL: https://codereview.chromium.org/178153002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@253646 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
| |
Fix lint errors too.
Review URL: https://codereview.chromium.org/166243002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@251505 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is part of attempting to get rid of MessageLoop::Type enum.
BUG=none
TEST=none
R=darin@chromium.org
Review URL: https://codereview.chromium.org/136683004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@244996 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
BUG=318450
TBR=benm@chromium.org,sky@chromium.org
Review URL: https://codereview.chromium.org/78343004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@237400 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is so that it is clearer what the intended initial priority of
a URLRequest is.
It is also needed so that we can later enforce that if a URLRequest
is set to ignore limits, it has MAXIMUM_PRIORITY; otherwise, we'd have
to mandate that SetPriority() is called before set_load_flags(), which
is fiddly.
Also standardize on a single URLRequest constructor.
BUG=166689
R=jam@chromium.org, jamesr@chromium.org, joth@chromium.org, mmenke@chromium.org, scottbyer@chromium.org, sky@chromium.org, tommi@chromium.org
Review URL: https://codereview.chromium.org/51953002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@232219 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
| |
BUG=240603
Review URL: https://chromiumcodereview.appspot.com/23726048
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@224586 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
To be used by XHR to abort partially constructed Stream.
https://codereview.chromium.org/18883002/
BUG=169957
Review URL: https://chromiumcodereview.appspot.com/23543002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@220009 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
| |
Review URL: https://chromiumcodereview.appspot.com/23159003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@219759 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Using this, StreamURLRequestJob aborts itself.
For now, this value will be used to deal with memory limit exceed.
data_bytes_read_ is moved using this opportunity since it's a part of temporary buffer consists of data_ and data_length_.
BUG=169957
Review URL: https://chromiumcodereview.appspot.com/22942003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@219170 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Stream instances report their memory usage to StreamRegistry to get
approval. If rejected, they unregisters themselves.
writer_ and reader_ are cleared immediately when memory usage
violation happens. Added task runner DCHECKs to ByteStreamReaderImpl
and ByteStreamWriterImpl so that we can check we're not violating
thread restriction.
BUG=169957
Review URL: https://chromiumcodereview.appspot.com/22908008
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@218933 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Check that once Stream::Finalize() is called and reader_ receives that,
reader_.ReadRawData() never returns STREAM_EMPTY.
Also removed unnecessary reader.Read() call.
BUG=272640
Review URL: https://chromiumcodereview.appspot.com/23007003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@217514 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Use return value of reader_->Read() call rather than depending on bytes_read
- More comments
- More DCHECKs
BUG=
Review URL: https://chromiumcodereview.appspot.com/23025002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@217481 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
This issue was found by a linter.
R=zork@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/23101002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@217476 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Some of existing IPCs and methods for Blob are renamed for readability.
Note
- raw data sending code in webblobregistry_impl.cc are duplicated intentionally
not to bother michaeln's refactoring
Bonus: Stopped over-optimization of sharing webkit_blob::BlobData::Item instances in webblobregistry_impl.cc
BUG=169957
Review URL: https://chromiumcodereview.appspot.com/15817013
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@215842 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Change status type to int to make it portable to other component.
After this change, ByteStream could be moved under src/net/base/ or
src/base directory.
- Comment fix (MaybePostToPeer -> Write)
BUG=169957
Review URL: https://chromiumcodereview.appspot.com/18284005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@215265 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Stream::security_origin_ is not used at all for now. There's no
established code in Chromium to do origin checking. Security of
Blob/Stream resource loading now depends on origin checking
mechanism in Blink.
Keeping this variable without having any checking mechanism
confuses developers. Remove it until we build origin checking code
in Chromium.
Also, rename security_origin to origin, as it's nothing but an origin
URL.
BUG=263342
Review URL: https://chromiumcodereview.appspot.com/19798012
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@213830 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
BUG=260807
TEST=none
TBR=ben@chromium.org
Review URL: https://chromiumcodereview.appspot.com/19618002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@212184 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
BUG=229660
TBR=darin@chromium.org
Review URL: https://codereview.chromium.org/18868005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@210626 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This upates calls to bound temporary objects to also use get().
While it has the same semantic equivalence to the existing code, this generally
represents a dangerous pattern - indeed, part of the whole motivation for this
change is to make this anti-pattern very visible to authors.
This change simply updates all of the call sites, to allow the "operator T*"
to be removed and preventing new instances. The existing instances will then be
reviewed for "suspicious" changes and updated to use/pass scoped_refptr<T>
rather than T*, as appropriate.
BUG=110610
TBR=darin
Review URL: https://codereview.chromium.org/15984016
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@205560 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
BUG=247723
TEST=none
TBR=ben@chromium.org
Review URL: https://chromiumcodereview.appspot.com/16625010
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@205435 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
This keeps the forwarding header, just updates all current callers.
BUG=
R=avi@chromium.org
Review URL: https://codereview.chromium.org/16514006
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@205306 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
infrastructure into net/.
TEST=
out/Debug/content_unittests --gtest_filter='*Stream*'
out/Debug/content_unittests --gtest_filter='*Blob*'
out/Debug/net_unittests
Review URL: https://chromiumcodereview.appspot.com/16120005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@204797 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
"operator T*"
Linux fixes
BUG=110610
TBR=darin
Review URL: https://chromiumcodereview.appspot.com/16294003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@203624 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Reverting revisions that rely on r198820 so to unbreak the build.
> Move sequenced_task_runner to base/task
>
> BUG=
> R=akalin@chromium.org
>
> Review URL: https://codereview.chromium.org/14927008
TBR=brettw@chromium.org
Review URL: https://codereview.chromium.org/14985007
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@198848 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
BUG=
R=akalin@chromium.org
Review URL: https://codereview.chromium.org/14927008
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@198844 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
BUG=236029
R=avi@chromium.org
Review URL: https://chromiumcodereview.appspot.com/14335017
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@198316 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
It's no longer providing value as the MSVC warning is disabled during compilation. Refer to bug for details.
BUG=234765
R=jam@chromium.org
Review URL: https://codereview.chromium.org/14386012
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@197206 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
In r174057, ajwong@ added support for implicit testing to scoped_ptr<>. Removes
these in content/.
BUG=232084
Review URL: https://codereview.chromium.org/14081010
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@194608 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch was generated by running the empty_string clang tool
across the Chromium Linux compilation database. Implicitly or
explicitly constructing std::string() with a "" argument is
inefficient as the caller needs to emit extra instructions to
pass an argument, and the constructor needlessly copies a byte
into internal storage. Rewriting these instances to simply call
the default constructor appears to save ~14-18 kilobytes on an
optimized release build.
BUG=none
Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=193020
Review URL: https://codereview.chromium.org/13145003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@193040 0039d316-1c4b-4281-b951-d872f2087c98
|