summaryrefslogtreecommitdiffstats
path: root/chrome/browser/extensions
Commit message (Collapse)AuthorAgeFilesLines
* Modify the incognito content script test to verify that a crash no longermpcomplete@chromium.org2010-02-121-10/+18
| | | | | | | | | | occurs with multiple extensions installed with varying incognito enabledness. See r38933 for the actual fix. Review URL: http://codereview.chromium.org/596101 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38967 0039d316-1c4b-4281-b951-d872f2087c98
* Implements the auto-translate on click: if you have translatedjcampan@chromium.org2010-02-121-10/+7
| | | | | | | | | | | | | | | a page and are navigating to a new page in the same language by clicking a link, the new page is automatically translated. In order to do that I moved the language state from the navigation entry to some dedicated class that each TabContents owns. Also added some basic unit-testing for good measure. BUG=35477 TEST=See bug steps. Run unit-tests. Review URL: http://codereview.chromium.org/596092 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38961 0039d316-1c4b-4281-b951-d872f2087c98
* Browser Action Container should not shrink when visible extension is disabled.finnur@chromium.org2010-02-124-6/+43
| | | | | | | | | | | | | | | We now calculate the visible actions before removing them from the vector so we can maintain the same number after deletion occurs. Also added unit tests and fixed a bug in GetTooltip where we were hard-coding the index to be 0. BUG=35349 TEST=Covered by new unit test. Review URL: http://codereview.chromium.org/606008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38959 0039d316-1c4b-4281-b951-d872f2087c98
* Clone of issue 577015.twiz@chromium.org2010-02-121-1/+18
| | | | | | | | | | | See http://codereview.chromium.org/577015 for the review status of this CL. BUG=None TEST=ExtensionApiTest.Popup Review URL: http://codereview.chromium.org/600101 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38927 0039d316-1c4b-4281-b951-d872f2087c98
* Initial work on making extensions work in incognito mode.mpcomplete@chromium.org2010-02-1112-21/+253
| | | | | | | | | | | | This merely adds a way to enable content scripts and browser actions in incognito windows. They still don't work properly because none of the APIs work with incognito tabs. The way to enable an extension is to add an "incognito" bit in the user prefs file. My plan is to add UI for this later. BUG=32365 Review URL: http://codereview.chromium.org/567037 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38852 0039d316-1c4b-4281-b951-d872f2087c98
* Fix spelling error on history transition type.brg@chromium.com2010-02-111-1/+1
| | | | | | | | | Also mark the history test as flaky. BUG=35430, 26296 TEST=ExtensionApiTest.FLAKY_History Review URL: http://codereview.chromium.org/601049 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38850 0039d316-1c4b-4281-b951-d872f2087c98
* CL implementing focus-dismissal of the chrome.experimental.popup set of ↵twiz@chromium.org2010-02-105-23/+119
| | | | | | | | | | | | | | | | | extension APIs. Specifically, these changes cause a displayed pop-up to be dismissed when the focus shifts away from both the pop-up view, and the extension-view that launched the pop-up.I had to do a lot of investigating and trial-and-error to converge to the solution present here. I was hoping to be able to piggy-back on the existing FocusManager's various listener routines, but because the pop-up is hosted in a BubbleWidget, which is a separate top-level window with its own focus manager, I could not rely on a given focus manager to take care of the focus change notifications. To get around the above issue, I added a new type of focus listener that can listen on native-window focus change events. I added invocations to this listener throughout the Widget classes in the system so that registered listeners will be notified on focus change. I found some of the focus change events problematic, as the system will arbitrarily reassign the focus to the main browser window when shifting activation between chrome windows. (SeefocusManagerWin::ClearNativeFocus). To prevent this focus bounce from confusing focus listeners, I added a means to suppress notification of focus change during these operations. I added GTK and Mac stubs for the new widget functions that will assert when called. GTK and Cocoa development is not my expertise, so I thought // TODO(port) would be wiser.I'm uncertain of the best means to unit-test these changes. Direction in this regard would be appreciated. BUG=None TEST=None Review URL: http://codereview.chromium.org/552167 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38685 0039d316-1c4b-4281-b951-d872f2087c98
* Make sure that ResourceQueue is shut down before destruction.phajdan.jr@chromium.org2010-02-103-373/+311
| | | | | | | | | | | | | Rewrite UserScriptListener unit test to not use ResourceDispatcherHost. Share more code with ExtensionsServiceTest. TEST=Covered by unit_tests. BUG=none Review URL: http://codereview.chromium.org/601005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38648 0039d316-1c4b-4281-b951-d872f2087c98
* Remove poll'n'loop code from extension_browsertest.cc.phajdan.jr@chromium.org2010-02-103-96/+71
| | | | | | | | | | | | Also use a common wait function from extension_browsertest in the page action popup test. BUG=34339 TEST=browser_tests Review URL: http://codereview.chromium.org/582013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38615 0039d316-1c4b-4281-b951-d872f2087c98
* Add basic tests for extension crash recovery.phajdan.jr@chromium.org2010-02-105-7/+183
| | | | | | | | | | | Also update the test infrastructure to support the required features. TEST=browser_tests BUG=30405 Review URL: http://codereview.chromium.org/572038 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38604 0039d316-1c4b-4281-b951-d872f2087c98
* Make it so that chrome.bookmarks.update can update the URL of a bookmark.arv@chromium.org2010-02-101-7/+26
| | | | | | | | | | | This changes the API slightly. Previously, if someone called update with an empty object ({}) it would set the title to "". This was only documented in the code and not on the API page. Now that we support updating both the url and title it seems more reasonable to ignore a missing title. BUG=34841 TEST=browser_tests.exe --gtest_filter=ExtensionApiTest.Bookmarks Review URL: http://codereview.chromium.org/591006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38555 0039d316-1c4b-4281-b951-d872f2087c98
* [Mac] Enables extension browser tests previously disabled for the mac due to ↵andybons@chromium.org2010-02-102-32/+8
| | | | | | | | | | lack of implementation. BUG=29898 TEST=Run ExtensionBrowserTest.* and PageActionPopupTest.* and make sure they all pass. Review URL: http://codereview.chromium.org/601011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38553 0039d316-1c4b-4281-b951-d872f2087c98
* [GTTF] Reduce header dependencies in chrome.phajdan.jr@chromium.org2010-02-097-2/+8
| | | | | | | | | BUG=none TEST=If it compiles it is perfect. Review URL: http://codereview.chromium.org/585008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38463 0039d316-1c4b-4281-b951-d872f2087c98
* Remove DirectoryWatcher and the only thing using it.phajdan.jr@chromium.org2010-02-093-69/+0
| | | | | | | | | | | | | DirectoryWatcher was problematic. We couldn't get it right on Linux, it can hit the disk on UI thread on Windows (Really Bad, tm). And finally, the UserScriptMaster didn't work right with it. TEST=Covered by unit_tests and browser_tests BUG=8968, 6051, 6080, 20832 Review URL: http://codereview.chromium.org/586010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38456 0039d316-1c4b-4281-b951-d872f2087c98
* Preserve order of extensions when they auto-update.finnur@chromium.org2010-02-084-5/+255
| | | | | | | | | | | Also added tests for the ExtensionToolbarModel. BUG=33401 TEST=ExtensionToolbarModelTest (new test). Review URL: http://codereview.chromium.org/587002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38407 0039d316-1c4b-4281-b951-d872f2087c98
* Update bug reference link in ExtensionApiTest.Toolstripphajdan.jr@chromium.org2010-02-081-1/+2
| | | | | | | | | | TBR=erikkay TEST=no code change BUG=30151, 35034 Review URL: http://codereview.chromium.org/580015 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38394 0039d316-1c4b-4281-b951-d872f2087c98
* Disable ExtensionApiTest.Toolstrip, crashy.phajdan.jr@chromium.org2010-02-081-6/+2
| | | | | | | | | | TBR=erikkay TEST=stop crashing BUG=30151 Review URL: http://codereview.chromium.org/588004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38391 0039d316-1c4b-4281-b951-d872f2087c98
* Export bookmark favicon (base64 encoded png). nkostylev@google.com2010-02-081-1/+1
| | | | | | | | | | | Code for importing icons from bookmarks HTML file is already in place. BUG=11362 TEST=Export bookmarks to HTML file, delete all existing bookmarks, import file. Review URL: http://codereview.chromium.org/543202 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38362 0039d316-1c4b-4281-b951-d872f2087c98
* Mark ExtensionApiTest.ExecuteScript DISABLED because it's not only flaky,phajdan.jr@chromium.org2010-02-081-3/+3
| | | | | | | | | | | | | | | but crashy and it has been ignored for weeks! It's EXTREMELY flaky, #1 flaky test of all time with over 600 flips in the last three weeks. This test seriously needs some love. TBR=rafaelw TEST=none BUG=28630 Review URL: http://codereview.chromium.org/574030 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38355 0039d316-1c4b-4281-b951-d872f2087c98
* Refactored out JS specific part of modal dialog stack into its own class, ↵zelidrag@chromium.org2010-02-051-1/+1
| | | | | | | | | | | exposed cookie/storage prompt as a modal dialog. BUG=32719 TEST=none, requires Darin to hook this with his code. Review URL: http://codereview.chromium.org/560030 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38268 0039d316-1c4b-4281-b951-d872f2087c98
* Add an extension API test to catch cookie regressions.mpcomplete@chromium.org2010-02-051-0/+4
| | | | | | | | BUG=34649 Review URL: http://codereview.chromium.org/573032 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38239 0039d316-1c4b-4281-b951-d872f2087c98
* Wires TabContents to app extensions.sky@chromium.org2010-02-052-2/+2
| | | | | | | | | BUG=32845 TEST=none Review URL: http://codereview.chromium.org/566032 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38212 0039d316-1c4b-4281-b951-d872f2087c98
* Implement launch disposition for extension-apps.rafaelw@chromium.org2010-02-051-0/+1
| | | | | | | | | | | | This change adds an --app-id command switch that signifies that the extension-app with the given id should be launched according to its configuration. It also adds parsing for app.window_type in the manifest and the behavior that when installed and a desktop shortcut is created, the --app-id switch is used rather than the --app switch. BUG=32361 Review URL: http://codereview.chromium.org/573016 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38184 0039d316-1c4b-4281-b951-d872f2087c98
* Use strict json formating in extension_uitest.rafaelw@chromium.org2010-02-041-10/+9
| | | | | | | | This is in anticipation of the new, strict, JSON.parse landing in v8. Review URL: http://codereview.chromium.org/560040 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38105 0039d316-1c4b-4281-b951-d872f2087c98
* Implement chrome.browserAction.setPopup().skerner@chromium.org2010-02-034-0/+114
| | | | | | | | | BUG=27526 TEST=Unit tests BrowserActionApiTest.BrowserAction*Popup . Review URL: http://codereview.chromium.org/552263 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38015 0039d316-1c4b-4281-b951-d872f2087c98
* Support reordering of Browser Actions within the container. Currently does ↵finnur@chromium.org2010-02-031-1/+5
| | | | | | | | | | | | | | not support dragging to/from the chevron menu. Also fixed two bugs in the same code: - the container would be 0 width if a value for it hasn't been saved (part of bug 32101). - the default icon was not used when a tab specific icon was not found (bug 34317). BUG=http://crbug.com/26990, http://crbug.com/32101, http://crbug.com/34317 TEST=In both LTR and RTL locale, try reordering the browser actions and make sure to test dragging to the ends with and without a chevron visible. Install Send to Gmail extension and make sure it has an icon while in the overflow menu. Review URL: http://codereview.chromium.org/549224 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37922 0039d316-1c4b-4281-b951-d872f2087c98
* Clean up bookmark manager extension api code a bit.arv@chromium.org2010-02-032-30/+46
| | | | | | | | | | | | | The macros used to verify the extension adds a return false but our function used to return a BookmarkNode*. I now changed this to a helper funciton that returns a pointer and NULL in the case of failure. I also added a GetBookmarkNodesFromArguments which returns a vector. BUG=None TEST=Bookmark manager copy/paste should still work. Review URL: http://codereview.chromium.org/561024 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37911 0039d316-1c4b-4281-b951-d872f2087c98
* Move repetive testing code into a method of the base class used for testing ↵skerner@chromium.org2010-02-024-37/+50
| | | | | | | | | | | extension actions. BUG=None TEST=Run unit tests that were altered. Review URL: http://codereview.chromium.org/558046 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37884 0039d316-1c4b-4281-b951-d872f2087c98
* Adjusts tab strip model to deal with app tabs. There were a couple ofsky@chromium.org2010-02-022-4/+2
| | | | | | | | | | | | | places where I left them using the variable with pinned when it should be app because those places need to be radically whacked. I'll do that next. BUG=32845 TEST=none yet Review URL: http://codereview.chromium.org/555173 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37880 0039d316-1c4b-4281-b951-d872f2087c98
* [Mac] Make the extension popup a singleton instance to avoid maintaining ↵andybons@chromium.org2010-02-021-3/+3
| | | | | | | | | | | | multiple pointer references to a class that, by design, can only have one popup open at a time. The bug fixed in this change has to do with PageActionView having a dirty pointer to a popup if it was closed via losing its key state. Once a notification like EXTENSION_HOST_VIEW_SHOULD_CLOSE was fired, then the PageActionView would assume the pointer was valid and call on dirty memory. TEST=none BUG=29492,33590 Review URL: http://codereview.chromium.org/561013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37873 0039d316-1c4b-4281-b951-d872f2087c98
* DevTools: fix TimelineApi test (followup fix for dispatchToApu rename).pfeldman@chromium.org2010-02-021-1/+1
| | | | | | | | TBR=knorton Review URL: http://codereview.chromium.org/560014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37831 0039d316-1c4b-4281-b951-d872f2087c98
* DevTools: Fixes Speed Tracer after message renames in r37251.pfeldman@chromium.org2010-02-021-1/+1
| | | | | | | | Original review: http://codereview.chromium.org/564006 TBR=knorton git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37828 0039d316-1c4b-4281-b951-d872f2087c98
* Get rid of check that caused redirects to fail extension updates.asargent@chromium.org2010-02-011-5/+1
| | | | | | | | | | | | | | | | | When the extension autoupdater downloads .crx files, we rely on the UrlFetcher class to do it for us. Inside OnCrxFetchComplete I had put a sanity check that the url we finished with was the same one we started with, but of course this breaks the case of redirects and wasn't needed because the API of UrlFetcher is that there's one UrlFetcher per outstanding fetch. BUG=26177 TEST=Extension Autoupdate should keep working normally, and work with redirects such as the example mentioned in the bug. Review URL: http://codereview.chromium.org/549215 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37718 0039d316-1c4b-4281-b951-d872f2087c98
* Relanding the hooking of the translate feature UI.jcampan@chromium.org2010-02-011-1/+1
| | | | | | | | See http://codereview.chromium.org/549217 Review URL: http://codereview.chromium.org/558065 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37688 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 37674 - Hooking the UI part to the translate feature.jcampan@chromium.org2010-01-311-1/+1
| | | | | | | | | Review URL: http://codereview.chromium.org/549217 TBR=jcampan@chromium.org Review URL: http://codereview.chromium.org/555195 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37675 0039d316-1c4b-4281-b951-d872f2087c98
* Hooking the UI part to the translate feature.jcampan@chromium.org2010-01-311-1/+1
| | | | | | Review URL: http://codereview.chromium.org/549217 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37674 0039d316-1c4b-4281-b951-d872f2087c98
* ExtensionInstalledBubble for Mac.mirandac@chromium.org2010-01-312-4/+45
| | | | | | | | | | Adds ExtensionInstalledBubble.xib, which contains the framework for the bubble itself (icon view, close button, and three message fields). BUG= 26974 TEST= Install an extension. Bubble should show same information as windows bubble. Review URL: http://codereview.chromium.org/527012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37671 0039d316-1c4b-4281-b951-d872f2087c98
* The upstream change to make popup shrinking work properly is a big project, ↵aa@chromium.org2010-01-311-2/+6
| | | | | | | | | | | so I'm doing a quick hack here so that we don't ship more builds with it broken. BUG=30291 TEST=Install news sample extension. Expand a section, then contract it. Popup should contract too. Review URL: http://codereview.chromium.org/556058 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37654 0039d316-1c4b-4281-b951-d872f2087c98
* Expose sortChildren to the bookmark manager extension API and use that from ↵arv@chromium.org2010-01-303-4/+24
| | | | | | | | | | | the bookmark manager. BUG=32194 TEST=browser_tests.exe --gtest_filter=ExtensionApiTest.BookmarkManager Review URL: http://codereview.chromium.org/551220 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37648 0039d316-1c4b-4281-b951-d872f2087c98
* Add an accessibility API for events raised outside of the web content.estade@chromium.org2010-01-307-0/+382
| | | | | | | | | | BUG=none TEST=none patch by Dominic Mazzoni <dmazzoni [at] google> review url: http://codereview.chromium.org/402099/show git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37597 0039d316-1c4b-4281-b951-d872f2087c98
* If an extension crashes or is killed by the task manager then reloaded, the ↵andybons@chromium.org2010-01-301-0/+7
| | | | | | | | | | | | info bar telling the user that the extension has crashed should disappear in ALL windows should the user choose to hit the 'reload' button. NOTE: If the user 'x's out the info bar, the bars in the other windows will remain. BUG=33396 TEST=none Review URL: http://codereview.chromium.org/548206 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37570 0039d316-1c4b-4281-b951-d872f2087c98
* Add clipboard hooks to the bookmark manager extension API.arv@chromium.org2010-01-293-19/+89
| | | | | | | | | | | | | | | | This adds the following functions: copy(idList) cut(idList) paste(parentId) canPaste(parentId, callback) BUG=32194 TEST=browser_tests.exe --gtest_filter=ExtensionApiTest.BookmarkManager Review URL: http://codereview.chromium.org/557050 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37569 0039d316-1c4b-4281-b951-d872f2087c98
* Replace the "origins" key in the manifest with "extent". The items in the ↵aa@chromium.org2010-01-291-1/+1
| | | | | | | | extent are URLPatterns, like other parts of the extension system. Review URL: http://codereview.chromium.org/552209 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37559 0039d316-1c4b-4281-b951-d872f2087c98
* A little more polish on the RSS extension.finnur@chromium.org2010-01-291-1/+1
| | | | | | | | | | | | | | | | | | | - Fix previewing of sites the contain html in the title. Example feed: http://code.google.com/feeds/p/chromium/updates/basic - The [ Feed ] link now links to the view-source, killing three birds with one stone (gives people access to raw feed, doesn't open the same feed again in a new tab and shows the feed url in the address bar so people don't have to right-click the link). - Make sure the title links we create don't show inline in the iframe by setting the target to _top. BUG=None TEST=None (already has feed parsing tests). Review URL: http://codereview.chromium.org/551201 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37537 0039d316-1c4b-4281-b951-d872f2087c98
* Enable apps to request the HTML5 notification permission.aa@chromium.org2010-01-281-2/+5
| | | | | | | | | | Note: the big change to chrome_url_request_context.h was mostly to swap the order of ChromeURLRequestContext and ChromeURLRequestContextGetter so that the latter could reference an inner struct of the former. BUG=32361 Review URL: http://codereview.chromium.org/545149 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37456 0039d316-1c4b-4281-b951-d872f2087c98
* Fix extension remove tab crasher.viettrungluu@chromium.org2010-01-281-1/+6
| | | | | | | | | BUG=30592 TEST=See bug (includes test extension). Try also on other platforms. See further posted notes. Review URL: http://codereview.chromium.org/554087 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37433 0039d316-1c4b-4281-b951-d872f2087c98
* Adds an experimental processes module to the extensions API.creis@chromium.org2010-01-286-0/+98
| | | | | | | | | | | | This first step adds only a Process object with an id, along with a getProcessForTab function. BUG=32303 TEST=browser_test.exe --gtest_filter=ExtensionAPITest.Processes Review URL: http://codereview.chromium.org/551090 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37411 0039d316-1c4b-4281-b951-d872f2087c98
* Refactor extension autoupdater.asargent@chromium.org2010-01-287-215/+415
| | | | | | | | | | | | | | | | | | | | | | | This includes two changes: 1) Stop sending the Omaha UID to the gallery in favor of a "ping" parameter included at most once per day in a update manifest fetch, indicating the number of days since the last time we sent the ping parameter. The calculation of this parameter is based on the offset from now to a value in the *previous* response from the server where it indicated it's notion of when that day had started. 2) Batch update manifest requests for extensions with the same update url. The server and protocol have supported this for a while but this is the first time we've added support in the client. BUG=b/2367191 TEST=Extension updates should still work normally. Review URL: http://codereview.chromium.org/558005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37383 0039d316-1c4b-4281-b951-d872f2087c98
* Allow extensions to add, remove, or change their page action popup.skerner@chromium.org2010-01-284-0/+122
| | | | | | | | | | | A similar change will be made for browser action popups. BUG=27526 TEST=Added unit tests. Manual testing on linux. Review URL: http://codereview.chromium.org/545068 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37353 0039d316-1c4b-4281-b951-d872f2087c98
* Add import/export extension apisfeldstein@chromium.org2010-01-287-2/+127
| | | | | | | | | | | This is a duplicate of 543094. That code review seems to have gotten corrupted as i can no longer publish anything from their web UI. It was LGTM'd+nits by arv, which i've fixed here. BUG=32194 TEST=Import and export bookmarks from the extension Review URL: http://codereview.chromium.org/548167 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37351 0039d316-1c4b-4281-b951-d872f2087c98