mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-05 23:38:38 +09:00
import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo
This commit is contained in:
commit
dcd9973243
150858 changed files with 23884658 additions and 0 deletions
12
devtools/shared/platform/content/.eslintrc.js
Normal file
12
devtools/shared/platform/content/.eslintrc.js
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
"use strict";
|
||||
|
||||
module.exports = {
|
||||
// Extend from the devtools eslintrc.
|
||||
"extends": "../../../.eslintrc.js",
|
||||
|
||||
"rules": {
|
||||
/* eslint-disable max-len */
|
||||
// All code in this directory must be content-clean.
|
||||
"mozilla/reject-some-requires": ["error", "^(chrome|chrome:.*|resource:.*|devtools/server/.*|.*\\.jsm|devtools/shared/platform/(chome|content)/.*)$"],
|
||||
},
|
||||
};
|
||||
34
devtools/shared/platform/content/clipboard.js
Normal file
34
devtools/shared/platform/content/clipboard.js
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
/* 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/. */
|
||||
|
||||
// Helpers for clipboard handling.
|
||||
|
||||
/* globals document */
|
||||
|
||||
"use strict";
|
||||
|
||||
function copyString(string) {
|
||||
let doCopy = function (e) {
|
||||
e.clipboardData.setData("text/plain", string);
|
||||
e.preventDefault();
|
||||
};
|
||||
|
||||
document.addEventListener("copy", doCopy);
|
||||
document.execCommand("copy", false, null);
|
||||
document.removeEventListener("copy", doCopy);
|
||||
}
|
||||
|
||||
function getCurrentFlavors() {
|
||||
// See bug 1295692.
|
||||
return [];
|
||||
}
|
||||
|
||||
function getData() {
|
||||
// See bug 1295692.
|
||||
return null;
|
||||
}
|
||||
|
||||
exports.copyString = copyString;
|
||||
exports.getCurrentFlavors = getCurrentFlavors;
|
||||
exports.getData = getData;
|
||||
16
devtools/shared/platform/content/moz.build
Normal file
16
devtools/shared/platform/content/moz.build
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
|
||||
# vim: set filetype=python:
|
||||
# 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/.
|
||||
|
||||
DevToolsModules(
|
||||
'clipboard.js',
|
||||
'stack.js',
|
||||
)
|
||||
|
||||
XPCSHELL_TESTS_MANIFESTS += ['test/xpcshell.ini']
|
||||
|
||||
MOCHITEST_MANIFESTS += [
|
||||
'test/mochitest.ini',
|
||||
]
|
||||
49
devtools/shared/platform/content/stack.js
Normal file
49
devtools/shared/platform/content/stack.js
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
/* 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/. */
|
||||
|
||||
// A few wrappers for stack-manipulation. This version of the module
|
||||
// is used in content code. Note that this particular copy of the
|
||||
// file can only be loaded via require(), because Cu.import doesn't
|
||||
// exist in the content case. So, we don't need the code to handle
|
||||
// both require and import here.
|
||||
|
||||
"use strict";
|
||||
|
||||
/**
|
||||
* Looks like Cu.callFunctionWithAsyncStack, but just calls the callee.
|
||||
*/
|
||||
function callFunctionWithAsyncStack(callee, stack, id) {
|
||||
return callee();
|
||||
}
|
||||
|
||||
/**
|
||||
* Return a description of the Nth caller, suitable for logging.
|
||||
*
|
||||
* @param {Number} n the caller to describe
|
||||
* @return {String} a description of the nth caller.
|
||||
*/
|
||||
function describeNthCaller(n) {
|
||||
if (isWorker) {
|
||||
return "";
|
||||
}
|
||||
|
||||
let stack = new Error().stack.split("\n");
|
||||
// Add one here to skip this function.
|
||||
return stack[n + 1];
|
||||
}
|
||||
|
||||
/**
|
||||
* Return a stack object that can be serialized and, when
|
||||
* deserialized, passed to callFunctionWithAsyncStack.
|
||||
*/
|
||||
function getStack() {
|
||||
// There's no reason for this to do anything fancy, since it's only
|
||||
// used to pass back into callFunctionWithAsyncStack, which we can't
|
||||
// implement.
|
||||
return null;
|
||||
}
|
||||
|
||||
exports.callFunctionWithAsyncStack = callFunctionWithAsyncStack;
|
||||
exports.describeNthCaller = describeNthCaller;
|
||||
exports.getStack = getStack;
|
||||
6
devtools/shared/platform/content/test/.eslintrc.js
Normal file
6
devtools/shared/platform/content/test/.eslintrc.js
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
"use strict";
|
||||
|
||||
module.exports = {
|
||||
// Extend from the common devtools xpcshell eslintrc config.
|
||||
"extends": "../../../../.eslintrc.xpcshell.js"
|
||||
};
|
||||
5
devtools/shared/platform/content/test/mochitest.ini
Normal file
5
devtools/shared/platform/content/test/mochitest.ini
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
[DEFAULT]
|
||||
support-files =
|
||||
|
||||
[test_clipboard.html]
|
||||
subsuite = clipboard
|
||||
53
devtools/shared/platform/content/test/test_clipboard.html
Normal file
53
devtools/shared/platform/content/test/test_clipboard.html
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<!--
|
||||
https://bugzilla.mozilla.org/show_bug.cgi?id=1290230
|
||||
-->
|
||||
<head>
|
||||
<title>Test for Bug 1290230 - clipboard helpers</title>
|
||||
<script type="text/javascript" src="/MochiKit/MochiKit.js"></script>
|
||||
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="chrome://mochikit/content/tests/SimpleTest/test.css">
|
||||
<script type="text/javascript" src="/tests/SimpleTest/EventUtils.js"></script>
|
||||
|
||||
<script type="application/javascript;version=1.8">
|
||||
"use strict";
|
||||
var exports = {}
|
||||
</script>
|
||||
|
||||
<script type="application/javascript;version=1.8"
|
||||
src="resource://devtools/shared/platform/content/clipboard.js"></script>
|
||||
|
||||
</head>
|
||||
<body onload="do_tests()">
|
||||
<script type="application/javascript;version=1.8">
|
||||
"use strict";
|
||||
|
||||
const RESULT = "lark bunting";
|
||||
|
||||
function doCopy(e) {
|
||||
console.log(e.isTrusted);
|
||||
copyString(RESULT);
|
||||
}
|
||||
|
||||
function do_tests() {
|
||||
let elt = document.querySelector("#key");
|
||||
elt.addEventListener("keydown", doCopy);
|
||||
|
||||
// Set the clipboard to something other than what we expect.
|
||||
SpecialPowers.clipboardCopyString("snowy owl");
|
||||
|
||||
elt.focus();
|
||||
synthesizeKey("x", {});
|
||||
|
||||
is(SpecialPowers.getClipboardData("text/unicode"), RESULT, "clipboard copying worked");
|
||||
|
||||
SimpleTest.finish();
|
||||
}
|
||||
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
|
||||
</script>
|
||||
<div id="key" tabindex="-1">Type Here</div>
|
||||
</body>
|
||||
48
devtools/shared/platform/content/test/test_stack.js
Normal file
48
devtools/shared/platform/content/test/test_stack.js
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
/* Any copyright is dedicated to the Public Domain.
|
||||
http://creativecommons.org/publicdomain/zero/1.0/ */
|
||||
|
||||
// There isn't really very much about the content stack.js that we can
|
||||
// test, but we'll do what we can.
|
||||
|
||||
"use strict";
|
||||
|
||||
var Cu = Components.utils;
|
||||
const {require} = Cu.import("resource://devtools/shared/Loader.jsm", {});
|
||||
|
||||
// Make sure to explicitly require the content version of this module.
|
||||
// We have to use the ".." trick due to the way the loader remaps
|
||||
// devtools/shared/platform.
|
||||
const {
|
||||
callFunctionWithAsyncStack,
|
||||
getStack,
|
||||
describeNthCaller
|
||||
} = require("devtools/shared/platform/../content/stack");
|
||||
|
||||
function f3() {
|
||||
return describeNthCaller(2);
|
||||
}
|
||||
|
||||
function f2() {
|
||||
return f3();
|
||||
}
|
||||
|
||||
function f1() {
|
||||
return f2();
|
||||
}
|
||||
|
||||
function run_test() {
|
||||
let value = 7;
|
||||
|
||||
const changeValue = () => {
|
||||
value = 9;
|
||||
};
|
||||
|
||||
callFunctionWithAsyncStack(changeValue, getStack(), "test_stack");
|
||||
equal(value, 9, "callFunctionWithAsyncStack worked");
|
||||
|
||||
let stack = getStack();
|
||||
equal(JSON.parse(JSON.stringify(stack)), stack, "stack is serializable");
|
||||
|
||||
let desc = f1();
|
||||
ok(desc.includes("f1"), "stack description includes f1");
|
||||
}
|
||||
7
devtools/shared/platform/content/test/xpcshell.ini
Normal file
7
devtools/shared/platform/content/test/xpcshell.ini
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
[DEFAULT]
|
||||
tags = devtools
|
||||
head =
|
||||
tail =
|
||||
firefox-appdir = browser
|
||||
|
||||
[test_stack.js]
|
||||
Loading…
Add table
Add a link
Reference in a new issue