| Index: chrome/browser/resources/ntp/util.js
|
| ===================================================================
|
| --- chrome/browser/resources/ntp/util.js (revision 0)
|
| +++ chrome/browser/resources/ntp/util.js (revision 0)
|
| @@ -0,0 +1,86 @@
|
| +// 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.
|
| +
|
| +// TODO(arv): Move to shared/js once namespaced and tested.
|
| +
|
| +var global = this;
|
| +const IS_MAC = /$Mac/.test(navigator.platform);
|
| +
|
| +function $(id) {
|
| + return document.getElementById(id);
|
| +}
|
| +
|
| +function bind(fn, selfObj, var_args) {
|
| + var boundArgs = Array.prototype.slice.call(arguments, 2);
|
| + return function() {
|
| + var args = Array.prototype.slice.call(arguments);
|
| + args.unshift.apply(args, boundArgs);
|
| + return fn.apply(selfObj, args);
|
| + }
|
| +}
|
| +
|
| +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 + '")';
|
| +}
|
| +
|
| +function findAncestorByClass(el, className) {
|
| + return findAncestor(el, function(el) {
|
| + if (el.classList)
|
| + return el.classList.contains(className);
|
| + return null;
|
| + });
|
| +}
|
| +
|
| +/**
|
| + * Return the first ancestor for which the {@code predicate} returns true.
|
| + * @param {Node} node The node to check.
|
| + * @param {function(Node) : boolean} predicate The function that tests the
|
| + * nodes.
|
| + * @return {Node} The found ancestor or null if not found.
|
| + */
|
| +function findAncestor(node, predicate) {
|
| + var last = false;
|
| + while (node != null && !(last = predicate(node))) {
|
| + node = node.parentNode;
|
| + }
|
| + return last ? node : null;
|
| +}
|
| +
|
| +function swapDomNodes(a, b) {
|
| + var afterA = a.nextSibling;
|
| + if (afterA == b) {
|
| + swapDomNodes(b, a);
|
| + return;
|
| + }
|
| + var aParent = a.parentNode;
|
| + b.parentNode.replaceChild(a, b);
|
| + aParent.insertBefore(b, afterA);
|
| +}
|
| +
|
| +/**
|
| + * Calls chrome.send with a callback and restores the original afterwards.
|
| + */
|
| +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);
|
| +}
|
| +
|
| +
|
|
|
| Property changes on: chrome\browser\resources\ntp\util.js
|
| ___________________________________________________________________
|
| Added: svn:eol-style
|
| + LF
|
|
|
|
|