summaryrefslogtreecommitdiffstats
path: root/chrome/renderer/resources
Commit message (Collapse)AuthorAgeFilesLines
* Use a global counter for context menu IDs.bolms@chromium.org2011-03-291-2/+3
| | | | | | | | | BUG=51436 TEST=Create an extension which creates context menu items from multiple contexts (background page+popup, for example). Both contexts should be able to add context menu items. Review URL: http://codereview.chromium.org/6715011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@79695 0039d316-1c4b-4281-b951-d872f2087c98
* Wired local file system support for File API. The local file system provider ↵zelidrag@chromium.org2011-03-252-0/+14
| | | | | | | | | | | | | | | currently exists for ChromeOS builds only. This CL exposes new extension permission 'fileSystem' that controls access to individual local file system elements from 3rd party extensions. Another new permission 'fileBrowserPrivate' controls access to following API call that retrieves root DOMFileSystem instance for locally exposed folders:  chrome.fileBrowserPrivate.requestLocalFileSystem(callback) BUG=chromium-os:11983 TEST=ExtensionApiTest.LocalFileSystem Review URL: http://codereview.chromium.org/6519040 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@79451 0039d316-1c4b-4281-b951-d872f2087c98
* Added extensions API to provide customization values.altimofeev@chromium.org2011-03-241-0/+1
| | | | | | | | | | | | This CL adds API that could be used only by component extensions. Currently, API only returns device's HWID. BUG=chromium-os:13076 TEST=browser_tests Review URL: http://codereview.chromium.org/6681038 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@79264 0039d316-1c4b-4281-b951-d872f2087c98
* Extensions: expose raw debugging protocol via extension API.pfeldman@chromium.org2011-03-171-0/+1
| | | | | | | | | BUG= TEST= Review URL: http://codereview.chromium.org/6686051 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@78593 0039d316-1c4b-4281-b951-d872f2087c98
* Exposing extension preferences via the `chrome.extension` API.bauerb@chromium.org2011-03-161-0/+2
| | | | | | | | | | | `chrome.extension.isAllowedIncognitoAccess` gives access to `chrome://extension`'s "Allowed in Incognito" checkbox's state, and `chrome.extension.isAllowedFileSchemeAccess` does the same for "Allow access to File URLs". Patch by Mike West <mkwst@google.com>. BUG=74694 TEST=Create an extension that checks whether 'Allow in Incognito' or 'Allow access to File URLs' is checked. It should work correctly. git-svn-id: svn://svn.chromium.org/chrome/trunk/src@78347 0039d316-1c4b-4281-b951-d872f2087c98
* Use PreferenceTransformerInterface in extension preference APIs.bauerb@chromium.org2011-03-151-8/+4
| | | | | | | | | | | This allows us to get rid of custom preference API functions for the proxy extension API. BUG=73994 TEST=ProxyApiTest.*:ExtensionApiTest.* Review URL: http://codereview.chromium.org/6683002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@78197 0039d316-1c4b-4281-b951-d872f2087c98
* Fix Port and Event leaking.jstritar@chromium.org2011-03-143-18/+54
| | | | | | | | | BUG=67344 TEST=See bug. Review URL: http://codereview.chromium.org/6670001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@78036 0039d316-1c4b-4281-b951-d872f2087c98
* Add ability to find out whether an extension pref value is coming from ↵bauerb@chromium.org2011-03-092-4/+6
| | | | | | | | | | | | | | | incognito preferences. If the incognito flag in the request details is set, we now return an incognito parameter from experimental.preference.get that specifies whether the value is coming from the incognito preferences or the regular ones. Also, return an error if an extension that isn't enabled in incognito mode is trying to access incognito preferences. BUG=73994 TEST=ExtensionApiTest.* Review URL: http://codereview.chromium.org/6628081 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@77465 0039d316-1c4b-4281-b951-d872f2087c98
* Implement blocking for webRequest.onBeforeRequest extension event.mpcomplete@chromium.org2011-03-082-5/+26
| | | | | | | | | | | | | I did some measurements with a Release build of chrome, both manually and via the page cycler tests. It seems that a simple empty blocking event listener can add anywhere from a 1 to 30ms delay to request times, largely depending on how many requests are in the queue (when many requests come at once, the last ones to be processed by the extension are delayed the longest). From page cycler data (on my local machine), the average increase in page load time seems to be around 6ms. This is independent of total page load time (which makes sense). BUG=60101 TEST=covered by apitests Review URL: http://codereview.chromium.org/6574049 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@77339 0039d316-1c4b-4281-b951-d872f2087c98
* Add error text and resolution suggestions for ERR_NAME_NOT_RESOLVED.mmenke@chromium.org2011-03-071-0/+9
| | | | | | | | | | | | | While this error can be caused by typos, it will be generally be replaced by a link doctor page in such cases, so the text focuses exclusively on networking issues. BUG=74567 TEST=manual Review URL: http://codereview.chromium.org/6624024 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@77188 0039d316-1c4b-4281-b951-d872f2087c98
* Remove border and shrink heading of network error page when in a subframe.mmenke@chromium.org2011-03-041-10/+44
| | | | | | | | | BUG=74726 TEST=manual Review URL: http://codereview.chromium.org/6588133 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@76936 0039d316-1c4b-4281-b951-d872f2087c98
* Implementation of 'clear' for preference settings in extension preference apibattre@chromium.org2011-02-241-0/+8
| | | | | | | | | BUG=73387 TEST=browser_tests --gtest_filter=ExtensionApiTest.ContentSettingsClear Review URL: http://codereview.chromium.org/6546015 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@75877 0039d316-1c4b-4281-b951-d872f2087c98
* Migrated Proxy Settings API to mechanisms of Content Settings APIbattre@chromium.org2011-02-241-10/+11
| | | | | | | | | BUG=73295 TEST=execute ProxySettingsApiTest.* browser_tests Review URL: http://codereview.chromium.org/6531036 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@75875 0039d316-1c4b-4281-b951-d872f2087c98
* Implement experimental.contentSettings.misc.blockThirdPartyCookies.bauerb@chromium.org2011-02-242-6/+69
| | | | | | | | | | | This adds a Preference class to the extension APIs that can be used for access to other preferences in the future. BUG=71067 TEST=ExtensionApiTest.ContentSettings:ExtensionApiTest.IncognitoContentSettings Review URL: http://codereview.chromium.org/6480033 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@75866 0039d316-1c4b-4281-b951-d872f2087c98
* Reduce size of all PNGs with pngcrush.estade@chromium.org2011-02-181-0/+0
| | | | | | | | | BUG=73100 TEST=trybots Review URL: http://codereview.chromium.org/6538008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@75434 0039d316-1c4b-4281-b951-d872f2087c98
* Retrying r74887: Add plumbing to webRequest API to support event filtering.mpcomplete@chromium.org2011-02-151-2/+66
| | | | | | | | | | | | | | This introduces a new kind of event (WebRequestEvent) to handle the extra parameters to addListener. Behind the scenes, adding a listener creates a unique sub-event associated with that set of filter+extraInfo parameters. When we dispatch the event, we dispatch only those sub-events that match the required filters. Original CL: http://codereview.chromium.org/6250152/ This time I fixed the linux compile. BUG=60101 TEST=no Review URL: http://codereview.chromium.org/6528005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@74902 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 74887 - Add plumbing to webRequest API to support event filtering.mpcomplete@chromium.org2011-02-151-66/+2
| | | | | | | | | | | | | | This introduces a new kind of event (WebRequestEvent) to handle the extra parameters to addListener. Behind the scenes, adding a listener creates a unique sub-event associated with that set of filter+extraInfo parameters. When we dispatch the event, we dispatch only those sub-events that match the required filters. BUG=60101 TEST=no Review URL: http://codereview.chromium.org/6250152 TBR=mpcomplete@chromium.org Review URL: http://codereview.chromium.org/6526007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@74889 0039d316-1c4b-4281-b951-d872f2087c98
* Add plumbing to webRequest API to support event filtering.mpcomplete@chromium.org2011-02-151-2/+66
| | | | | | | | | | | This introduces a new kind of event (WebRequestEvent) to handle the extra parameters to addListener. Behind the scenes, adding a listener creates a unique sub-event associated with that set of filter+extraInfo parameters. When we dispatch the event, we dispatch only those sub-events that match the required filters. BUG=60101 TEST=no Review URL: http://codereview.chromium.org/6250152 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@74887 0039d316-1c4b-4281-b951-d872f2087c98
* Removing the experimental Chrome extension popup API. This API will not be ↵twiz@chromium.org2011-02-141-74/+0
| | | | | | | | | | | | | | | | | | added to the set of available extension APIs. I also removed some of the plumbing associated with the popup api: - Drop-shadow support removed from BrowserBubble. This had only been supported on Windows. - Removed the ExtensionPopup::PopupChrome type. Only popups from the popup API supported rectangle chrome. - Removed the activate-on-show parameter from ExtensionPopup. This was only used for the popup API. All popups activate on show, by default. - Removed the AddRef/Release magic from ExtensionPopup. The API required these semantics because of the complex, asynchronous lifetime management required by the popup API. See ExtensionPopup::Observer::ExtensionPopupClosed. - Removed unneeded methods from ExtensionPopup::Observer, and ExtensionFunctionDispatcher::Delegate. BUG=None TEST=None Review URL: http://codereview.chromium.org/6334101 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@74835 0039d316-1c4b-4281-b951-d872f2087c98
* Implementation of getCurrentProxySettings for proxy settings API.battre@chromium.org2011-02-141-0/+34
| | | | | | | | | BUG=71666 TEST=none Review URL: http://codereview.chromium.org/6468002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@74807 0039d316-1c4b-4281-b951-d872f2087c98
* Fix ancient bug in json_schema.js that would incorrectlyaa@chromium.org2011-02-081-2/+1
| | | | | | | | | | | | | classify arrays from other js contexts. The funny thing is that I remember feeling weird about having this special case when I first wrote the code. BUG=72267 Review URL: http://codereview.chromium.org/6463002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@74186 0039d316-1c4b-4281-b951-d872f2087c98
* Revert "First steps towards webRequest extension API."mpcomplete@chromium.org2011-01-311-64/+3
| | | | | | | | | | | | | | | Seems to have broken the sync_integration_tests. This reverts commit d6f8d16cd6a5ebdf019c4755e7d42aee8136abf1. TBR=aa BUG=60101 TEST=no Review URL: http://codereview.chromium.org/6287029 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@73219 0039d316-1c4b-4281-b951-d872f2087c98
* First steps towards webRequest extension API.mpcomplete@chromium.org2011-01-311-3/+64
| | | | | | | | | | | | Only an asynchronous version of onBeforeRequest is implement, with limited data being passed. BUG=60101 TEST=no Review URL: http://codereview.chromium.org/6288014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@73196 0039d316-1c4b-4281-b951-d872f2087c98
* Spruce up close buttons for blocked/click-to-play plugins.bauerb@chromium.org2011-01-312-9/+35
| | | | | | | | | | | The close buttons now look like in chrome://settings: Light by default, dark on hover and even darker when clicked. And they have a tooltip. BUG=63695 TEST=none Review URL: http://codereview.chromium.org/6308023 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@73142 0039d316-1c4b-4281-b951-d872f2087c98
* Add hide icon on the click-to-play UI too.cevans@chromium.org2011-01-261-1/+19
| | | | | | | | BUG=63695 TEST=see bug Review URL: http://codereview.chromium.org/6354025 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72699 0039d316-1c4b-4281-b951-d872f2087c98
* Add an "x" to remove the blocked plug-in placeholder. The feature alreadycevans@chromium.org2011-01-151-1/+10
| | | | | | | | | | | | | exists in the context menu, but now it works well enough to promote to the main placeholder UI. BUG=63695 TEST=see bug Review URL: http://codereview.chromium.org/5275007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@71528 0039d316-1c4b-4281-b951-d872f2087c98
* Start counting at 1 for extension API validation.jochen@chromium.org2011-01-071-2/+2
| | | | | | | | | BUG=none TEST=none Review URL: http://codereview.chromium.org/6153002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@70774 0039d316-1c4b-4281-b951-d872f2087c98
* Update the HTML source to use the CSS3 syntax for gradients.arv@chromium.org2011-01-053-10/+5
| | | | | | | | | BUG=None TEST=None Review URL: http://codereview.chromium.org/6079010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@70528 0039d316-1c4b-4281-b951-d872f2087c98
* Extend the TTS extension API to allow an extension to register itself asdmazzoni@chromium.org2010-12-231-2/+16
| | | | | | | | | | | a TTS provider. BUG=none TEST=Adds new test. Review URL: http://codereview.chromium.org/4161007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@70062 0039d316-1c4b-4281-b951-d872f2087c98
* Unify strings for click-to-play, blocked plugins and outdated plugins.bauerb@chromium.org2010-12-172-30/+28
| | | | | | | | | | | Screenshots: http://www.dropmocks.com/mNkqe BUG=47731 TEST=none Review URL: http://codereview.chromium.org/5857007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@69520 0039d316-1c4b-4281-b951-d872f2087c98
* Remove CSS vendor prefixes where not needed.arv@chromium.org2010-12-082-2/+2
| | | | | | | | | | | | | | | | | | | The following css properties where updated. -webkit-background-size -webkit-box-sizing -webkit-border-radius -webkit-border-top-left-radius -webkit-border-top-right-radius -webkit-border-bottom-left-radius -webkit-border-bottom-right-radius BUG=None TEST=None Review URL: http://codereview.chromium.org/5672001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@68637 0039d316-1c4b-4281-b951-d872f2087c98
* Replace 'descriptionStyles' in omnibox API with a simple xmlaa@chromium.org2010-11-301-19/+80
| | | | | | | | | | | syntax. This should make it a bit easier to use. BUG=64539 TEST=n/a Review URL: http://codereview.chromium.org/5271009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67687 0039d316-1c4b-4281-b951-d872f2087c98
* CL adding a 'maxSize' parameter to the experimental popup extension API. twiz@google.com2010-11-261-1/+14
| | | | | | | | | | | | | Callers can use this optional argument to allow for popups larger than than the default 800x600 size. Note that the implementation makes minimal changes to the existing popup code, and relies on use of the ExtensionPopupObserver to install the max size settings. TEST=ExtensionApiTest.Popup BUG=none Review URL: http://codereview.chromium.org/5254007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67465 0039d316-1c4b-4281-b951-d872f2087c98
* Use a tooltip for the plugin name. Really useful for click-to-play when thecevans@chromium.org2010-11-242-3/+3
| | | | | | | | | | | plugin rectangle is small. BUG=49832 TEST=NONE Review URL: http://codereview.chromium.org/5378001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67330 0039d316-1c4b-4281-b951-d872f2087c98
* Include a bit more information on which plugin is involved. Also use acevans@chromium.org2010-11-242-3/+5
| | | | | | | | | | | | | slightly less common cursor in the click-to-play case. The "version" string isn't giving me much of use (Linux); the version, if present, seems to be tagged into the name. So this seems like a nice balance. BUG=49832 TEST=NONE Review URL: http://codereview.chromium.org/5323001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67280 0039d316-1c4b-4281-b951-d872f2087c98
* Modify neterror.html so that it can handle errors withoutmmenke@chromium.org2010-11-202-84/+4
| | | | | | | | | | | | | | | any details. Remove error_no_details.html, as it's no longer needed. Only issues were using i18n-content for the details and a little extra whitespace. BUG=59096 TEST=manual Review URL: http://codereview.chromium.org/5191004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@66888 0039d316-1c4b-4281-b951-d872f2087c98
* De-experimentalify omnibox extension API.mpcomplete@chromium.org2010-11-182-8/+6
| | | | | | | | | BUG=61547 TEST=covered by unit tests Review URL: http://codereview.chromium.org/5101001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@66562 0039d316-1c4b-4281-b951-d872f2087c98
* Fix up new error page a little.mmenke@chromium.org2010-11-161-7/+36
| | | | | | | | | | | | | | | | | | | | | | | | Use solid background rather than a gradient when using 16-bit color. Long URLs will be wrapped on multiple lines, rather than extending beyond the box boundaries. While other text can still theoretically extend beyond the boundaries, a min-width attribute makes it less likely. A "fixed" background fixes background issues when scrolling left/right with a narrow browser window. Still need to apply the changes to a couple other less common error pages, but holding off for a bit more feedback before that. BUG=59096 TEST=manual Review URL: http://codereview.chromium.org/4808001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@66272 0039d316-1c4b-4281-b951-d872f2087c98
* Sets lastError when trying to connect or send a request to an invalid extension.jstritar@chromium.org2010-11-121-4/+8
| | | | | | | | | BUG=61998 TEST=ExtensionApiTest.Messaging Review URL: http://codereview.chromium.org/4708006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@65977 0039d316-1c4b-4281-b951-d872f2087c98
* Error text for "ERR_ADDRESS_UNREACHABLE", which can be caused by almostmmenke@chromium.org2010-11-122-0/+18
| | | | | | | | | | | | | | | | | everything under the sun (And maybe sunspots as well). Also restructured firewall and proxy issue resolution steps, so can be reused for different errors, like ERR_ADDRESS_UNREACHABLE, coincidentally. Also bold the "OK" in instructions for diagnosing network disconnected error under XP. BUG=62073 TEST=manual Review URL: http://codereview.chromium.org/4813001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@65949 0039d316-1c4b-4281-b951-d872f2087c98
* Allow an extension to dynamically set extra data in its update URL, in orderrogerta@chromium.org2010-11-121-1/+2
| | | | | | | | | | | | to communicate dynamic information to its update server if needed. BUG=none TEST=Make sure that existing extensions that do no set any extra data are not adversely affected. Review URL: http://codereview.chromium.org/4725002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@65946 0039d316-1c4b-4281-b951-d872f2087c98
* Revise the omnibox extension API so that specifying descriptionStyles is easier.mpcomplete@chromium.org2010-11-111-10/+6
| | | | | | | | | | | | Now each style has a range that it applies to. The styles can also overlap and be listed out of order. BUG=62385 TEST=covered by unit/browser tests Review URL: http://codereview.chromium.org/4660008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@65869 0039d316-1c4b-4281-b951-d872f2087c98
* Update the error page template to be a little prettier.mmenke@chromium.org2010-11-081-86/+68
| | | | | | | | | | | | | | | | | | | Based on a combination of the malware pages and the link doctor page. Also removes the "more details" expander. Inlines the details using a lighter font color instead. Screenshots: https://docs3.google.com/document/d/1GdqTtkl_gjWg1GYRNxBGToy63mwEHCAZlXGKHCk_wYw/edit?hl=en# BUG=59096 TEST=Manual Review URL: http://codereview.chromium.org/4464005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@65344 0039d316-1c4b-4281-b951-d872f2087c98
* 1. Fires port.onDisconnect if tabs.connect fails.jstritar@chromium.org2010-10-282-5/+23
| | | | | | | | | | | | 2. Throws an error in port.postMessage if the port has already been disconnected. 3. Sets lastError when tabs.sendRequest can't connect to the tab. BUG=27565, 32899 TEST=ExtensionApiTest Review URL: http://codereview.chromium.org/3676008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@64277 0039d316-1c4b-4281-b951-d872f2087c98
* Fix some tiny javascript lint errors.dmazzoni@chromium.org2010-10-271-11/+13
| | | | | | | | | BUG=none TEST=none Review URL: http://codereview.chromium.org/4203002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@64148 0039d316-1c4b-4281-b951-d872f2087c98
* Fix bug where we display 'undefined is unsupported' when tryingaa@chromium.org2010-10-261-3/+7
| | | | | | | | | | | | | to use unsuported Greasemonkey APIs. Classic JavaScript bug :( BUG= TEST= Review URL: http://codereview.chromium.org/4119003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@63920 0039d316-1c4b-4281-b951-d872f2087c98
* Part 2 of extension event refactor.mpcomplete@chromium.org2010-10-212-8/+5
| | | | | | | | | | | | | Extension events are no longer broadcast to an entire process. They are filtered by extension. This allows me to move the cross-incognito check into the browser, and remove a bunch of cruft associated with that. BUG=58214 TEST=no functional change Review URL: http://codereview.chromium.org/3775015 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@63448 0039d316-1c4b-4281-b951-d872f2087c98
* fix bookmarks API crash when handling invalid URLerikkay@chromium.org2010-10-111-2/+4
| | | | | | | | | | | also re-enable test on Windows (can't repro crashes) BUG=56945,45595 TEST=ExtensionApiTest.Bookmarks Review URL: http://codereview.chromium.org/3672003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@62170 0039d316-1c4b-4281-b951-d872f2087c98
* Change plugin content settings to three states: Allow, click-to-play, and block.bauerb@chromium.org2010-10-112-2/+2
| | | | | | | | | | | | | The click-to-play default setting says "Let me choose which plug-ins to run". XIB changes: Change the middle radio button label in plug-in default settings from IDS_PLUGINS_LOAD_SANDBOXED_RADIO to IDS_PLUGINS_ASK_RADIO. BUG=35316,56514,56270 TEST=ContentSettingsBubbleModelTest.*, mainly Review URL: http://codereview.chromium.org/3608007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@62146 0039d316-1c4b-4281-b951-d872f2087c98
* Relanding "Take extension 'management' API out of experimental."asargent@chromium.org2010-10-041-1/+1
| | | | | | | | | | | | | | | | | | | This includes the original code plus changes to 2 new files to fix a test that was failing: chrome/browser/resources/webstore_app/manifest.json chrome/test/data/extensions/api_test/extension_gallery_install/test.html Original review url was: http://codereview.chromium.org/3537010 BUG=56399 TEST=You should be able to write an extension using the management API. TBR=aa@chromium.org git-svn-id: svn://svn.chromium.org/chrome/trunk/src@61422 0039d316-1c4b-4281-b951-d872f2087c98