| Index: chrome/test/data/extensions/api_test/notification_provider/test_app/main.js
|
| diff --git a/chrome/test/data/extensions/api_test/notification_provider/test_app/main.js b/chrome/test/data/extensions/api_test/notification_provider/test_app/main.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..cada35f90ef6313f5c5fe089309ac0ffac21ce17
|
| --- /dev/null
|
| +++ b/chrome/test/data/extensions/api_test/notification_provider/test_app/main.js
|
| @@ -0,0 +1,172 @@
|
| +// Copyright (c) 2014 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.
|
| +
|
| +// Window initialization code. Set up event handlers.
|
| +window.addEventListener("load", function() {
|
| + // set up the event listeners.
|
| + chrome.notificationProvider.onCreated.addListener(notificationCreated);
|
| + chrome.notificationProvider.onUpdated.addListener(notificationUpdated);
|
| + chrome.notificationProvider.onCleared.addListener(notificationCleared);
|
| +});
|
| +
|
| +function displayImage(text, bitmap, div) {
|
| + var image = document.createElement("p");
|
| + image.appendChild(document.createTextNode(text));
|
| + var imageCanvas = document.createElement("canvas");
|
| + image.appendChild(imageCanvas);
|
| + div.appendChild(image);
|
| +
|
| + var imageContext = imageCanvas.getContext('2d');
|
| + imageCanvas.width = bitmap.width;
|
| + imageCanvas.height = bitmap.height;
|
| + var imagedata = imageContext.createImageData(bitmap.width,
|
| + bitmap.height);
|
| + var dataView = new Uint8Array(bitmap.data);
|
| + for (var i = 0; i < bitmap.width * bitmap.height * 4; i += 1) {
|
| + imagedata.data[i] = dataView[i];
|
| + }
|
| + imageContext.putImageData(imagedata, 0, 0);
|
| +}
|
| +
|
| +function addNotification(senderId, notificationId, details) {
|
| + var list = document.getElementById("notification_list");
|
| +
|
| + var div = document.createElement("div");
|
| + div.class = "notifications";
|
| + div.id = senderId + notificationId;
|
| +
|
| + line = document.createElement("br");
|
| + div.appendChild(line);
|
| +
|
| + // Create a close button.
|
| + var closeButton = document.createElement("button");
|
| + closeButton.class = "closeButtons";
|
| + var buttonText = document.createTextNode("close notificaiton");
|
| + closeButton.appendChild(buttonText);
|
| + div.appendChild(closeButton);
|
| + closeButton.addEventListener("click", function(){
|
| + clearNotification(senderId, notificationId)
|
| + }, false);
|
| +
|
| + // Display title.
|
| + var bold = document.createElement("b");
|
| + var title = document.createElement("p");
|
| + bold.appendChild(document.createTextNode(details.title));
|
| + title.appendChild(bold);
|
| + div.appendChild(title);
|
| +
|
| + // Display notification ID.
|
| + var id = document.createElement("p");
|
| + id.appendChild(document.createTextNode("Notification ID: " + notificationId));
|
| + div.appendChild(id);
|
| +
|
| + // Disply the type of notication.
|
| + var notType = document.createElement("p");
|
| + notType.appendChild(document.createTextNode("Type: " + details.type));
|
| + div.appendChild(notType);
|
| +
|
| + // Display the priority field of the notification.
|
| + var priority = document.createElement("p");
|
| + priority.appendChild(document.createTextNode("Priority: " +
|
| + details.priority));
|
| + div.appendChild(priority);
|
| +
|
| + // Display the message of the notification.
|
| + var message = document.createElement("p");
|
| + message.appendChild(document.createTextNode("Message: " + details.message));
|
| + div.appendChild(message);
|
| +
|
| + // Display the icon image of the notification.
|
| + displayImage("Icon: ", details.iconBitmap, div);
|
| +
|
| + // Display the context message of the notification if it has one.
|
| + if ("contextMessage" in details) {
|
| + var message = document.createElement("p");
|
| + message.appendChild(document.createTextNode("Message: " + details.message));
|
| + div.appendChild(message);
|
| + }
|
| +
|
| + // Display the progress of the notification if it has one.
|
| + if (details.type == "progress" && "progress" in details) {
|
| + var progress = document.createElement("p");
|
| + progress.appendChild(document.createTextNode("Progress: " +
|
| + details.progress));
|
| + div.appendChild(progress);
|
| + }
|
| +
|
| + // Display if the notification is clickable.
|
| + if ("isClickable" in details) {
|
| + var clickable = document.createElement("p");
|
| + clickable.appendChild(document.createTextNode("IsClickable: " +
|
| + details.isClickable));
|
| + div.appendChild(clickable);
|
| + }
|
| +
|
| + // Display the time the notification was created.
|
| + if ("eventTime" in details) {
|
| + var time = document.createElement("p");
|
| + time.appendChild(document.createTextNode("Event Time: " +
|
| + details.eventTime));
|
| + div.appendChild(time);
|
| + }
|
| +
|
| + // Display the list data of the notification if it's of list type.
|
| + if (details.type = "list" && "items" in details) {
|
| + for (var i = 0, size = details.items.length; i < size; i++) {
|
| + var item = document.createElement("p");
|
| + item.appendChild(document.createTextNode(
|
| + "Item " + (i+1) + ": " +
|
| + details.items[i].title + " - " +
|
| + details.items[i].message));
|
| + div.appendChild(item);
|
| + }
|
| + }
|
| +
|
| + // Display image of the notification if it's of image type.
|
| + if (details.type = "image" && "imageBitmap" in details) {
|
| + displayImage("Image: ", details.imageBitmap, div);
|
| + }
|
| +
|
| + // Display the buttons of the notification if it has some.
|
| + if ("buttons" in details) {
|
| + for (var i = 0, size = details.buttons.length; i < size; i++) {
|
| + var button = document.createElement("p");
|
| + button.appendChild(document.createTextNode(
|
| + "Button " + (i+1) + ": " + details.buttons[i].title));
|
| + div.appendChild(button);
|
| + if ("iconBitmap" in details.buttons[i]) {
|
| + displayImage("Button " + (i+1) + ": ",
|
| + details.buttons[i].iconBitmap,
|
| + div);
|
| + }
|
| + }
|
| + }
|
| +
|
| + div.appendChild(document.createElement("br"));
|
| + list.appendChild(div);
|
| +}
|
| +
|
| +function clearedCallback(ifCleared){}
|
| +
|
| +function clearNotification(senderId, notificationId) {
|
| + var list = document.getElementById("notification_list");
|
| + list.removeChild(document.getElementById(senderId + notificationId));
|
| + chrome.notificationProvider.notifyOnCleared(senderId,
|
| + notificationId,
|
| + clearedCallback);
|
| +}
|
| +
|
| +function notificationCreated(senderId, notificationId, details){
|
| + addNotification(senderId, notificationId, details);
|
| +}
|
| +
|
| +function notificationUpdated(senderId, notificationId, details){
|
| + var list = document.getElementById("notification_list");
|
| + list.removeChild(document.getElementById(senderId + notificationId));
|
| + addNotification(senderId, notificationId, details);
|
| +}
|
| +
|
| +function notificationCleared(senderId, notificationId){
|
| + clearNotification(senderId, notificationId);
|
| +}
|
|
|