Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(8860)

Unified Diff: chrome/renderer/resources/extensions/notification_custom_bindings.js

Issue 12313115: Take notification API out of experimental. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Missed one pathname. Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/renderer/resources/extensions/notification_custom_bindings.js
diff --git a/chrome/renderer/resources/extensions/notification_custom_bindings.js b/chrome/renderer/resources/extensions/notification_custom_bindings.js
deleted file mode 100644
index b88be0981d705c479fdde0bf4eb372822a7ef31b..0000000000000000000000000000000000000000
--- a/chrome/renderer/resources/extensions/notification_custom_bindings.js
+++ /dev/null
@@ -1,128 +0,0 @@
-// Copyright 2013 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.
-
-// Custom bindings for the notification API.
-
-var chromeHidden = requireNative('chrome_hidden').GetChromeHidden();
-var sendRequest = require('sendRequest').sendRequest;
-var imageUtil = require('imageUtil');
-var lastError = require('lastError');
-
-function url_getter(context, key) {
- var f = function() {
- return this[key];
- };
- return f.bind(context);
-}
-
-function url_setter(context, key) {
- var f = function(val) {
- this[key] = val;
- };
- return f.bind(context);
-}
-
-function replaceNotificationOptionURLs(notification_details, callback) {
- // A URL Spec is an object with the following keys:
- // path: The resource to be downloaded.
- // callback: A function to be called when the URL is complete. It
- // should accept an ImageData object and set the appropriate
- // field in the output of create.
-
- // TODO(dewittj): Try to remove hard-coding.
- // |iconUrl| is required.
- var url_specs = [{
- path: notification_details.iconUrl,
- width: 80,
- height: 80,
- callback: url_setter(notification_details, 'iconUrl')
- }];
-
- // |secondIconUrl| is optional.
- if (notification_details.secondIconUrl) {
- url_specs.push({
- path: notification_details.secondIconUrl,
- width: 80,
- height: 80,
- callback: url_setter(notification_details, 'secondIconUrl')
- });
- }
-
- // |imageUrl| is optional.
- if (notification_details.imageUrl) {
- url_specs.push({
- path: notification_details.imageUrl,
- width: 300,
- height: 300,
- callback: url_setter(notification_details, 'imageUrl')
- });
- }
-
- // Each button has an optional icon.
- var button_list = notification_details.buttons;
- if (button_list && typeof button_list.length === 'number') {
- var num_buttons = button_list.length;
- for (var i = 0; i < num_buttons; i++) {
- if (button_list[i].iconUrl) {
- url_specs.push({
- path: button_list[i].iconUrl,
- width: 16,
- height: 16,
- callback: url_setter(button_list[i], 'iconUrl')
- });
- }
- }
- }
-
- var errors = 0;
-
- imageUtil.loadAllImages(url_specs, {
- onerror: function(index) {
- errors++;
- },
- oncomplete: function(imageData) {
- if (errors > 0) {
- callback(false);
- return;
- }
- for (var index = 0; index < url_specs.length; index++) {
- var url_spec = url_specs[index];
- url_spec.callback(imageData[index]);
- }
- callback(true);
- }
- });
-}
-
-function genHandle(failure_function) {
- return function(id, input_notification_details, callback) {
- // TODO(dewittj): Remove this hack. This is used as a way to deep
- // copy a complex JSON object.
- var notification_details = JSON.parse(
- JSON.stringify(input_notification_details));
- var that = this;
- replaceNotificationOptionURLs(notification_details, function(success) {
- if (success) {
- sendRequest(that.name,
- [id, notification_details, callback],
- that.definition.parameters);
- return;
- }
- lastError.set('Unable to download all specified images.');
- failure_function(callback, id);
- });
- };
-}
-
-var handleCreate = genHandle(function(callback, id) { callback(id); });
-var handleUpdate = genHandle(function(callback, id) { callback(false); });
-
-var experimentalNotificationCustomHook = function(bindingsAPI, extensionId) {
- var apiFunctions = bindingsAPI.apiFunctions;
- apiFunctions.setHandleRequest('create', handleCreate);
- apiFunctions.setHandleRequest('update', handleCreate);
-};
-
-chromeHidden.registerCustomHook('experimental.notification',
- experimentalNotificationCustomHook);

Powered by Google App Engine
This is Rietveld 408576698