From e558ff82d3f37169fad4abd52200dc75651a3ab5 Mon Sep 17 00:00:00 2001 From: "asargent@chromium.org" Date: Thu, 23 Sep 2010 20:19:56 +0000 Subject: Add a launchApp method to extension management API. This makes it possible for new tab replacement extensions to recreate the same app launch experience as the built-in NTP (pinned tabs, launch containers, etc.) Also add the extension version to data we report about extensions via the management API. BUG=56325,55474 TEST=An extension using chrome.experimental.management.launchApp() should work to launch an app the same way that app gets launched from the built-in new tab page. Review URL: http://codereview.chromium.org/3381019 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@60334 0039d316-1c4b-4281-b951-d872f2087c98 --- .../management/launch_app/background.html | 1 + .../extensions/management/launch_app/manifest.json | 6 +++++ .../data/extensions/management/launch_app/test.js | 30 ++++++++++++++++++++++ .../extensions/management/packaged_app/main.html | 8 ++++++ .../management/packaged_app/manifest.json | 9 +++++++ .../management/simple_extension/manifest.json | 4 +++ 6 files changed, 58 insertions(+) create mode 100644 chrome/test/data/extensions/management/launch_app/background.html create mode 100644 chrome/test/data/extensions/management/launch_app/manifest.json create mode 100644 chrome/test/data/extensions/management/launch_app/test.js create mode 100644 chrome/test/data/extensions/management/packaged_app/main.html create mode 100644 chrome/test/data/extensions/management/packaged_app/manifest.json create mode 100644 chrome/test/data/extensions/management/simple_extension/manifest.json (limited to 'chrome/test') diff --git a/chrome/test/data/extensions/management/launch_app/background.html b/chrome/test/data/extensions/management/launch_app/background.html new file mode 100644 index 0000000..46f4d74 --- /dev/null +++ b/chrome/test/data/extensions/management/launch_app/background.html @@ -0,0 +1 @@ + diff --git a/chrome/test/data/extensions/management/launch_app/manifest.json b/chrome/test/data/extensions/management/launch_app/manifest.json new file mode 100644 index 0000000..a4813de --- /dev/null +++ b/chrome/test/data/extensions/management/launch_app/manifest.json @@ -0,0 +1,6 @@ +{ + "name": "Launch App test extension", + "version": "1", + "permissions": ["experimental"], + "background_page": "background.html" +} \ No newline at end of file diff --git a/chrome/test/data/extensions/management/launch_app/test.js b/chrome/test/data/extensions/management/launch_app/test.js new file mode 100644 index 0000000..dad2be4 --- /dev/null +++ b/chrome/test/data/extensions/management/launch_app/test.js @@ -0,0 +1,30 @@ +// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +if (!chrome.management) { + chrome.management = chrome.experimental.management; +} + +window.onload = function() { + chrome.management.getAll(function(items) { + for (var i in items) { + var item = items[i]; + if (item.name == "packaged_app") { + chrome.management.launchApp(item.id); + break; + } + if (item.name == "simple_extension") { + // Try launching a non-app extension, which should fail. + var expected_error = "Extension " + item.id + " is not an App"; + chrome.management.launchApp(item.id, function() { + if (chrome.extension.lastError && + chrome.extension.lastError.message == expected_error) { + chrome.test.sendMessage("got_expected_error"); + } + }); + } + } + }); +}; + diff --git a/chrome/test/data/extensions/management/packaged_app/main.html b/chrome/test/data/extensions/management/packaged_app/main.html new file mode 100644 index 0000000..1e23417 --- /dev/null +++ b/chrome/test/data/extensions/management/packaged_app/main.html @@ -0,0 +1,8 @@ + + +Hello World + + + diff --git a/chrome/test/data/extensions/management/packaged_app/manifest.json b/chrome/test/data/extensions/management/packaged_app/manifest.json new file mode 100644 index 0000000..08b94a6 --- /dev/null +++ b/chrome/test/data/extensions/management/packaged_app/manifest.json @@ -0,0 +1,9 @@ +{ + "name": "packaged_app", + "version": "0.1", + "app": { + "launch": { + "local_path": "main.html" + } + } +} diff --git a/chrome/test/data/extensions/management/simple_extension/manifest.json b/chrome/test/data/extensions/management/simple_extension/manifest.json new file mode 100644 index 0000000..99fe293 --- /dev/null +++ b/chrome/test/data/extensions/management/simple_extension/manifest.json @@ -0,0 +1,4 @@ +{ + "name": "simple_extension", + "version": "1" +} -- cgit v1.1