12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- // 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.
- // -----------------------------------------------------------------------------
- // NOTE: If you change this file you need to touch renderer_resources.grd to
- // have your change take effect.
- // -----------------------------------------------------------------------------
- // Partial implementation of the Greasemonkey API, see:
- // http://wiki.greasespot.net/Greasemonkey_Manual:APIs
- function GM_addStyle(css) {
- var parent = document.getElementsByTagName("head")[0];
- if (!parent) {
- parent = document.documentElement;
- }
- var style = document.createElement("style");
- style.type = "text/css";
- var textNode = document.createTextNode(css);
- style.appendChild(textNode);
- parent.appendChild(style);
- }
- function GM_xmlhttpRequest(details) {
- function setupEvent(xhr, url, eventName, callback) {
- xhr[eventName] = function () {
- var isComplete = xhr.readyState == 4;
- var responseState = {
- responseText: xhr.responseText,
- readyState: xhr.readyState,
- responseHeaders: isComplete ? xhr.getAllResponseHeaders() : "",
- status: isComplete ? xhr.status : 0,
- statusText: isComplete ? xhr.statusText : "",
- finalUrl: isComplete ? url : ""
- };
- callback(responseState);
- };
- }
- var xhr = new XMLHttpRequest();
- var eventNames = ["onload", "onerror", "onreadystatechange"];
- for (var i = 0; i < eventNames.length; i++ ) {
- var eventName = eventNames[i];
- if (eventName in details) {
- setupEvent(xhr, details.url, eventName, details[eventName]);
- }
- }
- xhr.open(details.method, details.url);
- if (details.overrideMimeType) {
- xhr.overrideMimeType(details.overrideMimeType);
- }
- if (details.headers) {
- for (var header in details.headers) {
- xhr.setRequestHeader(header, details.headers[header]);
- }
- }
- xhr.send(details.data ? details.data : null);
- }
- function GM_openInTab(url) {
- window.open(url, "");
- }
- function GM_log(message) {
- window.console.log(message);
- }
- (function() {
- function generateGreasemonkeyStub(name) {
- return function() {
- console.log("%s is not supported.", name);
- };
- }
- var apis = ["GM_getValue", "GM_setValue", "GM_registerMenuCommand"];
- for (var i = 0, api; api = apis[i]; i++) {
- window[api] = generateGreasemonkeyStub(api);
- }
- })();
|