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

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: Fix merge conflict. Created 7 years, 9 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 db042b16a677a93601d3f2832f9d0953a3acacbc..0000000000000000000000000000000000000000
--- a/chrome/renderer/resources/extensions/notification_custom_bindings.js
+++ /dev/null
@@ -1,134 +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 binding = require('binding').Binding.create('experimental.notification');
-
-var sendRequest = require('sendRequest').sendRequest;
-var imageUtil = require('imageUtil');
-var lastError = require('lastError');
-var json = require('json');
-
-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;
- }
- // TODO(kalman): This is probably wrong, failure_function is created in
- // this context but it should be created in the caller's context. I just
- // don't know where that is.
- lastError.run('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);
-};
-
-binding.registerCustomHook(experimentalNotificationCustomHook);
-
-exports.binding = binding.generate();
« no previous file with comments | « chrome/renderer/extensions/dispatcher.cc ('k') | chrome/renderer/resources/extensions/notifications_custom_bindings.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698