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

Unified Diff: ios/web/webui/resources/web_ui.js

Issue 1137143004: WebUI for WKWebView (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 7 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: ios/web/webui/resources/web_ui.js
diff --git a/ios/web/webui/resources/web_ui.js b/ios/web/webui/resources/web_ui.js
new file mode 100644
index 0000000000000000000000000000000000000000..7f253a2dae55c5a78ceea653ce9314e7852b55c8
--- /dev/null
+++ b/ios/web/webui/resources/web_ui.js
@@ -0,0 +1,73 @@
+// Copyright 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.
+
+// This file adheres to closure-compiler conventions in order to enable
+// compilation with ADVANCED_OPTIMIZATIONS. In particular, members that are to
+// be accessed externally should be specified in this['style'] as opposed to
+// this.style because member identifiers are minified by default.
+// See http://goo.gl/FwOgy
+
+window['chrome'] = {};
Eugene But (OOO till 7-30) 2015/05/12 17:47:09 Is "if (!window['chrome']) check necessary here (t
Jackie Quinn 2015/05/12 18:14:55 I think this may be the only file that defines win
+window['chrome']['send'] = function(message, args) {
+ __gCrWeb.message.invokeOnHost({'command': 'chrome.send',
+ 'message': '' + message,
+ 'arguments': args || []});
+};
+// Chrome defines bind on all functions, so this is expected to exist by
+// webui's scripts.
+Function.prototype.bind = function(context) {
+ // Reference to the Function instance.
+ var m = this;
Eugene But (OOO till 7-30) 2015/05/12 17:47:10 m is not very informative variable name. s/m/self
Jackie Quinn 2015/05/12 18:14:55 Done.
+ // Reference to the current arguments.
+ var curriedArguments = [];
+ for (var i = 1; i < arguments.length; i++)
+ curriedArguments.push(arguments[i]);
+ return function() {
+ var finalArguments = [];
+ for (var i = 0; i < curriedArguments.length; i++)
+ finalArguments.push(curriedArguments[i]);
+ for (var i = 0; i < arguments.length; i++)
+ finalArguments.push(arguments[i]);
+ return m.apply(context, finalArguments);
+ }
+};
+
+/*
+ * Send message requesting favicon at the URL from imageSet for el. Sets
Eugene But (OOO till 7-30) 2015/05/12 17:47:10 s/Send/Sends
Jackie Quinn 2015/05/12 18:14:55 Done.
+ * favicon-url attribute on el to the favicon URL.
+ * @param {Element} el The DOM element to request the favicon for.
+ * @param {string} imageset The CSS -webkit-image-set.
+ */
+window['chrome']['requestFavicon'] = function(el, imageSet) {
+ var cssUrls = imageSet.match(/url\([^\)]+\) \dx/g);
+ // Extract url from CSS -webkit-image-set.
+ var faviconUrl = '';
+ for (var i = 0; i < cssUrls.length; ++i) {
+ var scaleFactorExp = /(\d)x$/;
+ var scaleFactor = getSupportedScaleFactors()[0];
+ if (parseInt(scaleFactorExp.exec(cssUrls[i])[1], 10) === scaleFactor) {
+ var urlExp = /url\(\"(.+)\"\)/;
+ faviconUrl = urlExp.exec(cssUrls[i])[1];
+ break;
+ }
+ }
+ el.setAttribute('favicon-url', url(faviconUrl));
+ chrome.send('webui.requestFavicon', [faviconUrl]);
+};
+
+/**
+ * Called to set elements with favicon-url attribute equal to faviconUrl to
+ * provided dataUrl.
+ * @param {string} faviconUrl Favicon URL used to locate favicon element
+ * via the favicon-url attribute.
+ * @param {string} dataUrl The data URL to assign to the favicon element's
+ * backgroundImage.
+ */
+window['chrome']['setFaviconBackground'] = function(faviconUrl, dataUrl) {
+ var selector = "[favicon-url='" + url(faviconUrl) + "']";
+ var elements = document.querySelectorAll(selector);
+ for (var i = 0; i < elements.length; ++i) {
+ elements[i].style.backgroundImage = url(dataUrl);
+ }
+};

Powered by Google App Engine
This is Rietveld 408576698