summaryrefslogtreecommitdiffstats
path: root/chrome/browser/resources/extensions
diff options
context:
space:
mode:
authorericdingle@chromium.org <ericdingle@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-02-02 01:58:09 +0000
committerericdingle@chromium.org <ericdingle@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-02-02 01:58:09 +0000
commit9860c68b6cba0cdeed285276e96356a3acfb08e6 (patch)
tree80cac02cbe8fc2af1c2b6badefacff7465c161e0 /chrome/browser/resources/extensions
parentd98f697a09b1eab58701d7d0e69275ee7f375104 (diff)
downloadchromium_src-9860c68b6cba0cdeed285276e96356a3acfb08e6.zip
chromium_src-9860c68b6cba0cdeed285276e96356a3acfb08e6.tar.gz
chromium_src-9860c68b6cba0cdeed285276e96356a3acfb08e6.tar.bz2
Implementation of the Extension Activity Log UI behind a flag.
BUG=39802 TEST= Review URL: http://codereview.chromium.org/9234076 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@120146 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/resources/extensions')
-rw-r--r--chrome/browser/resources/extensions/extension_activity.css16
-rw-r--r--chrome/browser/resources/extensions/extension_activity.html53
-rw-r--r--chrome/browser/resources/extensions/extension_activity.js50
-rw-r--r--chrome/browser/resources/extensions/extension_list.js7
-rw-r--r--chrome/browser/resources/extensions/extensions.html2
5 files changed, 128 insertions, 0 deletions
diff --git a/chrome/browser/resources/extensions/extension_activity.css b/chrome/browser/resources/extensions/extension_activity.css
new file mode 100644
index 0000000..54ab2f0
--- /dev/null
+++ b/chrome/browser/resources/extensions/extension_activity.css
@@ -0,0 +1,16 @@
+/* Copyright (c) 2012 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. */
+
+body {
+ -webkit-padding-start: 0.67em;
+}
+
+#extension-activity-list {
+ -webkit-padding-before: 0.67em;
+}
+
+.extension-activity-time,
+.extension-activity-label {
+ -webkit-padding-end: 10px;
+}
diff --git a/chrome/browser/resources/extensions/extension_activity.html b/chrome/browser/resources/extensions/extension_activity.html
new file mode 100644
index 0000000..286b814
--- /dev/null
+++ b/chrome/browser/resources/extensions/extension_activity.html
@@ -0,0 +1,53 @@
+<!DOCTYPE html>
+<html i18n-values="dir:textdirection;">
+<head>
+<meta charset="utf-8">
+
+<link rel="stylesheet" href="extensions.css">
+<link rel="stylesheet" href="extension_activity.css">
+<link rel="stylesheet" href="../shared/css/chrome_shared2.css">
+
+<script src="chrome://resources/js/cr.js"></script>
+<script src="chrome://resources/js/i18n_template.js"></script>
+<script src="chrome://resources/js/util.js"></script>
+
+<script src="chrome://extension-activity/strings.js"></script>
+<script src="chrome://extension-activity/extension_activity.js"></script>
+
+</head>
+
+<body>
+
+<div id="extension-activity">
+ <h1 i18n-content="extensionActivity"></h1>
+ <div class="extension-list-item">
+ <div class="extension-details">
+ <div>
+ <span class="extension-title"></span>
+ <span class="extension-version"></span>
+ </div>
+ <p class="extension-description"></p>
+ </div>
+ </div>
+ <div id="extension-activity-list"></div>
+</div>
+
+<div id="template-collection" hidden>
+ <div class="extension-activity-labels">
+ <!-- The indices here match the activity enum defined in
+ chrome/browser/extensions/extension_activity_log.h -->
+ <span class="extension-activity-label-0"
+ i18n-content="extensionActivityApiCall"></span>
+ <span class="extension-activity-label-1"
+ i18n-content="extensionActivityApiBlock"></span>
+ </div>
+
+ <div class="extension-activity-item">
+ <span class="extension-activity-time"></span>
+ <span class="extension-activity-label"></span>
+ <span class="extension-activity-message"></span>
+ </div>
+</div>
+
+</body>
+</html>
diff --git a/chrome/browser/resources/extensions/extension_activity.js b/chrome/browser/resources/extensions/extension_activity.js
new file mode 100644
index 0000000..c384660f
--- /dev/null
+++ b/chrome/browser/resources/extensions/extension_activity.js
@@ -0,0 +1,50 @@
+// Copyright (c) 2012 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.
+
+cr.define('extension_activity', function() {
+ 'use strict';
+
+ function initialize() {
+ i18nTemplate.process(document, templateData);
+
+ var params = parseQueryParams(location);
+ if (params.extensionId)
+ chrome.send('requestExtensionData', [params.extensionId]);
+ }
+
+ function handleExtensionData(result) {
+ var extension = result.extension;
+
+ var item = document.querySelector('.extension-list-item');
+ item.style.backgroundImage = 'url(' + extension.icon + ')';
+ item.querySelector('.extension-title').textContent = extension.name;
+ item.querySelector('.extension-version').textContent = extension.version;
+ item.querySelector('.extension-description').textContent =
+ extension.description;
+ }
+
+ function handleExtensionActivity(result) {
+ var template = $('template-collection');
+
+ var item =
+ template.querySelector('.extension-activity-item').cloneNode(true);
+ item.querySelector('.extension-activity-time').textContent =
+ new Date().toLocaleTimeString();
+ item.querySelector('.extension-activity-label').textContent =
+ template.querySelector('.extension-activity-label-' + result.activity)
+ .textContent;
+ item.querySelector('.extension-activity-message').textContent =
+ result.message;
+
+ $('extension-activity-list').appendChild(item);
+ }
+
+ return {
+ initialize: initialize,
+ handleExtensionData: handleExtensionData,
+ handleExtensionActivity: handleExtensionActivity
+ };
+});
+
+document.addEventListener('DOMContentLoaded', extension_activity.initialize);
diff --git a/chrome/browser/resources/extensions/extension_list.js b/chrome/browser/resources/extensions/extension_list.js
index 0da6cc0..e8bb8c1 100644
--- a/chrome/browser/resources/extensions/extension_list.js
+++ b/chrome/browser/resources/extensions/extension_list.js
@@ -147,6 +147,13 @@ cr.define('options', function() {
e.preventDefault();
});
+ if (extension.allow_activity) {
+ var activity = node.querySelector('.activity-link');
+ activity.href = 'chrome://extension-activity?extensionId=' +
+ extension.id;
+ activity.hidden = false;
+ }
+
// The 'View in Web Store' checkbox.
if (extension.homepageUrl) {
var store = node.querySelector('.store-link');
diff --git a/chrome/browser/resources/extensions/extensions.html b/chrome/browser/resources/extensions/extensions.html
index f828ada..5bd3e7d 100644
--- a/chrome/browser/resources/extensions/extensions.html
+++ b/chrome/browser/resources/extensions/extensions.html
@@ -110,6 +110,8 @@
</label>
<a class="options-link" i18n-content="extensionSettingsOptions"
href="#"></a>
+ <a class="activity-link" i18n-content="extensionSettingsActivity"
+ href="#" hidden></a>
<a class="store-link" i18n-content="extensionSettingsVisitWebsite"
target="_parent" hidden></a>
<a class="reload-link" i18n-content="extensionSettingsReload"