| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
| |
We decided it was slowing down startup too much.
BUG=99450
TEST=no
TBR=pam
Review URL: https://chromiumcodereview.appspot.com/9372090
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@123142 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
Also only start the lazy bg page on extension install (via dispatching the
onInstalled event).
BUG=81752
TEST=no
Review URL: https://chromiumcodereview.appspot.com/9383024
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@122133 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Moved all of the ordinal specific code in ExtensionPrefs to a new class
ExtensionSorting, also moved the related unit tests to an ExtensionSorting
unit test file.
There are no logic changes in this patch.
BUG=104973
TEST=The icons on the NTP should behave the same as before, with users able to
move them around and remember position.
Review URL: http://codereview.chromium.org/9021034
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@117490 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
SavePersistentPrefs calls to CommitPendingWrites.
TBR=ncarter@chromium.org
BUG=99306
TEST=none
Review URL: http://codereview.chromium.org/8198007
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@115829 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
Begins storing the ordinal values of icons on the NTP to the sync server. This change only adds values to the sync data, the changes are not loaded by the profiles yet.
BUG=61447
TEST=Extension and Apps should still sync without problems. There should be no change in the user experience.
Review URL: http://codereview.chromium.org/8114013
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@115140 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This application icon index values are being changed from ints to StringOrdinals to decrease the potential number of syncs required when icons are moved, by only needing to change 1 StringOrdinal instead of all the integers. This include extra data verification that helps prevent an out of memory crash present in the earlier submission attempt.
BUG=61447,107376
TEST=Open up an instance of chromium with multiple application icons and ensure
that icons can still have their page and order changed. There should be no
behaviour change.
Review URL: http://codereview.chromium.org/8936010
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@114440 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
StringOrdinal.
This application icon index values are being changed from ints to StringOrdinals to decrease the potential number of syncs required when icons are moved, by only needing to change 1 StringOrdinal instead of all the integers.
BUG=61447
TEST=Open up an instance of chromium with multiple application icons and ensure
that icons can still have their page and order changed. There should be no
behaviour change.
Review URL: http://codereview.chromium.org/8198003
TBR=csharp@chromium.org
Review URL: http://codereview.chromium.org/8898027
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@114257 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This application icon index values are being changed from ints to StringOrdinals to decrease the potential number of syncs required when icons are moved, by only needing to change 1 StringOrdinal instead of all the integers.
BUG=61447
TEST=Open up an instance of chromium with multiple application icons and ensure
that icons can still have their page and order changed. There should be no
behaviour change.
Review URL: http://codereview.chromium.org/8198003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@114083 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We're also syncing this value, which has the nice side effect of letting us get rid of the "setup done" boolean we were planning on using.
BUG=105682
TEST=Setting up app notifications should leave a "app_notif_client_id" key
in your Preferences file in the extensions section associated with the app
in question.
Review URL: http://codereview.chromium.org/8727024
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@112357 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
Component extensions and policy-installed extensions shouldn't be affected by the policy blacklist: The former are considered internal UI that happens to be part of an extension, and they should have first-class policy knobs if we want to disable them. For the latter, the admin specifying them is enough indication that they should be installed, and requiring them to explicitly white-listed in some cases is redundant.
BUG=chromium-os:16702, chromium-os:21281
TEST=On ChromeOS, configure ExtensionInstallBlacklist = * and load chrome://bookmarks
Review URL: http://codereview.chromium.org/8380006
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@107707 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
| |
- Whether notifications setup is done once already.
- Whether the user has disabled notifications.
Review URL: http://codereview.chromium.org/8399022
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@107692 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
BUG=100488
TBR=jam@chromium.org
Review URL: http://codereview.chromium.org/8315005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@105959 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
webRequest or webNavigation extensions are enabled.
[Relanding 105659. This will re-cause failures in chrome_frame_net_tests, to be fixed in the next CL.]
Add a webRequest extension API permission, used to tell when an extension uses that API and therefore wants to delay startup. Use the "tabs" warning for it.
Also clean up the UserScriptListener, which never released requests individually and so doesn't need to track them individually either, and makes the RequestQueue handle bulk releases by its delegates instead.
BUG=99450
TEST=unit_tests.exe --gtest_filter=NetworkDelayListenerTest.*
Review URL: http://codereview.chromium.org/8205001
TBR=pam@chromium.org
Review URL: http://codereview.chromium.org/8296017
TBR=pam@chromium.org
Review URL: http://codereview.chromium.org/8308003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@105686 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
webNavigation extensions are enabled.
[Failures in chrome_frame tests]
Add a webRequest extension API permission, used to tell when an extension uses that API and therefore wants to delay startup. Use the "tabs" warning for it.
Also clean up the UserScriptListener, which never released requests individually and so doesn't need to track them individually either, and makes the RequestQueue handle bulk releases by its delegates instead.
BUG=99450
TEST=unit_tests.exe --gtest_filter=NetworkDelayListenerTest.*
Review URL: http://codereview.chromium.org/8205001
TBR=pam@chromium.org
Review URL: http://codereview.chromium.org/8296017
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@105661 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
extensions are enabled.
Add a webRequest extension API permission, used to tell when an extension uses that API and therefore wants to delay startup. Use the "tabs" warning for it.
Also clean up the UserScriptListener, which never released requests individually and so doesn't need to track them individually either, and makes the RequestQueue handle bulk releases by its delegates instead.
BUG=99450
TEST=unit_tests.exe --gtest_filter=NetworkDelayListenerTest.*
Review URL: http://codereview.chromium.org/8205001
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@105659 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is an interim checkin. The added code is unreachable.
Remaining:
- Implement concept of orphaned extensions. Currently hardcoded false.
- Once GlobalError's view supports DOMView, enhance to allow selective
disabling of extensions.
- Add unit test for ExtensionGlobalError (though there isn't much to test).
- Get real UI layout and text. Currently placeholder text.
- Bug: extensions page opens in new window, not new tab.
- Bug: once we've determined that an alert needs to be displayed, the
alert doesn't actually display until the next window open. We ought
to add a different trigger. This might be a systemwide decision, so I'd
like sail's input.
BUG=94494
TEST=enhanced ExtensionPref unit tests.
Review URL: http://codereview.chromium.org/8202011
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@104782 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
It seems some past bug has left traces of itself in the prefs file: it saved page indexes for extensions that are not apps. This clears them.
BUG=98325
TEST=manual
Review URL: http://codereview.chromium.org/8159010
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@104611 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
The ExtensionPrefs injects extension controlled preferences into the general PrefService. This was only prevented if individual extensions were disabled but not if all extensions were disabled by the --disable-extensions command-line flag. This CL fixes this.
BUG=96766
TEST=no
Review URL: http://codereview.chromium.org/8060017
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@103477 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
BUG=92459
TEST=see bug
Review URL: http://codereview.chromium.org/7617004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@99729 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
BUG=none
TEST=manual
Review URL: http://codereview.chromium.org/7717012
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@98351 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
don't reposition the tiles since we always add the app at the end anyways.
Also, respect which page it's dropped on (instead of always adding to the first page).
BUG=93159
TEST=drag a most visited tile onto an apps page.
Review URL: http://codereview.chromium.org/7677032
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@97733 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This corrects an issue causing file URL access to default on for <all_urls> and file:/// permissions. We also revert all extension's "allow file access" flags to false since we can't distinguish between extensions that were installed with the bug present and those where the user clicked allow file access. Unpacked extensions will now have opt-in file access as well.
BUG=91577
TEST=ExtensionServiceTest.DefaultFileAccess
Review URL: http://codereview.chromium.org/7574017
TBR=jstritar@chromium.org
Review URL: http://codereview.chromium.org/7595005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@95820 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
This corrects an issue causing file URL access to default on for <all_urls> and file:/// permissions. We also revert all extension's "allow file access" flags to false since we can't distinguish between extensions that were installed with the bug present and those where the user clicked allow file access. Unpacked extensions will now have opt-in file access as well.
BUG=91577
TEST=ExtensionServiceTest.DefaultFileAccess
Review URL: http://codereview.chromium.org/7574017
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@95815 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
Silences some console spam in tests (or when manually loading an extension).
BUG=89227
TEST=reduced 'Bad or missing...' console spam for extension tests
Review URL: http://codereview.chromium.org/7346026
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@94612 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The permissions API lets extensions specify optional permissions in their manifest that they can request at run-time. It currently supports API permissions through a white-list. Host permissions will come later. This also fixes some clang errors from the previous attempt.
BUG=48119, 70466, 84507
TEST=*Extension*
Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=94288
Review URL: http://codereview.chromium.org/7432006
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@94326 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The permissions API lets extensions specify optional permissions in their manifest that they can request at run-time. It currently supports API permissions through a white-list. Host permissions will come later.
BUG=48119, 70466, 84507
TEST=*Extension*
Review URL: http://codereview.chromium.org/7432006
TBR=jstritar@chromium.org
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@94289 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
The permissions API lets extensions specify optional permissions in their manifest that they can request at run-time. It currently supports API permissions through a white-list. Host permissions will come later.
BUG=48119, 70466, 84507
TEST=*Extension*
Review URL: http://codereview.chromium.org/7432006
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@94288 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
R=estade@chromium.org
BUG=none
TEST=WebAppInfo.Bookmark,ExtensionTest.ExtraFlags,ExtensionPrefsFlags
Review URL: http://codereview.chromium.org/7410004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@94127 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
BUG=None
TEST=None
Review URL: http://codereview.chromium.org/7477008
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@94115 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
| |
http://code.google.com/p/chromium/issues/detail?id=85937
Review URL: http://codereview.chromium.org/7324009
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@92243 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
with a minor change to that code since libcros also uses base/values.h.
BUG=88666
TEST=none
Review URL: http://codereview.chromium.org/7259019
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@92208 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
BUG=none
TEST=ExtensionService*, ExtensionPrefs*
Review URL: http://codereview.chromium.org/7330029
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@92047 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
BUG=83657
TESt=no crash
Review URL: http://codereview.chromium.org/7275018
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@91555 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
BUG=84507
TEST=*Extension*
Review URL: http://codereview.chromium.org/7003098
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@90244 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
BUG=no
TEST=no
Review URL: http://codereview.chromium.org/7083022
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@88144 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
BUG=71067
TEST=none
Review URL: http://codereview.chromium.org/7088017
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@87891 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
BUG=no
TEST=no
Review URL: http://codereview.chromium.org/7065033
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@86713 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
ExtensionContentSettingsStore will eventually be used by the content settings extension API.
BUG=71067
TEST=unit tests
Review URL: http://codereview.chromium.org/6969062
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@86067 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
std::vector<URLPattern>
- Rename ExtensionExtent to URLPatternSet
- Refactor common/extensions/user_script.h, common/extensions/user_script.cc, common/extensions/file_browser_handler.h and common/extensions/file_browser_handler.cc so that they use URLPatternSet instead of std::vector<URLPattern>
- At many places rename std::vector<URLPattern> to URLPatternList, which is typedefed at common/extensions/url_pattern.h
- Rename URLPatternSet::ClearPaths() to URLPatternSet::ClearPatterns()
- Rename URLPatternSet::ContainsURL() to URLPatternSet::MatchesUrl()
BUG=72955
TEST=ExtensionManifestTest.FileBrowserHandlers, ExtensionUserScriptTest.*, ExtensionURLPatternTest.*
Review URL: http://codereview.chromium.org/7038029
Patch from Kentaro Hara <haraken@google.com>.
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@86060 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/6978001
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@84780 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
event.
The most recently installed extension wins. I have doubts this is the best
algorithm, but it is consistent with other systems in the extension code that
have to make precedence decisions.
BUG=60101
TEST=no
Review URL: http://codereview.chromium.org/6940004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@84483 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The concept was added to support syncing. Instead, made
SetIsIncognitoEnabled() work regardless of whether or not the extension
is installed.
BUG=72659
TEST=
Review URL: http://codereview.chromium.org/6904102
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@83457 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a prerequisite for sync being able to enable/disable an extension
before it's installed.
Removed obsolete TODO.
BUG=72659
TEST=
Review URL: http://codereview.chromium.org/6903121
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@83445 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
BUG=77914
TEST=none, trybots remain green
Review URL: http://codereview.chromium.org/6706017
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@81075 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
It would be good to also rename "external extension" to
something else, but this is a quick improvement.
TBR=mpcomplete@chromium.org
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@80493 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Move ExtensionWantsFileAccess static functions to Extension::wants_file_access
which is set as part of the Extension initialization process.
When file:/// access is granted/revoked, instead of storing that in a bit on the
UserScript (which didn't help with extension host permissions), we use that
to filter down the list of valid schemes for permissions/content script match
matterns. That way we don't have to manually exclude file:///* patterns at
various call sites (e.g. in UserScriptSlave).
BUG=76705
TEST=unit_tests
R=aa@chromium.org
Review URL: http://codereview.chromium.org/6772022
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@80213 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
raw_scoped_refptr_mismatch_checker.h
ref_counted.cc
ref_counted.h
ref_counted_memory.cc
ref_counted_memory.h
ref_counted_unittest.cc
scoped_callback_factory.h
scoped_comptr_win.h
scoped_handle.h
scoped_native_library.cc
scoped_native_library.h
scoped_native_library_unittest.cc
scoped_nsobject.h
scoped_open_process.h
scoped_ptr.h
scoped_ptr_unittest.cc
scoped_temp_dir.cc
scoped_temp_dir.h
scoped_temp_dir_unittest.cc
scoped_vector.h
singleton.h
singleton_objc.h
singleton_unittest.cc
linked_ptr.h
linked_ptr_unittest.cc
weak_ptr.cc
weak_ptr.h
weak_ptr_unittest.cc
BUG=None
TEST=Compile
Review URL: http://codereview.chromium.org/6714032
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@79524 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This change should have no impact on chrome's behavior.
Once all code paths that install an extension inform PendingExtensionManger that they are starting an install, we can correctly merge requests to install the same extension from multiple sources. This will remove two hacky checks to avoid install races we have seen on Chrome Os. It will also ensure that more hacks are not needed.
BUG=61000
TEST=ExtensionUpdaterTest.*:ExtensionServiceTest.*'
Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=79407
Review URL: http://codereview.chromium.org/6670055
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@79414 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
into its own class.
This change should have no impact on chrome's behavior.
Once all code paths that install an extension inform PendingExtensionManger that they are starting an install, we can correctly merge requests to install the same extension from multiple sources. This will remove two hacky checks to avoid install races we have seen on Chrome Os. It will also ensure that more hacks are not needed.
BUG=61000
TEST=ExtensionUpdaterTest.*:ExtensionServiceTest.*'
Review URL: http://codereview.chromium.org/6670055
TBR=skerner@chromium.org
Review URL: http://codereview.chromium.org/6730058
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@79410 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This change should have no impact on chrome's behavior.
Once all code paths that install an extension inform PendingExtensionManger that they are starting an install, we can correctly merge requests to install the same extension from multiple sources. This will remove two hacky checks to avoid install races we have seen on Chrome Os. It will also ensure that more hacks are not needed.
BUG=61000
TEST=ExtensionUpdaterTest.*:ExtensionServiceTest.*'
Review URL: http://codereview.chromium.org/6670055
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@79407 0039d316-1c4b-4281-b951-d872f2087c98
|