import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo

This commit is contained in:
Roy Tam 2018-01-19 03:59:58 +08:00
commit dcd9973243
150858 changed files with 23884658 additions and 0 deletions

View 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)/.*)$"],
},
};

View 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;

View 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',
]

View 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;

View file

@ -0,0 +1,6 @@
"use strict";
module.exports = {
// Extend from the common devtools xpcshell eslintrc config.
"extends": "../../../../.eslintrc.xpcshell.js"
};

View file

@ -0,0 +1,5 @@
[DEFAULT]
support-files =
[test_clipboard.html]
subsuite = clipboard

View 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>

View 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");
}

View file

@ -0,0 +1,7 @@
[DEFAULT]
tags = devtools
head =
tail =
firefox-appdir = browser
[test_stack.js]