Index: resources/bookmark_manager/js/util.js |
=================================================================== |
--- resources/bookmark_manager/js/util.js (revision 0) |
+++ resources/bookmark_manager/js/util.js (revision 0) |
@@ -0,0 +1,57 @@ |
+// 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. |
+ |
+/** |
+ * The global object. |
+ * @param {!Object} |
+ */ |
+const global = this; |
+ |
+/** |
+ * Alias for document.getElementById. |
+ * @param {string} id The ID of the element to find. |
+ * @return {HTMLElement} The found element or null if not found. |
+ */ |
+function $(id) { |
+ return document.getElementById(id); |
+} |
+ |
+/** |
+ * Calls chrome.send with a callback and restores the original afterwards. |
+ * @param {string} name The name of the message to send. |
+ * @param {!Array} params The parameters to send. |
+ * @param {string} callbackName The name of the function that the backend calls. |
+ * @param {!Function} The function to call. |
+ */ |
+function chromeSend(name, params, callbackName, callback) { |
+ var old = global[callbackName]; |
+ global[callbackName] = function() { |
+ // restore |
+ global[callbackName] = old; |
+ |
+ var args = Array.prototype.slice.call(arguments); |
+ return callback.apply(global, args); |
+ }; |
+ chrome.send(name, params); |
+} |
+ |
+ |
+/** |
+ * Generates a CSS url string. |
+ * @param {string} s The URL to generate the CSS url for. |
+ * @return {string} The CSS url string. |
+ */ |
+function url(s) { |
+ // http://www.w3.org/TR/css3-values/#uris |
+ // Parentheses, commas, whitespace characters, single quotes (') and double |
+ // quotes (") appearing in a URI must be escaped with a backslash |
+ var s2 = s.replace(/(\(|\)|\,|\s|\'|\"|\\)/g, '\\$1'); |
+ // WebKit has a bug when it comes to URLs that end with \ |
+ // https://bugs.webkit.org/show_bug.cgi?id=28885 |
+ if (/\\\\$/.test(s2)) { |
+ // Add a space to work around the WebKit bug. |
+ s2 += ' '; |
+ } |
+ return 'url("' + s2 + '")'; |
+} |