mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-28 23:31:56 +00:00
Bug 1350646: Part 20 - Remove remaining SDK content modules. r=Mossop
MozReview-Commit-ID: EJXQo7yj2NJ --HG-- extra : source : ee8f7fa9d4102d6b20e8e541b954be7d5290b3e8
This commit is contained in:
parent
ab9c3560b9
commit
fccad00d16
@ -33,8 +33,6 @@ modules = [
|
||||
'sdk/clipboard.js',
|
||||
'sdk/console/plain-text.js',
|
||||
'sdk/console/traceback.js',
|
||||
'sdk/content/loader.js',
|
||||
'sdk/content/thumbnail.js',
|
||||
'sdk/core/disposable.js',
|
||||
'sdk/core/heritage.js',
|
||||
'sdk/core/namespace.js',
|
||||
|
@ -1,74 +0,0 @@
|
||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
"use strict";
|
||||
|
||||
module.metadata = {
|
||||
"stability": "unstable"
|
||||
};
|
||||
|
||||
const { isValidURI, isLocalURL, URL } = require('../url');
|
||||
const { contract } = require('../util/contract');
|
||||
const { isString, isNil, instanceOf, isJSONable } = require('../lang/type');
|
||||
const { validateOptions,
|
||||
string, array, object, either, required } = require('../deprecated/api-utils');
|
||||
|
||||
const isValidScriptFile = (value) =>
|
||||
(isString(value) || instanceOf(value, URL)) && isLocalURL(value);
|
||||
|
||||
// map of property validations
|
||||
const valid = {
|
||||
contentURL: {
|
||||
is: either(string, object),
|
||||
ok: url => isNil(url) || isLocalURL(url) || isValidURI(url),
|
||||
msg: 'The `contentURL` option must be a valid URL.'
|
||||
},
|
||||
contentScriptFile: {
|
||||
is: either(string, object, array),
|
||||
ok: value => isNil(value) || [].concat(value).every(isValidScriptFile),
|
||||
msg: 'The `contentScriptFile` option must be a local URL or an array of URLs.'
|
||||
},
|
||||
contentScript: {
|
||||
is: either(string, array),
|
||||
ok: value => isNil(value) || [].concat(value).every(isString),
|
||||
msg: 'The `contentScript` option must be a string or an array of strings.'
|
||||
},
|
||||
contentScriptWhen: {
|
||||
is: required(string),
|
||||
map: value => value || 'end',
|
||||
ok: value => ~['start', 'ready', 'end'].indexOf(value),
|
||||
msg: 'The `contentScriptWhen` option must be either "start", "ready" or "end".'
|
||||
},
|
||||
contentScriptOptions: {
|
||||
ok: value => isNil(value) || isJSONable(value),
|
||||
msg: 'The contentScriptOptions should be a jsonable value.'
|
||||
}
|
||||
};
|
||||
exports.validationAttributes = valid;
|
||||
|
||||
/**
|
||||
* Shortcut function to validate property with validation.
|
||||
* @param {Object|Number|String} suspect
|
||||
* value to validate
|
||||
* @param {Object} validation
|
||||
* validation rule passed to `api-utils`
|
||||
*/
|
||||
function validate(suspect, validation) {
|
||||
return validateOptions(
|
||||
{ $: suspect },
|
||||
{ $: validation }
|
||||
).$;
|
||||
}
|
||||
|
||||
function Allow(script) {
|
||||
return {
|
||||
get script() {
|
||||
return script;
|
||||
},
|
||||
set script(value) {
|
||||
script = !!value;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
exports.contract = contract(valid);
|
@ -1,51 +0,0 @@
|
||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
'use strict';
|
||||
|
||||
module.metadata = {
|
||||
'stability': 'unstable'
|
||||
};
|
||||
|
||||
const { Cc, Ci, Cu } = require('chrome');
|
||||
const AppShellService = Cc['@mozilla.org/appshell/appShellService;1'].
|
||||
getService(Ci.nsIAppShellService);
|
||||
|
||||
const NS = 'http://www.w3.org/1999/xhtml';
|
||||
const COLOR = 'rgb(255,255,255)';
|
||||
|
||||
/**
|
||||
* Creates canvas element with a thumbnail of the passed window.
|
||||
* @param {Window} window
|
||||
* @returns {Element}
|
||||
*/
|
||||
function getThumbnailCanvasForWindow(window) {
|
||||
let aspectRatio = 0.5625; // 16:9
|
||||
let thumbnail = AppShellService.hiddenDOMWindow.document
|
||||
.createElementNS(NS, 'canvas');
|
||||
thumbnail.mozOpaque = true;
|
||||
thumbnail.width = Math.ceil(window.screen.availWidth / 5.75);
|
||||
thumbnail.height = Math.round(thumbnail.width * aspectRatio);
|
||||
let ctx = thumbnail.getContext('2d');
|
||||
let snippetWidth = window.innerWidth * .6;
|
||||
let scale = thumbnail.width / snippetWidth;
|
||||
ctx.scale(scale, scale);
|
||||
ctx.drawWindow(window, window.scrollX, window.scrollY, snippetWidth,
|
||||
snippetWidth * aspectRatio, COLOR);
|
||||
return thumbnail;
|
||||
}
|
||||
exports.getThumbnailCanvasForWindow = getThumbnailCanvasForWindow;
|
||||
|
||||
/**
|
||||
* Creates Base64 encoded data URI of the thumbnail for the passed window.
|
||||
* @param {Window} window
|
||||
* @returns {String}
|
||||
*/
|
||||
exports.getThumbnailURIForWindow = function getThumbnailURIForWindow(window) {
|
||||
return getThumbnailCanvasForWindow(window).toDataURL()
|
||||
};
|
||||
|
||||
// default 80x45 blank when not available
|
||||
exports.BLANK = 'data:image/png;base64,' +
|
||||
'iVBORw0KGgoAAAANSUhEUgAAAFAAAAAtCAYAAAA5reyyAAAAJElEQVRoge3BAQ'+
|
||||
'EAAACCIP+vbkhAAQAAAAAAAAAAAAAAAADXBjhtAAGQ0AF/AAAAAElFTkSuQmCC';
|
Loading…
Reference in New Issue
Block a user