diff options
7 files changed, 47 insertions, 42 deletions
diff --git a/chrome/browser/extensions/extension_management_api.cc b/chrome/browser/extensions/extension_management_api.cc index 43f13f0..738c6cf 100644 --- a/chrome/browser/extensions/extension_management_api.cc +++ b/chrome/browser/extensions/extension_management_api.cc @@ -211,14 +211,21 @@ void ExtensionManagementEventRouter::Observe( } Profile* profile = Source<Profile>(source).ptr(); - Extension* extension = Details<Extension>(details).ptr(); CHECK(profile); - CHECK(extension); - ExtensionsService* service = profile->GetExtensionsService(); - bool enabled = service->GetExtensionById(extension->id(), false) != NULL; ListValue args; - args.Append(CreateExtensionInfo(*extension, enabled)); + if (event_name == events::kOnExtensionUninstalled) { + // TODO(akalin) - change this to get the id from UninstalledExtensionInfo + // when re-landing change to how we send the uninstall notification. + std::string extension_id = Details<Extension>(details).ptr()->id(); + args.Append(Value::CreateStringValue(extension_id)); + } else { + Extension* extension = Details<Extension>(details).ptr(); + CHECK(extension); + ExtensionsService* service = profile->GetExtensionsService(); + bool enabled = service->GetExtensionById(extension->id(), false) != NULL; + args.Append(CreateExtensionInfo(*extension, enabled)); + } std::string args_json; base::JSONWriter::Write(&args, false /* pretty_print */, &args_json); diff --git a/chrome/common/extensions/api/extension_api.json b/chrome/common/extensions/api/extension_api.json index edbfdc1..a566716d 100644 --- a/chrome/common/extensions/api/extension_api.json +++ b/chrome/common/extensions/api/extension_api.json @@ -4065,7 +4065,13 @@ "name": "onUninstalled", "description": "Fired when an app or extension has been uninstalled.", "type": "function", - "parameters": [{"name": "info", "$ref":"ExtensionInfo"}] + "parameters": [ + { + "name": "id", + "type": "string", + "description": "The id of the extension or app that was uninstalled." + } + ] }, { "name": "onEnabled", diff --git a/chrome/common/extensions/docs/experimental.management.html b/chrome/common/extensions/docs/experimental.management.html index 2e13052..5f316c9 100644 --- a/chrome/common/extensions/docs/experimental.management.html +++ b/chrome/common/extensions/docs/experimental.management.html @@ -1382,7 +1382,7 @@ <div class="summary"> <!-- Note: intentionally longer 80 columns --> - <span class="subdued">chrome.experimental.management.</span><span>onUninstalled</span><span class="subdued">.addListener</span>(function(<span>ExtensionInfo info</span>) <span class="subdued">{...}</span>); + <span class="subdued">chrome.experimental.management.</span><span>onUninstalled</span><span class="subdued">.addListener</span>(function(<span>string id</span>) <span class="subdued">{...}</span>); </div> <div class="description"> @@ -1395,7 +1395,7 @@ <div> <div> <dt> - <var>info</var> + <var>id</var> <em> <!-- TYPE --> @@ -1404,15 +1404,15 @@ <span class="optional" style="display: none; ">optional</span> <span class="enum" style="display: none; ">enumerated</span> <span id="typeTemplate"> - <span> - <a href="experimental.management.html#type-ExtensionInfo">ExtensionInfo</a> - </span> <span style="display: none; "> - <span> + <a> Type</a> + </span> + <span> + <span style="display: none; "> array of <span><span></span></span> </span> - <span>paramType</span> - <span></span> + <span>string</span> + <span style="display: none; "></span> </span> </span> ) @@ -1420,12 +1420,10 @@ </em> </dt> - <dd class="todo"> + <dd class="todo" style="display: none; "> Undocumented. </dd> - <dd style="display: none; "> - Description of this parameter from the json schema. - </dd> + <dd>The id of the extension or app that was uninstalled.</dd> <dd style="display: none; "> This parameter was added in version <b><span></span></b>. diff --git a/chrome/common/extensions/docs/experimental.sidebar.html b/chrome/common/extensions/docs/experimental.sidebar.html index b74d698..fb092eb 100644 --- a/chrome/common/extensions/docs/experimental.sidebar.html +++ b/chrome/common/extensions/docs/experimental.sidebar.html @@ -938,7 +938,7 @@ <dd class="todo" style="display: none; "> Undocumented. </dd> - <dd>'hidden' indicates sidebar is not defined for the specified tab (show was never called or hide() was called). Nothing is displayed for this sidebar.'shown' means sidebar is defined for the specified tab; mini tab is displayed for this sidebar. Sidebar UI is either collapsed or displaying a content of some other extension's sidebar.'active' indicates that sidebar is defined for the specified tab; sidebar UI is expanded and displaying this sidebar's content.</dd> + <dd>'hidden' indicates sidebar is not defined for the specified tab (show was never called or hide() was called). Nothing is displayed for this sidebar.<br>'shown' means sidebar is defined for the specified tab; mini tab is displayed for this sidebar. Sidebar UI is either collapsed or displaying a content of some other extension's sidebar.<br>'active' indicates that sidebar is defined for the specified tab; sidebar UI is expanded and displaying this sidebar's content.</dd> <dd style="display: none; "> This parameter was added in version <b><span></span></b>. diff --git a/chrome/common/extensions/docs/samples.json b/chrome/common/extensions/docs/samples.json index 1387679..f86db3f 100644 --- a/chrome/common/extensions/docs/samples.json +++ b/chrome/common/extensions/docs/samples.json @@ -74,6 +74,7 @@ "chrome.bookmarks.search": "bookmarks.html#method-search", "chrome.extension.onRequest": "extension.html#event-onRequest", "chrome.extension.getBackgroundPage": "extension.html#method-getBackgroundPage", + "chrome.experimental.management.launchApp": "experimental.management.html#method-launchApp", "chrome.pageAction.hide": "pageAction.html#method-hide", "chrome.experimental.omnibox.styleMatch": "experimental.omnibox.html#method-styleMatch", "chrome.experimental.sidebar.expand": "experimental.sidebar.html#method-expand", diff --git a/chrome/test/data/extensions/api_test/management/test/basics.js b/chrome/test/data/extensions/api_test/management/test/basics.js index c998ca3d..fdc1f7e 100644 --- a/chrome/test/data/extensions/api_test/management/test/basics.js +++ b/chrome/test/data/extensions/api_test/management/test/basics.js @@ -47,14 +47,11 @@ var tests = [ chrome.management.getAll(callback(function(items) { checkItem(items, "enabled_app", true, true); var enabled_app = getItemNamed(items, "enabled_app"); - chrome.management.setEnabled(enabled_app.id, false, function() { - assertNoLastError(); - chrome.management.getAll(function(items2) { - assertNoLastError(); + chrome.management.setEnabled(enabled_app.id, false, callback(function() { + chrome.management.getAll(callback(function(items2) { checkItem(items2, "enabled_app", false, true); - assertTrue(event_fired); - }); - }); + })); + })); })); }, @@ -66,14 +63,11 @@ var tests = [ chrome.management.getAll(callback(function(items) { checkItem(items, "disabled_extension", false, false); var disabled = getItemNamed(items, "disabled_extension"); - chrome.management.setEnabled(disabled.id, true, function() { - assertNoLastError(); - chrome.management.getAll(function(items2) { - assertNoLastError(); + chrome.management.setEnabled(disabled.id, true, callback(function() { + chrome.management.getAll(callback(function(items2) { checkItem(items2, "disabled_extension", true, false); - assertTrue(event_fired); - }); - }); + })); + })); })); } ]; diff --git a/chrome/test/data/extensions/api_test/management/test/uninstall.js b/chrome/test/data/extensions/api_test/management/test/uninstall.js index f425c8e..396619f 100644 --- a/chrome/test/data/extensions/api_test/management/test/uninstall.js +++ b/chrome/test/data/extensions/api_test/management/test/uninstall.js @@ -3,24 +3,23 @@ // found in the LICENSE file. function uninstall(name) { - listenOnce(chrome.management.onUninstalled, function(info) { - assertEq(info.name, name); + var expected_id; + listenOnce(chrome.management.onUninstalled, function(id) { + assertEq(expected_id, id); }); chrome.management.getAll(callback(function(items) { var old_count = items.length; var item = getItemNamed(items, name); - chrome.management.uninstall(item.id, function() { - assertNoLastError(); - chrome.management.getAll(function(items2) { - assertNoLastError(); + expected_id = item.id; + chrome.management.uninstall(item.id, callback(function() { + chrome.management.getAll(callback(function(items2) { assertEq(old_count - 1, items2.length); for (var i = 0; i < items2.length; i++) { assertFalse(items2[i].name == name); } - assertTrue(event_fired); - }); - }); + })); + })); })); } |