зеркало из https://github.com/mozilla/gecko-dev.git
Merge inbound to central, a=merge
MozReview-Commit-ID: 1mWKzfX4kl
This commit is contained in:
Коммит
fb8abb94c7
|
@ -8,8 +8,7 @@
|
|||
#define mozilla_a11y_Platform_h
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
class nsString;
|
||||
#include "nsStringFwd.h"
|
||||
|
||||
namespace mozilla {
|
||||
namespace a11y {
|
||||
|
|
|
@ -57,7 +57,7 @@
|
|||
#include "nsIScrollableFrame.h"
|
||||
#include "nsFocusManager.h"
|
||||
|
||||
#include "nsXPIDLString.h"
|
||||
#include "nsString.h"
|
||||
#include "nsUnicharUtils.h"
|
||||
#include "nsReadableUtils.h"
|
||||
#include "prdtoa.h"
|
||||
|
|
|
@ -7,8 +7,9 @@
|
|||
#ifndef _MacUtils_H_
|
||||
#define _MacUtils_H_
|
||||
|
||||
#include "nsStringFwd.h"
|
||||
|
||||
@class NSString;
|
||||
class nsString;
|
||||
|
||||
namespace mozilla {
|
||||
namespace a11y {
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
This is the PDF.js project output, https://github.com/mozilla/pdf.js
|
||||
|
||||
Current extension version is: 1.9.441
|
||||
Current extension version is: 1.9.456
|
||||
|
||||
Taken from upstream commit: 8c8d8fa2
|
||||
Taken from upstream commit: cb10c03d
|
||||
|
|
|
@ -88,7 +88,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||
/******/ __w_pdfjs_require__.p = "";
|
||||
/******/
|
||||
/******/ // Load entry module and return exports
|
||||
/******/ return __w_pdfjs_require__(__w_pdfjs_require__.s = 14);
|
||||
/******/ return __w_pdfjs_require__(__w_pdfjs_require__.s = 15);
|
||||
/******/ })
|
||||
/************************************************************************/
|
||||
/******/ ([
|
||||
|
@ -101,13 +101,12 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.unreachable = exports.warn = exports.utf8StringToString = exports.stringToUTF8String = exports.stringToPDFString = exports.stringToBytes = exports.string32 = exports.shadow = exports.setVerbosityLevel = exports.ReadableStream = exports.removeNullCharacters = exports.readUint32 = exports.readUint16 = exports.readInt8 = exports.log2 = exports.loadJpegStream = exports.isEvalSupported = exports.isLittleEndian = exports.createValidAbsoluteUrl = exports.isSameOrigin = exports.isNodeJS = exports.isSpace = exports.isString = exports.isNum = exports.isInt = exports.isEmptyObj = exports.isBool = exports.isArrayBuffer = exports.isArray = exports.info = exports.globalScope = exports.getVerbosityLevel = exports.getLookupTableFactory = exports.deprecated = exports.createObjectURL = exports.createPromiseCapability = exports.createBlob = exports.bytesToString = exports.assert = exports.arraysToBytes = exports.arrayByteLength = exports.FormatError = exports.XRefParseException = exports.Util = exports.UnknownErrorException = exports.UnexpectedResponseException = exports.TextRenderingMode = exports.StreamType = exports.StatTimer = exports.PasswordResponses = exports.PasswordException = exports.PageViewport = exports.NotImplementedException = exports.NativeImageDecoding = exports.MissingPDFException = exports.MissingDataException = exports.MessageHandler = exports.InvalidPDFException = exports.AbortException = exports.CMapCompressionType = exports.ImageKind = exports.FontType = exports.AnnotationType = exports.AnnotationFlag = exports.AnnotationFieldFlag = exports.AnnotationBorderStyleType = exports.UNSUPPORTED_FEATURES = exports.VERBOSITY_LEVELS = exports.OPS = exports.IDENTITY_MATRIX = exports.FONT_IDENTITY_MATRIX = undefined;
|
||||
exports.unreachable = exports.warn = exports.utf8StringToString = exports.stringToUTF8String = exports.stringToPDFString = exports.stringToBytes = exports.string32 = exports.shadow = exports.setVerbosityLevel = exports.ReadableStream = exports.removeNullCharacters = exports.readUint32 = exports.readUint16 = exports.readInt8 = exports.log2 = exports.loadJpegStream = exports.isEvalSupported = exports.isLittleEndian = exports.createValidAbsoluteUrl = exports.isSameOrigin = exports.isNodeJS = exports.isSpace = exports.isString = exports.isNum = exports.isInt = exports.isEmptyObj = exports.isBool = exports.isArrayBuffer = exports.isArray = exports.info = exports.getVerbosityLevel = exports.getLookupTableFactory = exports.deprecated = exports.createObjectURL = exports.createPromiseCapability = exports.createBlob = exports.bytesToString = exports.assert = exports.arraysToBytes = exports.arrayByteLength = exports.FormatError = exports.XRefParseException = exports.Util = exports.UnknownErrorException = exports.UnexpectedResponseException = exports.TextRenderingMode = exports.StreamType = exports.StatTimer = exports.PasswordResponses = exports.PasswordException = exports.PageViewport = exports.NotImplementedException = exports.NativeImageDecoding = exports.MissingPDFException = exports.MissingDataException = exports.MessageHandler = exports.InvalidPDFException = exports.AbortException = exports.CMapCompressionType = exports.ImageKind = exports.FontType = exports.AnnotationType = exports.AnnotationFlag = exports.AnnotationFieldFlag = exports.AnnotationBorderStyleType = exports.UNSUPPORTED_FEATURES = exports.VERBOSITY_LEVELS = exports.OPS = exports.IDENTITY_MATRIX = exports.FONT_IDENTITY_MATRIX = undefined;
|
||||
|
||||
__w_pdfjs_require__(15);
|
||||
__w_pdfjs_require__(16);
|
||||
|
||||
var _streams_polyfill = __w_pdfjs_require__(16);
|
||||
var _streams_polyfill = __w_pdfjs_require__(17);
|
||||
|
||||
var globalScope = typeof window !== 'undefined' && window.Math === Math ? window : typeof global !== 'undefined' && global.Math === Math ? global : typeof self !== 'undefined' && self.Math === Math ? self : undefined;
|
||||
var FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0];
|
||||
const NativeImageDecoding = {
|
||||
NONE: 'none',
|
||||
|
@ -1426,7 +1425,6 @@ exports.createObjectURL = createObjectURL;
|
|||
exports.deprecated = deprecated;
|
||||
exports.getLookupTableFactory = getLookupTableFactory;
|
||||
exports.getVerbosityLevel = getVerbosityLevel;
|
||||
exports.globalScope = globalScope;
|
||||
exports.info = info;
|
||||
exports.isArray = isArray;
|
||||
exports.isArrayBuffer = isArrayBuffer;
|
||||
|
@ -1472,6 +1470,12 @@ exports.DOMCMapReaderFactory = exports.DOMCanvasFactory = exports.DEFAULT_LINK_R
|
|||
|
||||
var _util = __w_pdfjs_require__(0);
|
||||
|
||||
var _global_scope = __w_pdfjs_require__(2);
|
||||
|
||||
var _global_scope2 = _interopRequireDefault(_global_scope);
|
||||
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
|
||||
var DEFAULT_LINK_REL = 'noopener noreferrer nofollow';
|
||||
class DOMCanvasFactory {
|
||||
create(width, height) {
|
||||
|
@ -1621,7 +1625,7 @@ function getFilenameFromUrl(url) {
|
|||
return url.substring(url.lastIndexOf('/', end) + 1, end);
|
||||
}
|
||||
function getDefaultSetting(id) {
|
||||
var globalSettings = _util.globalScope.PDFJS;
|
||||
var globalSettings = _global_scope2.default.PDFJS;
|
||||
switch (id) {
|
||||
case 'pdfBug':
|
||||
return globalSettings ? globalSettings.pdfBug : false;
|
||||
|
@ -1716,6 +1720,15 @@ exports.DOMCMapReaderFactory = DOMCMapReaderFactory;
|
|||
"use strict";
|
||||
|
||||
|
||||
module.exports = typeof window !== 'undefined' && window.Math === Math ? window : typeof global !== 'undefined' && global.Math === Math ? global : typeof self !== 'undefined' && self.Math === Math ? self : {};
|
||||
|
||||
/***/ }),
|
||||
/* 3 */
|
||||
/***/ (function(module, exports, __w_pdfjs_require__) {
|
||||
|
||||
"use strict";
|
||||
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
|
@ -2360,7 +2373,7 @@ var AnnotationLayer = function AnnotationLayerClosure() {
|
|||
exports.AnnotationLayer = AnnotationLayer;
|
||||
|
||||
/***/ }),
|
||||
/* 3 */
|
||||
/* 4 */
|
||||
/***/ (function(module, exports, __w_pdfjs_require__) {
|
||||
|
||||
"use strict";
|
||||
|
@ -2375,13 +2388,19 @@ var _util = __w_pdfjs_require__(0);
|
|||
|
||||
var _dom_utils = __w_pdfjs_require__(1);
|
||||
|
||||
var _font_loader = __w_pdfjs_require__(11);
|
||||
var _font_loader = __w_pdfjs_require__(12);
|
||||
|
||||
var _canvas = __w_pdfjs_require__(10);
|
||||
var _canvas = __w_pdfjs_require__(11);
|
||||
|
||||
var _metadata = __w_pdfjs_require__(6);
|
||||
var _global_scope = __w_pdfjs_require__(2);
|
||||
|
||||
var _transport_stream = __w_pdfjs_require__(13);
|
||||
var _global_scope2 = _interopRequireDefault(_global_scope);
|
||||
|
||||
var _metadata = __w_pdfjs_require__(7);
|
||||
|
||||
var _transport_stream = __w_pdfjs_require__(14);
|
||||
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
|
||||
var DEFAULT_RANGE_CHUNK_SIZE = 65536;
|
||||
var isWorkerDisabled = false;
|
||||
|
@ -3391,10 +3410,10 @@ var WorkerTransport = function WorkerTransportClosure() {
|
|||
break;
|
||||
}
|
||||
var fontRegistry = null;
|
||||
if ((0, _dom_utils.getDefaultSetting)('pdfBug') && _util.globalScope.FontInspector && _util.globalScope['FontInspector'].enabled) {
|
||||
if ((0, _dom_utils.getDefaultSetting)('pdfBug') && _global_scope2.default.FontInspector && _global_scope2.default['FontInspector'].enabled) {
|
||||
fontRegistry = {
|
||||
registerFont(font, url) {
|
||||
_util.globalScope['FontInspector'].fontAdded(font, url);
|
||||
_global_scope2.default['FontInspector'].fontAdded(font, url);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
@ -3731,8 +3750,8 @@ var InternalRenderTask = function InternalRenderTaskClosure() {
|
|||
if (this.cancelled) {
|
||||
return;
|
||||
}
|
||||
if ((0, _dom_utils.getDefaultSetting)('pdfBug') && _util.globalScope.StepperManager && _util.globalScope.StepperManager.enabled) {
|
||||
this.stepper = _util.globalScope.StepperManager.create(this.pageNumber - 1);
|
||||
if ((0, _dom_utils.getDefaultSetting)('pdfBug') && _global_scope2.default.StepperManager && _global_scope2.default.StepperManager.enabled) {
|
||||
this.stepper = _global_scope2.default.StepperManager.create(this.pageNumber - 1);
|
||||
this.stepper.init(this.operatorList);
|
||||
this.stepper.nextBreakPoint = this.stepper.getNextBreakPoint();
|
||||
}
|
||||
|
@ -3826,8 +3845,8 @@ var _UnsupportedManager = function UnsupportedManagerClosure() {
|
|||
}();
|
||||
var version, build;
|
||||
{
|
||||
exports.version = version = '1.9.441';
|
||||
exports.build = build = '8c8d8fa2';
|
||||
exports.version = version = '1.9.456';
|
||||
exports.build = build = 'cb10c03d';
|
||||
}
|
||||
exports.getDocument = getDocument;
|
||||
exports.LoopbackPort = LoopbackPort;
|
||||
|
@ -3841,7 +3860,7 @@ exports.version = version;
|
|||
exports.build = build;
|
||||
|
||||
/***/ }),
|
||||
/* 4 */
|
||||
/* 5 */
|
||||
/***/ (function(module, exports, __w_pdfjs_require__) {
|
||||
|
||||
"use strict";
|
||||
|
@ -3861,7 +3880,7 @@ var SVGGraphics = function () {
|
|||
exports.SVGGraphics = SVGGraphics;
|
||||
|
||||
/***/ }),
|
||||
/* 5 */
|
||||
/* 6 */
|
||||
/***/ (function(module, exports, __w_pdfjs_require__) {
|
||||
|
||||
"use strict";
|
||||
|
@ -4399,7 +4418,7 @@ var renderTextLayer = function renderTextLayerClosure() {
|
|||
exports.renderTextLayer = renderTextLayer;
|
||||
|
||||
/***/ }),
|
||||
/* 6 */
|
||||
/* 7 */
|
||||
/***/ (function(module, exports, __w_pdfjs_require__) {
|
||||
|
||||
"use strict";
|
||||
|
@ -4479,7 +4498,7 @@ Metadata.prototype = {
|
|||
exports.Metadata = Metadata;
|
||||
|
||||
/***/ }),
|
||||
/* 7 */
|
||||
/* 8 */
|
||||
/***/ (function(module, exports, __w_pdfjs_require__) {
|
||||
|
||||
"use strict";
|
||||
|
@ -4846,7 +4865,7 @@ var WebGLUtils = function WebGLUtilsClosure() {
|
|||
exports.WebGLUtils = WebGLUtils;
|
||||
|
||||
/***/ }),
|
||||
/* 8 */
|
||||
/* 9 */
|
||||
/***/ (function(module, exports, __w_pdfjs_require__) {
|
||||
|
||||
"use strict";
|
||||
|
@ -4857,28 +4876,34 @@ Object.defineProperty(exports, "__esModule", {
|
|||
});
|
||||
exports.PDFJS = exports.isWorker = exports.globalScope = undefined;
|
||||
|
||||
var _api = __w_pdfjs_require__(3);
|
||||
var _api = __w_pdfjs_require__(4);
|
||||
|
||||
var _dom_utils = __w_pdfjs_require__(1);
|
||||
|
||||
var _util = __w_pdfjs_require__(0);
|
||||
|
||||
var _annotation_layer = __w_pdfjs_require__(2);
|
||||
var _annotation_layer = __w_pdfjs_require__(3);
|
||||
|
||||
var _metadata = __w_pdfjs_require__(6);
|
||||
var _global_scope = __w_pdfjs_require__(2);
|
||||
|
||||
var _text_layer = __w_pdfjs_require__(5);
|
||||
var _global_scope2 = _interopRequireDefault(_global_scope);
|
||||
|
||||
var _svg = __w_pdfjs_require__(4);
|
||||
var _metadata = __w_pdfjs_require__(7);
|
||||
|
||||
var _text_layer = __w_pdfjs_require__(6);
|
||||
|
||||
var _svg = __w_pdfjs_require__(5);
|
||||
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
|
||||
var isWorker = typeof window === 'undefined';
|
||||
if (!_util.globalScope.PDFJS) {
|
||||
_util.globalScope.PDFJS = {};
|
||||
if (!_global_scope2.default.PDFJS) {
|
||||
_global_scope2.default.PDFJS = {};
|
||||
}
|
||||
var PDFJS = _util.globalScope.PDFJS;
|
||||
var PDFJS = _global_scope2.default.PDFJS;
|
||||
{
|
||||
PDFJS.version = '1.9.441';
|
||||
PDFJS.build = '8c8d8fa2';
|
||||
PDFJS.version = '1.9.456';
|
||||
PDFJS.build = 'cb10c03d';
|
||||
}
|
||||
PDFJS.pdfBug = false;
|
||||
if (PDFJS.verbosity !== undefined) {
|
||||
|
@ -4955,12 +4980,12 @@ PDFJS.renderTextLayer = _text_layer.renderTextLayer;
|
|||
PDFJS.Metadata = _metadata.Metadata;
|
||||
PDFJS.SVGGraphics = _svg.SVGGraphics;
|
||||
PDFJS.UnsupportedManager = _api._UnsupportedManager;
|
||||
exports.globalScope = _util.globalScope;
|
||||
exports.globalScope = _global_scope2.default;
|
||||
exports.isWorker = isWorker;
|
||||
exports.PDFJS = PDFJS;
|
||||
|
||||
/***/ }),
|
||||
/* 9 */
|
||||
/* 10 */
|
||||
/***/ (function(module, exports, __w_pdfjs_require__) {
|
||||
|
||||
"use strict";
|
||||
|
@ -7976,7 +8001,7 @@ exports.PDFJS = PDFJS;
|
|||
}]));
|
||||
|
||||
/***/ }),
|
||||
/* 10 */
|
||||
/* 11 */
|
||||
/***/ (function(module, exports, __w_pdfjs_require__) {
|
||||
|
||||
"use strict";
|
||||
|
@ -7989,9 +8014,9 @@ exports.CanvasGraphics = undefined;
|
|||
|
||||
var _util = __w_pdfjs_require__(0);
|
||||
|
||||
var _pattern_helper = __w_pdfjs_require__(12);
|
||||
var _pattern_helper = __w_pdfjs_require__(13);
|
||||
|
||||
var _webgl = __w_pdfjs_require__(7);
|
||||
var _webgl = __w_pdfjs_require__(8);
|
||||
|
||||
var MIN_FONT_SIZE = 16;
|
||||
var MAX_FONT_SIZE = 100;
|
||||
|
@ -9705,7 +9730,7 @@ var CanvasGraphics = function CanvasGraphicsClosure() {
|
|||
exports.CanvasGraphics = CanvasGraphics;
|
||||
|
||||
/***/ }),
|
||||
/* 11 */
|
||||
/* 12 */
|
||||
/***/ (function(module, exports, __w_pdfjs_require__) {
|
||||
|
||||
"use strict";
|
||||
|
@ -9830,7 +9855,7 @@ exports.FontFaceObject = FontFaceObject;
|
|||
exports.FontLoader = FontLoader;
|
||||
|
||||
/***/ }),
|
||||
/* 12 */
|
||||
/* 13 */
|
||||
/***/ (function(module, exports, __w_pdfjs_require__) {
|
||||
|
||||
"use strict";
|
||||
|
@ -9843,7 +9868,7 @@ exports.TilingPattern = exports.getShadingPatternFromIR = undefined;
|
|||
|
||||
var _util = __w_pdfjs_require__(0);
|
||||
|
||||
var _webgl = __w_pdfjs_require__(7);
|
||||
var _webgl = __w_pdfjs_require__(8);
|
||||
|
||||
var ShadingIRs = {};
|
||||
ShadingIRs.RadialAxial = {
|
||||
|
@ -10202,7 +10227,7 @@ exports.getShadingPatternFromIR = getShadingPatternFromIR;
|
|||
exports.TilingPattern = TilingPattern;
|
||||
|
||||
/***/ }),
|
||||
/* 13 */
|
||||
/* 14 */
|
||||
/***/ (function(module, exports, __w_pdfjs_require__) {
|
||||
|
||||
"use strict";
|
||||
|
@ -10438,21 +10463,21 @@ var PDFDataTransportStream = function PDFDataTransportStreamClosure() {
|
|||
exports.PDFDataTransportStream = PDFDataTransportStream;
|
||||
|
||||
/***/ }),
|
||||
/* 14 */
|
||||
/* 15 */
|
||||
/***/ (function(module, exports, __w_pdfjs_require__) {
|
||||
|
||||
"use strict";
|
||||
|
||||
|
||||
var pdfjsVersion = '1.9.441';
|
||||
var pdfjsBuild = '8c8d8fa2';
|
||||
var pdfjsVersion = '1.9.456';
|
||||
var pdfjsBuild = 'cb10c03d';
|
||||
var pdfjsSharedUtil = __w_pdfjs_require__(0);
|
||||
var pdfjsDisplayGlobal = __w_pdfjs_require__(8);
|
||||
var pdfjsDisplayAPI = __w_pdfjs_require__(3);
|
||||
var pdfjsDisplayTextLayer = __w_pdfjs_require__(5);
|
||||
var pdfjsDisplayAnnotationLayer = __w_pdfjs_require__(2);
|
||||
var pdfjsDisplayGlobal = __w_pdfjs_require__(9);
|
||||
var pdfjsDisplayAPI = __w_pdfjs_require__(4);
|
||||
var pdfjsDisplayTextLayer = __w_pdfjs_require__(6);
|
||||
var pdfjsDisplayAnnotationLayer = __w_pdfjs_require__(3);
|
||||
var pdfjsDisplayDOMUtils = __w_pdfjs_require__(1);
|
||||
var pdfjsDisplaySVG = __w_pdfjs_require__(4);
|
||||
var pdfjsDisplaySVG = __w_pdfjs_require__(5);
|
||||
;
|
||||
exports.PDFJS = pdfjsDisplayGlobal.PDFJS;
|
||||
exports.build = pdfjsDisplayAPI.build;
|
||||
|
@ -10485,7 +10510,7 @@ exports.addLinkAttributes = pdfjsDisplayDOMUtils.addLinkAttributes;
|
|||
exports.StatTimer = pdfjsSharedUtil.StatTimer;
|
||||
|
||||
/***/ }),
|
||||
/* 15 */
|
||||
/* 16 */
|
||||
/***/ (function(module, exports, __w_pdfjs_require__) {
|
||||
|
||||
"use strict";
|
||||
|
@ -10494,7 +10519,7 @@ exports.StatTimer = pdfjsSharedUtil.StatTimer;
|
|||
;
|
||||
|
||||
/***/ }),
|
||||
/* 16 */
|
||||
/* 17 */
|
||||
/***/ (function(module, exports, __w_pdfjs_require__) {
|
||||
|
||||
"use strict";
|
||||
|
@ -10514,7 +10539,7 @@ if (typeof ReadableStream !== 'undefined') {
|
|||
if (isReadableStreamSupported) {
|
||||
exports.ReadableStream = ReadableStream;
|
||||
} else {
|
||||
exports.ReadableStream = __w_pdfjs_require__(9).ReadableStream;
|
||||
exports.ReadableStream = __w_pdfjs_require__(10).ReadableStream;
|
||||
}
|
||||
|
||||
/***/ })
|
||||
|
|
|
@ -101,13 +101,12 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.unreachable = exports.warn = exports.utf8StringToString = exports.stringToUTF8String = exports.stringToPDFString = exports.stringToBytes = exports.string32 = exports.shadow = exports.setVerbosityLevel = exports.ReadableStream = exports.removeNullCharacters = exports.readUint32 = exports.readUint16 = exports.readInt8 = exports.log2 = exports.loadJpegStream = exports.isEvalSupported = exports.isLittleEndian = exports.createValidAbsoluteUrl = exports.isSameOrigin = exports.isNodeJS = exports.isSpace = exports.isString = exports.isNum = exports.isInt = exports.isEmptyObj = exports.isBool = exports.isArrayBuffer = exports.isArray = exports.info = exports.globalScope = exports.getVerbosityLevel = exports.getLookupTableFactory = exports.deprecated = exports.createObjectURL = exports.createPromiseCapability = exports.createBlob = exports.bytesToString = exports.assert = exports.arraysToBytes = exports.arrayByteLength = exports.FormatError = exports.XRefParseException = exports.Util = exports.UnknownErrorException = exports.UnexpectedResponseException = exports.TextRenderingMode = exports.StreamType = exports.StatTimer = exports.PasswordResponses = exports.PasswordException = exports.PageViewport = exports.NotImplementedException = exports.NativeImageDecoding = exports.MissingPDFException = exports.MissingDataException = exports.MessageHandler = exports.InvalidPDFException = exports.AbortException = exports.CMapCompressionType = exports.ImageKind = exports.FontType = exports.AnnotationType = exports.AnnotationFlag = exports.AnnotationFieldFlag = exports.AnnotationBorderStyleType = exports.UNSUPPORTED_FEATURES = exports.VERBOSITY_LEVELS = exports.OPS = exports.IDENTITY_MATRIX = exports.FONT_IDENTITY_MATRIX = undefined;
|
||||
exports.unreachable = exports.warn = exports.utf8StringToString = exports.stringToUTF8String = exports.stringToPDFString = exports.stringToBytes = exports.string32 = exports.shadow = exports.setVerbosityLevel = exports.ReadableStream = exports.removeNullCharacters = exports.readUint32 = exports.readUint16 = exports.readInt8 = exports.log2 = exports.loadJpegStream = exports.isEvalSupported = exports.isLittleEndian = exports.createValidAbsoluteUrl = exports.isSameOrigin = exports.isNodeJS = exports.isSpace = exports.isString = exports.isNum = exports.isInt = exports.isEmptyObj = exports.isBool = exports.isArrayBuffer = exports.isArray = exports.info = exports.getVerbosityLevel = exports.getLookupTableFactory = exports.deprecated = exports.createObjectURL = exports.createPromiseCapability = exports.createBlob = exports.bytesToString = exports.assert = exports.arraysToBytes = exports.arrayByteLength = exports.FormatError = exports.XRefParseException = exports.Util = exports.UnknownErrorException = exports.UnexpectedResponseException = exports.TextRenderingMode = exports.StreamType = exports.StatTimer = exports.PasswordResponses = exports.PasswordException = exports.PageViewport = exports.NotImplementedException = exports.NativeImageDecoding = exports.MissingPDFException = exports.MissingDataException = exports.MessageHandler = exports.InvalidPDFException = exports.AbortException = exports.CMapCompressionType = exports.ImageKind = exports.FontType = exports.AnnotationType = exports.AnnotationFlag = exports.AnnotationFieldFlag = exports.AnnotationBorderStyleType = exports.UNSUPPORTED_FEATURES = exports.VERBOSITY_LEVELS = exports.OPS = exports.IDENTITY_MATRIX = exports.FONT_IDENTITY_MATRIX = undefined;
|
||||
|
||||
__w_pdfjs_require__(36);
|
||||
|
||||
var _streams_polyfill = __w_pdfjs_require__(37);
|
||||
|
||||
var globalScope = typeof window !== 'undefined' && window.Math === Math ? window : typeof global !== 'undefined' && global.Math === Math ? global : typeof self !== 'undefined' && self.Math === Math ? self : undefined;
|
||||
var FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0];
|
||||
const NativeImageDecoding = {
|
||||
NONE: 'none',
|
||||
|
@ -1426,7 +1425,6 @@ exports.createObjectURL = createObjectURL;
|
|||
exports.deprecated = deprecated;
|
||||
exports.getLookupTableFactory = getLookupTableFactory;
|
||||
exports.getVerbosityLevel = getVerbosityLevel;
|
||||
exports.globalScope = globalScope;
|
||||
exports.info = info;
|
||||
exports.isArray = isArray;
|
||||
exports.isArrayBuffer = isArrayBuffer;
|
||||
|
@ -4706,11 +4704,12 @@ var Parser = function ParserClosure() {
|
|||
b += a;
|
||||
}
|
||||
adler32 = b % 65521 << 16 | a % 65521;
|
||||
if (this.imageCache.adler32 === adler32) {
|
||||
let cacheEntry = this.imageCache[adler32];
|
||||
if (cacheEntry !== undefined) {
|
||||
this.buf2 = _primitives.Cmd.get('EI');
|
||||
this.shift();
|
||||
this.imageCache[adler32].reset();
|
||||
return this.imageCache[adler32];
|
||||
cacheEntry.reset();
|
||||
return cacheEntry;
|
||||
}
|
||||
}
|
||||
if (cipherTransform) {
|
||||
|
@ -33151,7 +33150,7 @@ var Jbig2Image = function Jbig2ImageClosure() {
|
|||
}
|
||||
return prev & 0x7FFFFFFF;
|
||||
}
|
||||
var SegmentTypes = ['SymbolDictionary', null, null, null, 'IntermediateTextRegion', null, 'ImmediateTextRegion', 'ImmediateLosslessTextRegion', null, null, null, null, null, null, null, null, 'patternDictionary', null, null, null, 'IntermediateHalftoneRegion', null, 'ImmediateHalftoneRegion', 'ImmediateLosslessHalftoneRegion', null, null, null, null, null, null, null, null, null, null, null, null, 'IntermediateGenericRegion', null, 'ImmediateGenericRegion', 'ImmediateLosslessGenericRegion', 'IntermediateGenericRefinementRegion', null, 'ImmediateGenericRefinementRegion', 'ImmediateLosslessGenericRefinementRegion', null, null, null, null, 'PageInformation', 'EndOfPage', 'EndOfStripe', 'EndOfFile', 'Profiles', 'Tables', null, null, null, null, null, null, null, null, 'Extension'];
|
||||
var SegmentTypes = ['SymbolDictionary', null, null, null, 'IntermediateTextRegion', null, 'ImmediateTextRegion', 'ImmediateLosslessTextRegion', null, null, null, null, null, null, null, null, 'PatternDictionary', null, null, null, 'IntermediateHalftoneRegion', null, 'ImmediateHalftoneRegion', 'ImmediateLosslessHalftoneRegion', null, null, null, null, null, null, null, null, null, null, null, null, 'IntermediateGenericRegion', null, 'ImmediateGenericRegion', 'ImmediateLosslessGenericRegion', 'IntermediateGenericRefinementRegion', null, 'ImmediateGenericRefinementRegion', 'ImmediateLosslessGenericRefinementRegion', null, null, null, null, 'PageInformation', 'EndOfPage', 'EndOfStripe', 'EndOfFile', 'Profiles', 'Tables', null, null, null, null, null, null, null, null, 'Extension'];
|
||||
var CodingTemplates = [[{
|
||||
x: -1,
|
||||
y: -2
|
||||
|
@ -33714,6 +33713,134 @@ var Jbig2Image = function Jbig2ImageClosure() {
|
|||
}
|
||||
return bitmap;
|
||||
}
|
||||
function decodePatternDictionary(mmr, patternWidth, patternHeight, maxPatternIndex, template, decodingContext) {
|
||||
let at = [];
|
||||
at.push({
|
||||
x: -patternWidth,
|
||||
y: 0
|
||||
});
|
||||
if (template === 0) {
|
||||
at.push({
|
||||
x: -3,
|
||||
y: -1
|
||||
});
|
||||
at.push({
|
||||
x: 2,
|
||||
y: -2
|
||||
});
|
||||
at.push({
|
||||
x: -2,
|
||||
y: -2
|
||||
});
|
||||
}
|
||||
let collectiveWidth = (maxPatternIndex + 1) * patternWidth;
|
||||
let collectiveBitmap = decodeBitmap(mmr, collectiveWidth, patternHeight, template, false, null, at, decodingContext);
|
||||
let patterns = [],
|
||||
i = 0,
|
||||
patternBitmap,
|
||||
xMin,
|
||||
xMax,
|
||||
y;
|
||||
while (i <= maxPatternIndex) {
|
||||
patternBitmap = [];
|
||||
xMin = patternWidth * i;
|
||||
xMax = xMin + patternWidth;
|
||||
for (y = 0; y < patternHeight; y++) {
|
||||
patternBitmap.push(collectiveBitmap[y].subarray(xMin, xMax));
|
||||
}
|
||||
patterns.push(patternBitmap);
|
||||
i++;
|
||||
}
|
||||
return patterns;
|
||||
}
|
||||
function decodeHalftoneRegion(mmr, patterns, template, regionWidth, regionHeight, defaultPixelValue, enableSkip, combinationOperator, gridWidth, gridHeight, gridOffsetX, gridOffsetY, gridVectorX, gridVectorY, decodingContext) {
|
||||
let skip = null;
|
||||
if (enableSkip) {
|
||||
throw new Jbig2Error('skip is not supported');
|
||||
}
|
||||
if (combinationOperator !== 0) {
|
||||
throw new Jbig2Error('operator ' + combinationOperator + ' is not supported in halftone region');
|
||||
}
|
||||
let regionBitmap = [];
|
||||
let i, j, row;
|
||||
for (i = 0; i < regionHeight; i++) {
|
||||
row = new Uint8Array(regionWidth);
|
||||
if (defaultPixelValue) {
|
||||
for (j = 0; j < regionWidth; j++) {
|
||||
row[j] = defaultPixelValue;
|
||||
}
|
||||
}
|
||||
regionBitmap.push(row);
|
||||
}
|
||||
let numberOfPatterns = patterns.length;
|
||||
let pattern0 = patterns[0];
|
||||
let patternWidth = pattern0[0].length,
|
||||
patternHeight = pattern0.length;
|
||||
let bitsPerValue = (0, _util.log2)(numberOfPatterns);
|
||||
let at = [];
|
||||
at.push({
|
||||
x: template <= 1 ? 3 : 2,
|
||||
y: -1
|
||||
});
|
||||
if (template === 0) {
|
||||
at.push({
|
||||
x: -3,
|
||||
y: -1
|
||||
});
|
||||
at.push({
|
||||
x: 2,
|
||||
y: -2
|
||||
});
|
||||
at.push({
|
||||
x: -2,
|
||||
y: -2
|
||||
});
|
||||
}
|
||||
let grayScaleBitPlanes = [];
|
||||
for (i = bitsPerValue - 1; i >= 0; i--) {
|
||||
grayScaleBitPlanes[i] = decodeBitmap(mmr, gridWidth, gridHeight, template, false, skip, at, decodingContext);
|
||||
}
|
||||
let mg, ng, bit, patternIndex, patternBitmap, x, y, patternRow, regionRow;
|
||||
for (mg = 0; mg < gridHeight; mg++) {
|
||||
for (ng = 0; ng < gridWidth; ng++) {
|
||||
bit = 0;
|
||||
patternIndex = 0;
|
||||
for (j = bitsPerValue - 1; j >= 0; j--) {
|
||||
bit = grayScaleBitPlanes[j][mg][ng] ^ bit;
|
||||
patternIndex |= bit << j;
|
||||
}
|
||||
patternBitmap = patterns[patternIndex];
|
||||
x = gridOffsetX + mg * gridVectorY + ng * gridVectorX >> 8;
|
||||
y = gridOffsetY + mg * gridVectorX - ng * gridVectorY >> 8;
|
||||
if (x >= 0 && x + patternWidth <= regionWidth && y >= 0 && y + patternHeight <= regionHeight) {
|
||||
for (i = 0; i < patternHeight; i++) {
|
||||
regionRow = regionBitmap[y + i];
|
||||
patternRow = patternBitmap[i];
|
||||
for (j = 0; j < patternWidth; j++) {
|
||||
regionRow[x + j] |= patternRow[j];
|
||||
}
|
||||
}
|
||||
} else {
|
||||
let regionX, regionY;
|
||||
for (i = 0; i < patternHeight; i++) {
|
||||
regionY = y + i;
|
||||
if (regionY < 0 || regionY >= regionHeight) {
|
||||
continue;
|
||||
}
|
||||
regionRow = regionBitmap[regionY];
|
||||
patternRow = patternBitmap[i];
|
||||
for (j = 0; j < patternWidth; j++) {
|
||||
regionX = x + j;
|
||||
if (regionX >= 0 && regionX < regionWidth) {
|
||||
regionRow[regionX] |= patternRow[j];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return regionBitmap;
|
||||
}
|
||||
function readSegmentHeader(data, start) {
|
||||
var segmentHeader = {};
|
||||
segmentHeader.number = (0, _util.readUint32)(data, start);
|
||||
|
@ -33929,6 +34056,42 @@ var Jbig2Image = function Jbig2ImageClosure() {
|
|||
}
|
||||
args = [textRegion, header.referredTo, data, position, end];
|
||||
break;
|
||||
case 16:
|
||||
let patternDictionary = {};
|
||||
let patternDictionaryFlags = data[position++];
|
||||
patternDictionary.mmr = !!(patternDictionaryFlags & 1);
|
||||
patternDictionary.template = patternDictionaryFlags >> 1 & 3;
|
||||
patternDictionary.patternWidth = data[position++];
|
||||
patternDictionary.patternHeight = data[position++];
|
||||
patternDictionary.maxPatternIndex = (0, _util.readUint32)(data, position);
|
||||
position += 4;
|
||||
args = [patternDictionary, header.number, data, position, end];
|
||||
break;
|
||||
case 22:
|
||||
case 23:
|
||||
let halftoneRegion = {};
|
||||
halftoneRegion.info = readRegionSegmentInformation(data, position);
|
||||
position += RegionSegmentInformationFieldLength;
|
||||
let halftoneRegionFlags = data[position++];
|
||||
halftoneRegion.mmr = !!(halftoneRegionFlags & 1);
|
||||
halftoneRegion.template = halftoneRegionFlags >> 1 & 3;
|
||||
halftoneRegion.enableSkip = !!(halftoneRegionFlags & 8);
|
||||
halftoneRegion.combinationOperator = halftoneRegionFlags >> 4 & 7;
|
||||
halftoneRegion.defaultPixelValue = halftoneRegionFlags >> 7 & 1;
|
||||
halftoneRegion.gridWidth = (0, _util.readUint32)(data, position);
|
||||
position += 4;
|
||||
halftoneRegion.gridHeight = (0, _util.readUint32)(data, position);
|
||||
position += 4;
|
||||
halftoneRegion.gridOffsetX = (0, _util.readUint32)(data, position) & 0xFFFFFFFF;
|
||||
position += 4;
|
||||
halftoneRegion.gridOffsetY = (0, _util.readUint32)(data, position) & 0xFFFFFFFF;
|
||||
position += 4;
|
||||
halftoneRegion.gridVectorX = (0, _util.readUint16)(data, position);
|
||||
position += 2;
|
||||
halftoneRegion.gridVectorY = (0, _util.readUint16)(data, position);
|
||||
position += 2;
|
||||
args = [halftoneRegion, header.referredTo, data, position, end];
|
||||
break;
|
||||
case 38:
|
||||
case 39:
|
||||
var genericRegion = {};
|
||||
|
@ -34120,6 +34283,24 @@ var Jbig2Image = function Jbig2ImageClosure() {
|
|||
},
|
||||
onImmediateLosslessTextRegion: function SimpleSegmentVisitor_onImmediateLosslessTextRegion() {
|
||||
this.onImmediateTextRegion.apply(this, arguments);
|
||||
},
|
||||
onPatternDictionary(dictionary, currentSegment, data, start, end) {
|
||||
let patterns = this.patterns;
|
||||
if (!patterns) {
|
||||
this.patterns = patterns = {};
|
||||
}
|
||||
let decodingContext = new DecodingContext(data, start, end);
|
||||
patterns[currentSegment] = decodePatternDictionary(dictionary.mmr, dictionary.patternWidth, dictionary.patternHeight, dictionary.maxPatternIndex, dictionary.template, decodingContext);
|
||||
},
|
||||
onImmediateHalftoneRegion(region, referredSegments, data, start, end) {
|
||||
let patterns = this.patterns[referredSegments[0]];
|
||||
let regionInfo = region.info;
|
||||
let decodingContext = new DecodingContext(data, start, end);
|
||||
let bitmap = decodeHalftoneRegion(region.mmr, patterns, region.template, regionInfo.width, regionInfo.height, region.defaultPixelValue, region.enableSkip, region.combinationOperator, region.gridWidth, region.gridHeight, region.gridOffsetX, region.gridOffsetY, region.gridVectorX, region.gridVectorY, decodingContext);
|
||||
this.drawBitmap(regionInfo, bitmap);
|
||||
},
|
||||
onImmediateLosslessHalftoneRegion() {
|
||||
this.onImmediateHalftoneRegion.apply(this, arguments);
|
||||
}
|
||||
};
|
||||
function Jbig2Image() {}
|
||||
|
@ -39856,8 +40037,8 @@ exports.Type1Parser = Type1Parser;
|
|||
"use strict";
|
||||
|
||||
|
||||
var pdfjsVersion = '1.9.441';
|
||||
var pdfjsBuild = '8c8d8fa2';
|
||||
var pdfjsVersion = '1.9.456';
|
||||
var pdfjsBuild = 'cb10c03d';
|
||||
var pdfjsCoreWorker = __w_pdfjs_require__(17);
|
||||
exports.WorkerMessageHandler = pdfjsCoreWorker.WorkerMessageHandler;
|
||||
|
||||
|
|
|
@ -13,3 +13,4 @@ SharedLibrary('crashinjectdll')
|
|||
DEFFILE = SRCDIR + '/crashinjectdll.def'
|
||||
|
||||
USE_STATIC_LIBS = True
|
||||
NO_PGO = True
|
||||
|
|
|
@ -11,7 +11,6 @@
|
|||
#include "nsIServiceManager.h"
|
||||
#include "nsIURL.h"
|
||||
#include "nsCOMPtr.h"
|
||||
#include "nsXPIDLString.h"
|
||||
#include "nsReadableUtils.h"
|
||||
#include "nsCRT.h"
|
||||
#include "nsString.h"
|
||||
|
|
|
@ -9,7 +9,6 @@
|
|||
#include "nsIObjectInputStream.h"
|
||||
#include "nsJSPrincipals.h"
|
||||
#include "plstr.h"
|
||||
#include "nsXPIDLString.h"
|
||||
#include "nsCOMPtr.h"
|
||||
#include "nsIServiceManager.h"
|
||||
#include "nsMemory.h"
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
#include "SystemPrincipal.h"
|
||||
#include "NullPrincipal.h"
|
||||
#include "DomainPolicy.h"
|
||||
#include "nsXPIDLString.h"
|
||||
#include "nsString.h"
|
||||
#include "nsCRT.h"
|
||||
#include "nsCRTGlue.h"
|
||||
#include "nsDocShell.h"
|
||||
|
|
|
@ -16,12 +16,12 @@
|
|||
#include "nsCOMPtr.h"
|
||||
#include "nsIObserver.h"
|
||||
#include "nsServiceManagerUtils.h"
|
||||
#include "nsStringFwd.h"
|
||||
#include "plstr.h"
|
||||
#include "js/TypeDecls.h"
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
class nsCString;
|
||||
class nsIIOService;
|
||||
class nsIStringBundle;
|
||||
class SystemPrincipal;
|
||||
|
|
|
@ -234,6 +234,7 @@ menu {
|
|||
menu > menuitem::after {
|
||||
content: "\25BA";
|
||||
float: right;
|
||||
padding-left: 5px;
|
||||
}
|
||||
|
||||
menu > menupopup {
|
||||
|
@ -386,10 +387,6 @@ body {
|
|||
width: 100%;
|
||||
}
|
||||
|
||||
.subsettings:hover {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.search-container {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
|
@ -407,6 +404,13 @@ body {
|
|||
margin-right: 20px;
|
||||
}
|
||||
|
||||
/* Utils */
|
||||
.absolute-center {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
}
|
||||
menupopup {
|
||||
position: fixed;
|
||||
z-index: 10000;
|
||||
|
@ -433,7 +437,6 @@ menuitem {
|
|||
menuitem:hover {
|
||||
background: #3780fb;
|
||||
color: white;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
menuitem[disabled=true] {
|
||||
|
@ -494,7 +497,6 @@ menuseparator {
|
|||
/******************************************************************************/
|
||||
|
||||
.objectLink:hover {
|
||||
cursor: pointer;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
|
@ -590,7 +592,6 @@ menuseparator {
|
|||
.objectRightBrace,
|
||||
.arrayLeftBracket,
|
||||
.arrayRightBracket {
|
||||
cursor: pointer;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
|
@ -730,25 +731,6 @@ menuseparator {
|
|||
.split-box.dragging > .uncontrolled {
|
||||
pointer-events: none;
|
||||
}
|
||||
.search-container {
|
||||
position: absolute;
|
||||
top: 30px;
|
||||
left: 0;
|
||||
width: calc(100% - 1px);
|
||||
height: calc(100% - 31px);
|
||||
display: flex;
|
||||
z-index: 200;
|
||||
background-color: var(--theme-body-background);
|
||||
}
|
||||
|
||||
.searchinput-container {
|
||||
display: flex;
|
||||
border-bottom: 1px solid var(--theme-splitter-color);
|
||||
}
|
||||
|
||||
.theme-dark .result-list li .subtitle {
|
||||
color: var(--theme-comment-alt);
|
||||
}
|
||||
.arrow,
|
||||
.folder,
|
||||
.domain,
|
||||
|
@ -838,7 +820,6 @@ html .arrow.expanded svg {
|
|||
.managed-tree .tree .node {
|
||||
padding: 2px 3px 2px 3px;
|
||||
position: relative;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.managed-tree .tree .node.focused {
|
||||
|
@ -872,7 +853,6 @@ html[dir="rtl"] .managed-tree .tree .node > div {
|
|||
}
|
||||
|
||||
.close-btn .close {
|
||||
cursor: pointer;
|
||||
width: 14px;
|
||||
height: 14px;
|
||||
transition: all 0.25s ease-in-out;
|
||||
|
@ -1011,7 +991,6 @@ html[dir="rtl"] .managed-tree .tree .node > div {
|
|||
}
|
||||
|
||||
.search-field .search-nav-buttons .nav-btn:hover {
|
||||
cursor: pointer;
|
||||
background: var(--theme-toolbar-background-hover);
|
||||
}
|
||||
|
||||
|
@ -1024,6 +1003,9 @@ html[dir="rtl"] .managed-tree .tree .node > div {
|
|||
}
|
||||
.project-text-search {
|
||||
flex-grow: 1;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
overflow-y: hidden;
|
||||
}
|
||||
|
||||
.project-text-search .result {
|
||||
|
@ -1031,14 +1013,19 @@ html[dir="rtl"] .managed-tree .tree .node > div {
|
|||
cursor: default;
|
||||
margin-bottom: 1px;
|
||||
padding: 4px 0 4px 30px;
|
||||
font-size: 10px;
|
||||
}
|
||||
|
||||
.project-text-search .matches-summary {
|
||||
margin-left: 2px;
|
||||
margin-left: 5px;
|
||||
}
|
||||
|
||||
.project-text-search .result {
|
||||
font-family: Menlo, monospace;
|
||||
}
|
||||
|
||||
.project-text-search .result.focused {
|
||||
background-color: #eeeeee;
|
||||
background-color: var(--theme-codemirror-gutter-background);
|
||||
}
|
||||
|
||||
.project-text-search .result .query-match {
|
||||
|
@ -1062,8 +1049,9 @@ html[dir="rtl"] .managed-tree .tree .node > div {
|
|||
font-weight: bold;
|
||||
line-height: 20px;
|
||||
cursor: default;
|
||||
margin: 2px 20px 2px 0;
|
||||
margin: 2px 0;
|
||||
padding: 3px 0 3px 5px;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.project-text-search .file-result .arrow {
|
||||
|
@ -1071,7 +1059,7 @@ html[dir="rtl"] .managed-tree .tree .node > div {
|
|||
}
|
||||
|
||||
.project-text-search .file-result.focused {
|
||||
background-color: #eeeeee;
|
||||
background-color: var(--theme-codemirror-gutter-background);
|
||||
}
|
||||
|
||||
.project-text-search .line-match {
|
||||
|
@ -1084,33 +1072,22 @@ html[dir="rtl"] .managed-tree .tree .node > div {
|
|||
align-self: stretch;
|
||||
flex-grow: 1;
|
||||
}
|
||||
|
||||
.project-text-search .managed-tree {
|
||||
overflow-y: auto;
|
||||
}
|
||||
.autocomplete {
|
||||
flex: 1;
|
||||
position: relative;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.autocomplete .no-result-msg {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
color: var(--theme-graphs-full-red);
|
||||
color: var(--theme-body-color-inactive);
|
||||
font-size: 24px;
|
||||
padding: 4px;
|
||||
word-break: break-all;
|
||||
}
|
||||
|
||||
.autocomplete .no-result-msg .sad-face {
|
||||
width: 24px;
|
||||
margin: 0 4px;
|
||||
line-height: 0;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.autocomplete .no-result-msg .sad-face svg {
|
||||
fill: var(--theme-graphs-full-red);
|
||||
}
|
||||
.result-list {
|
||||
list-style: none;
|
||||
margin: 0px;
|
||||
|
@ -1144,7 +1121,6 @@ html[dir="rtl"] .managed-tree .tree .node > div {
|
|||
|
||||
.result-list li:hover {
|
||||
background: var(--theme-tab-toolbar-background);
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.result-list li.selected {
|
||||
|
@ -1193,6 +1169,53 @@ html[dir="rtl"] .managed-tree .tree .node > div {
|
|||
.theme-dark .result-list {
|
||||
background-color: var(--theme-body-background);
|
||||
}
|
||||
.search-container {
|
||||
position: absolute;
|
||||
top: 30px;
|
||||
left: 0;
|
||||
width: calc(100% - 1px);
|
||||
height: calc(100% - 31px);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
z-index: 200;
|
||||
background-color: var(--theme-body-background);
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
.searchinput-container {
|
||||
display: flex;
|
||||
border-bottom: 1px solid var(--theme-splitter-color);
|
||||
}
|
||||
|
||||
.theme-dark .result-list li .subtitle {
|
||||
color: var(--theme-comment-alt);
|
||||
}
|
||||
|
||||
.toggle-search {
|
||||
background-color: var(--theme-toolbar-background);
|
||||
border-bottom: 1px solid var(--theme-splitter-color);
|
||||
color: var(--theme-comment-alt);
|
||||
display: flex;
|
||||
flex-shrink: 0;
|
||||
justify-content: flex-start;
|
||||
line-height: 40px;
|
||||
padding: 0 13px;
|
||||
width: calc(100% - 1px);
|
||||
}
|
||||
|
||||
.toggle-search .title {
|
||||
font-weight: 500;
|
||||
font-size: 120%;
|
||||
}
|
||||
|
||||
.toggle-search .text {
|
||||
margin-left: 1em;
|
||||
}
|
||||
|
||||
.toggle-search .active {
|
||||
color: var(--theme-selection-background);
|
||||
cursor: default;
|
||||
}
|
||||
.sources-panel {
|
||||
flex: 1;
|
||||
display: flex;
|
||||
|
@ -1234,7 +1257,6 @@ html[dir="rtl"] .managed-tree .tree .node > div {
|
|||
font-weight: lighter;
|
||||
white-space: nowrap;
|
||||
padding-inline-end: 10px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.sources-list {
|
||||
|
@ -1252,7 +1274,7 @@ html[dir="rtl"] .managed-tree .tree .node > div {
|
|||
}
|
||||
|
||||
.theme-dark .sources-list .tree .node:not(.focused) svg {
|
||||
fill: var(--theme-comment);
|
||||
fill: var(--theme-content-color3);
|
||||
}
|
||||
|
||||
.theme-dark .source-list .tree .node.focused {
|
||||
|
@ -1309,20 +1331,22 @@ html[dir="rtl"] .managed-tree .tree .node > div {
|
|||
.source-footer .tab:hover {
|
||||
background-color: var(--theme-toolbar-background-alt);
|
||||
border-color: var(--theme-splitter-color);
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.source-footer .tab.active {
|
||||
color: var(--theme-body-color);
|
||||
background-color: var(--theme-body-background);
|
||||
background-color: var(--theme-toolbar-background);
|
||||
border-color: var(--theme-splitter-color);
|
||||
border-top-color: transparent;
|
||||
}
|
||||
|
||||
.source-footer .tab.active path,
|
||||
.source-footer .tab:hover path {
|
||||
fill: var(--theme-body-color);
|
||||
}
|
||||
.outline {
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
.outline-list {
|
||||
list-style-type: none;
|
||||
padding-left: 0px;
|
||||
|
@ -1331,16 +1355,16 @@ html[dir="rtl"] .managed-tree .tree .node > div {
|
|||
|
||||
.outline-list__element {
|
||||
color: blue;
|
||||
padding-bottom: 0.2rem;
|
||||
padding-left: 1rem;
|
||||
padding-right: 0.5rem;
|
||||
cursor: pointer;
|
||||
padding-top: 0.2rem;
|
||||
}
|
||||
|
||||
.outline-list__element:hover {
|
||||
background: var(--theme-toolbar-background-hover);
|
||||
}
|
||||
.function-signature {
|
||||
line-height: 20px;
|
||||
align-self: center;
|
||||
}
|
||||
|
||||
|
@ -1397,7 +1421,6 @@ html[dir="rtl"] .managed-tree .tree .node > div {
|
|||
.toggle-button-end {
|
||||
transform: translate(0, 2px);
|
||||
transition: transform 0.25s ease-in-out;
|
||||
cursor: pointer;
|
||||
padding: 5px 2px;
|
||||
}
|
||||
|
||||
|
@ -1440,7 +1463,7 @@ html .toggle-button-end.vertical svg {
|
|||
transform: rotate(180deg);
|
||||
}
|
||||
.source-footer {
|
||||
background: var(--theme-toolbar-background);
|
||||
background: var(--theme-body-background);
|
||||
border-top: 1px solid var(--theme-splitter-color);
|
||||
position: absolute;
|
||||
display: flex;
|
||||
|
@ -1466,7 +1489,6 @@ html .toggle-button-end.vertical svg {
|
|||
}
|
||||
|
||||
.source-footer > .commands > .action {
|
||||
cursor: pointer;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
|
@ -1580,10 +1602,6 @@ html .toggle-button-end.vertical svg {
|
|||
width: 16px;
|
||||
}
|
||||
|
||||
.search-bottom-bar .search-modifiers button svg:hover {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.search-bottom-bar .search-modifiers button:hover {
|
||||
background: var(--theme-toolbar-background-hover);
|
||||
}
|
||||
|
@ -1606,27 +1624,14 @@ html .toggle-button-end.vertical svg {
|
|||
max-width: 68%;
|
||||
}
|
||||
|
||||
.search-bottom-bar .search-type-toggles .search-toggle-title {
|
||||
color: var(--theme-body-color-inactive);
|
||||
font-size: 11px;
|
||||
font-weight: normal;
|
||||
margin: 0;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.search-bottom-bar .search-type-toggles .search-type-btn {
|
||||
.search-bottom-bar .search-type-name {
|
||||
padding: 1px 0 0 0;
|
||||
margin: 0 0 0 6px;
|
||||
border: none;
|
||||
background: transparent;
|
||||
color: var(--theme-comment-alt);
|
||||
}
|
||||
|
||||
.search-bottom-bar .search-type-toggles .search-type-btn:hover {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.search-bottom-bar .search-type-toggles .search-type-btn:active {
|
||||
outline: none;
|
||||
}
|
||||
|
@ -1707,6 +1712,10 @@ html .toggle-button-end.vertical svg {
|
|||
color: var(--string-color);
|
||||
}
|
||||
|
||||
.objectBox-string a, .objectBox-string a:visited {
|
||||
color: currentColor;
|
||||
}
|
||||
|
||||
.objectBox-function,
|
||||
.objectBox-stackTrace,
|
||||
.objectBox-profile {
|
||||
|
@ -1835,12 +1844,21 @@ html .toggle-button-end.vertical svg {
|
|||
.open-inspector svg:hover {
|
||||
fill: rgb(65, 175, 230);
|
||||
}
|
||||
|
||||
/******************************************************************************/
|
||||
/* "more…" ellipsis */
|
||||
.more-ellipsis {
|
||||
color: var(--theme-comment);
|
||||
}
|
||||
/* 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/. */
|
||||
|
||||
.tree {
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
.tree.inline {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
|
@ -1889,18 +1907,20 @@ html[dir="rtl"] .arrow svg,
|
|||
transform: rotate(0deg);
|
||||
}
|
||||
|
||||
.object-label {
|
||||
.object-label, .object-label * {
|
||||
color: var(--theme-highlight-blue);
|
||||
}
|
||||
.object-value .unavailable {
|
||||
color: var(--theme-comment);
|
||||
}
|
||||
.bracket-arrow {
|
||||
position: absolute;
|
||||
|
||||
.tree .node .unavailable {
|
||||
color: var(--theme-content-color3);
|
||||
}
|
||||
|
||||
.bracket-arrow:hover {
|
||||
cursor: pointer;
|
||||
.lessen {
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
.bracket-arrow {
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
.bracket-arrow::before,
|
||||
|
@ -1981,10 +2001,6 @@ html[dir="rtl"] .arrow svg,
|
|||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.popover .preview .header .link:hover {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.selection,
|
||||
.debug-expression.selection {
|
||||
background-color: var(--theme-highlight-yellow);
|
||||
|
@ -2000,10 +2016,6 @@ html[dir="rtl"] .arrow svg,
|
|||
color: #e7ebee;
|
||||
}
|
||||
|
||||
.selection:hover {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.popover .preview .function-signature {
|
||||
padding-top: 10px;
|
||||
}
|
||||
|
@ -2013,7 +2025,7 @@ html[dir="rtl"] .arrow svg,
|
|||
}
|
||||
|
||||
.theme-dark .popover .preview .arrow svg {
|
||||
fill: var(--theme-comment);
|
||||
fill: var(--theme-content-color3);
|
||||
}
|
||||
|
||||
.tooltip {
|
||||
|
@ -2032,7 +2044,6 @@ html[dir="rtl"] .arrow svg,
|
|||
min-height: inherit;
|
||||
max-height: 200px;
|
||||
overflow: auto;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.theme-dark .tooltip .preview {
|
||||
|
@ -2057,10 +2068,10 @@ html[dir="rtl"] .arrow svg,
|
|||
line-height: 30px;
|
||||
background: var(--theme-toolbar-background);
|
||||
color: var(--theme-comment-alt);
|
||||
padding: 0 4px;
|
||||
}
|
||||
|
||||
.add-to-expression-bar .prompt {
|
||||
padding-left: 3px;
|
||||
width: 1em;
|
||||
}
|
||||
|
||||
|
@ -2070,12 +2081,10 @@ html[dir="rtl"] .arrow svg,
|
|||
|
||||
.add-to-expression-bar .expression-to-save-button {
|
||||
font-size: 14px;
|
||||
color: var(--theme-comment);
|
||||
cursor: pointer;
|
||||
color: var(--theme-content-color3);
|
||||
}
|
||||
.call-site {
|
||||
background: #f0f9ff;
|
||||
cursor: pointer;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
|
@ -2088,7 +2097,6 @@ html[dir="rtl"] .arrow svg,
|
|||
}
|
||||
|
||||
.call-site-bp {
|
||||
cursor: pointer;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
|
@ -2141,7 +2149,7 @@ html[dir="rtl"] .arrow svg,
|
|||
}
|
||||
|
||||
.theme-light {
|
||||
--theme-conditional-breakpoint-color: #ccd1d5;
|
||||
--theme-conditional-breakpoint-color: var(--theme-body-color);
|
||||
}
|
||||
|
||||
.paused .in-scope .CodeMirror-line,
|
||||
|
@ -2161,7 +2169,7 @@ html[dir="rtl"] .arrow svg,
|
|||
.editor-wrapper {
|
||||
position: absolute;
|
||||
height: calc(100% - 31px);
|
||||
width: 100%;
|
||||
width: calc(100% - 1.5px);
|
||||
top: 30px;
|
||||
left: 0px;
|
||||
--editor-footer-height: 27px;
|
||||
|
@ -2218,10 +2226,6 @@ html[dir="rtl"] .editor-mount {
|
|||
border: 1px solid #00b6ff;
|
||||
}
|
||||
|
||||
.inline-bp:hover {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.editor.new-breakpoint.folding-enabled svg {
|
||||
right: -16px;
|
||||
}
|
||||
|
@ -2440,7 +2444,6 @@ html .breakpoints-list .breakpoint.paused {
|
|||
}
|
||||
|
||||
.breakpoints-list .breakpoint:hover {
|
||||
cursor: pointer;
|
||||
background-color: var(--search-overlays-semitransparent);
|
||||
}
|
||||
|
||||
|
@ -2499,7 +2502,6 @@ html .breakpoints-list .breakpoint.paused {
|
|||
width: 100%;
|
||||
margin: 0px;
|
||||
border: 1px;
|
||||
cursor: pointer;
|
||||
background-color: var(--theme-body-background);
|
||||
font-size: 12px;
|
||||
padding: 0px 20px;
|
||||
|
@ -2570,7 +2572,6 @@ html .breakpoints-list .breakpoint.paused {
|
|||
}
|
||||
|
||||
.expression-input {
|
||||
cursor: pointer;
|
||||
max-width: 50%;
|
||||
}
|
||||
|
||||
|
@ -2642,7 +2643,6 @@ html .breakpoints-list .breakpoint.paused {
|
|||
}
|
||||
|
||||
.frames ul li {
|
||||
cursor: pointer;
|
||||
padding: 7px 10px 7px 21px;
|
||||
overflow: hidden;
|
||||
display: flex;
|
||||
|
@ -2674,8 +2674,8 @@ html .breakpoints-list .breakpoint.paused {
|
|||
margin: 0;
|
||||
}
|
||||
|
||||
:root.theme-light .frames .location,
|
||||
:root.theme-firebug .frames .location {
|
||||
.theme-light .frames .location,
|
||||
.theme-firebug .frames .location {
|
||||
color: var(--theme-comment);
|
||||
}
|
||||
|
||||
|
@ -2722,7 +2722,6 @@ html .breakpoints-list .breakpoint.paused {
|
|||
}
|
||||
|
||||
.show-more {
|
||||
cursor: pointer;
|
||||
text-align: center;
|
||||
padding: 8px 0px;
|
||||
margin: 7px 10px 7px 7px;
|
||||
|
@ -2750,7 +2749,6 @@ html .breakpoints-list .breakpoint.paused {
|
|||
}
|
||||
|
||||
.event-listeners .listener {
|
||||
cursor: pointer;
|
||||
padding: 7px 10px 7px 21px;
|
||||
clear: both;
|
||||
overflow: hidden;
|
||||
|
@ -2797,7 +2795,6 @@ html .breakpoints-list .breakpoint.paused {
|
|||
.accordion ._header {
|
||||
background-color: var(--theme-toolbar-background);
|
||||
border-bottom: 1px solid var(--theme-splitter-color);
|
||||
cursor: pointer;
|
||||
font-size: 12px;
|
||||
padding: 5px;
|
||||
transition: all 0.25s ease;
|
||||
|
@ -2881,7 +2878,6 @@ html[dir="rtl"] .command-bar {
|
|||
appearance: none;
|
||||
background: transparent;
|
||||
border: none;
|
||||
cursor: pointer;
|
||||
display: inline-block;
|
||||
text-align: center;
|
||||
padding: 8px 5px;
|
||||
|
@ -2889,7 +2885,7 @@ html[dir="rtl"] .command-bar {
|
|||
fill: currentColor;
|
||||
}
|
||||
|
||||
.command-bar > button:hover {
|
||||
.command-bar > button:not(.disabled):hover {
|
||||
background: var(--theme-toolbar-background-hover);
|
||||
}
|
||||
|
||||
|
@ -3001,7 +2997,7 @@ html .command-bar > button:disabled {
|
|||
}
|
||||
|
||||
.theme-dark .secondary-panes .accordion .arrow svg {
|
||||
fill: var(--theme-comment);
|
||||
fill: var(--theme-content-color3);
|
||||
}
|
||||
.welcomebox {
|
||||
width: calc(100% - 1px);
|
||||
|
@ -3047,8 +3043,7 @@ html .welcomebox .toggle-button-end.collapsed {
|
|||
.source-header .new-tab-btn {
|
||||
padding: 0px 4px;
|
||||
margin-top: 4px;
|
||||
cursor: pointer;
|
||||
fill: var(--theme-comment);
|
||||
fill: var(--theme-content-color3);
|
||||
transition: 0.1s ease;
|
||||
align-self: center;
|
||||
}
|
||||
|
@ -3080,7 +3075,6 @@ html .welcomebox .toggle-button-end.collapsed {
|
|||
.source-tab:hover {
|
||||
background-color: var(--theme-toolbar-background-alt);
|
||||
border-color: var(--theme-splitter-color);
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.source-tab.active {
|
||||
|
@ -3158,6 +3152,7 @@ html .welcomebox .toggle-button-end.collapsed {
|
|||
top: 23px;
|
||||
width: var(--width);
|
||||
z-index: 1000;
|
||||
overflow: scroll;
|
||||
}
|
||||
|
||||
html[dir="rtl"] .dropdown {
|
||||
|
@ -3171,8 +3166,7 @@ html[dir="rtl"] .dropdown {
|
|||
}
|
||||
|
||||
.dropdown-button {
|
||||
cursor: pointer;
|
||||
color: var(--theme-comment);
|
||||
color: var(--theme-content-color3);
|
||||
background: none;
|
||||
border: none;
|
||||
padding: 0;
|
||||
|
@ -3191,7 +3185,6 @@ html[dir="rtl"] .dropdown {
|
|||
|
||||
.dropdown li:hover {
|
||||
background-color: var(--search-overlays-semitransparent);
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.dropdown ul {
|
||||
|
@ -3211,6 +3204,45 @@ html[dir="rtl"] .dropdown {
|
|||
left: 0;
|
||||
top: 0;
|
||||
}
|
||||
.modal-wrapper {
|
||||
position: fixed;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
top: 0;
|
||||
left: 0;
|
||||
transition: z-index 200ms;
|
||||
z-index: 9;
|
||||
}
|
||||
|
||||
.modal {
|
||||
top: 0;
|
||||
z-index: 10;
|
||||
width: 500px;
|
||||
height: 230px;
|
||||
background-color: var(--theme-codemirror-gutter-background);
|
||||
transform: translateY(-250px);
|
||||
transition: transform 150ms cubic-bezier(0.07, 0.95, 0, 1);
|
||||
box-shadow: 2px 4px 6px var(--popup-shadow-color);
|
||||
}
|
||||
|
||||
.modal.entering,
|
||||
.modal.exited {
|
||||
transform: translateY(-250px);
|
||||
}
|
||||
|
||||
.modal.entered,
|
||||
.modal.exiting {
|
||||
transform: translateY(30px);
|
||||
}
|
||||
|
||||
@media (max-width: 520px) {
|
||||
.modal {
|
||||
width: 80%;
|
||||
left: 10%;
|
||||
}
|
||||
}
|
||||
.symbol-modal-wrapper {
|
||||
position: fixed;
|
||||
width: 100%;
|
||||
|
@ -3225,35 +3257,20 @@ html[dir="rtl"] .dropdown {
|
|||
width: 500px;
|
||||
height: 230px;
|
||||
background-color: var(--theme-codemirror-gutter-background);
|
||||
box-shadow: 2px 4px 6px var(--popup-shadow-color);
|
||||
top: 30px;
|
||||
}
|
||||
|
||||
.theme-dark .symbol-modal {
|
||||
box-shadow: 2px 4px 6px var(--popup-shadow-color);
|
||||
}
|
||||
|
||||
.symbol-modal .input-wrapper {
|
||||
display: -webkit-box;
|
||||
display: -ms-flexbox;
|
||||
.symbol-modal .input-wrapper,
|
||||
.modal .input-wrapper {
|
||||
display: flex;
|
||||
-webkit-box-pack: center;
|
||||
-ms-flex-pack: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.symbol-modal .close-btn {
|
||||
.modal .close-btn {
|
||||
padding: 6px;
|
||||
}
|
||||
|
||||
.symbol-modal .result-list {
|
||||
.modal .result-list {
|
||||
height: calc(100% - 28px);
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
@media (max-width: 520px) {
|
||||
.symbol-modal {
|
||||
width: 80%;
|
||||
left: 10%;
|
||||
}
|
||||
}
|
||||
|
|
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -64,12 +64,19 @@ skip-if = debug # bug 1374187
|
|||
[browser_dbg_keyboard-shortcuts.js]
|
||||
skip-if = os == "linux" # bug 1351952
|
||||
[browser_dbg-pause-exceptions.js]
|
||||
skip-if = true # Bug 1393121
|
||||
[browser_dbg-navigation.js]
|
||||
[browser_dbg-pretty-print.js]
|
||||
[browser_dbg-pretty-print-paused.js]
|
||||
[browser_dbg-scopes-mutations.js]
|
||||
[browser_dbg-searching.js]
|
||||
skip-if = true
|
||||
[browser_dbg-search-file.js]
|
||||
skip-if = os == "win" # Bug 1393121
|
||||
[browser_dbg-search-sources.js]
|
||||
skip-if = os == "win" # Bug 1393121
|
||||
[browser_dbg-search-symbols.js]
|
||||
skip-if = os == "win" # Bug 1393121
|
||||
[browser_dbg-search-project.js]
|
||||
skip-if = os == "win" # Bug 1393121
|
||||
[browser_dbg-sourcemaps.js]
|
||||
[browser_dbg-sourcemaps-reloading.js]
|
||||
[browser_dbg-sourcemaps2.js]
|
||||
|
|
|
@ -29,5 +29,5 @@ add_task(function*() {
|
|||
yield waitForDispatch(dbg, "LOAD_SOURCE_TEXT");
|
||||
is(dbg.win.cm.getValue(), "debugger");
|
||||
const source = getSelectedSource(getState()).toJS();
|
||||
assertPausedLocation(dbg, source, 1);
|
||||
assertPausedLocation(dbg);
|
||||
});
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
// Tests the breakpoints are hit in various situations.
|
||||
|
||||
add_task(function* () {
|
||||
add_task(function*() {
|
||||
const dbg = yield initDebugger("doc-scripts.html");
|
||||
const { selectors: { getSelectedSource }, getState } = dbg;
|
||||
|
||||
|
@ -12,7 +12,7 @@ add_task(function* () {
|
|||
yield addBreakpoint(dbg, "scripts.html", 18);
|
||||
reload(dbg);
|
||||
yield waitForPaused(dbg);
|
||||
assertPausedLocation(dbg, "scripts.html", 18);
|
||||
assertPausedLocation(dbg);
|
||||
yield resume(dbg);
|
||||
|
||||
const paused = waitForPaused(dbg);
|
||||
|
@ -28,5 +28,5 @@ add_task(function* () {
|
|||
yield addBreakpoint(dbg, source, 5);
|
||||
invokeInTab("evaledFunc");
|
||||
yield waitForPaused(dbg);
|
||||
assertPausedLocation(dbg, source, 5);
|
||||
assertPausedLocation(dbg);
|
||||
});
|
||||
|
|
|
@ -34,9 +34,11 @@ add_task(function*() {
|
|||
yield addBreakpoint(dbg, 5);
|
||||
yield addBreakpoint(dbg, 2);
|
||||
|
||||
const syncedBps = waitForDispatch(dbg, "SYNC_BREAKPOINT", 2);
|
||||
yield reload(dbg, "simple1");
|
||||
yield waitForSelectedSource(dbg);
|
||||
yield waitForDispatch(dbg, "SYNC_BREAKPOINT", 2);
|
||||
yield syncedBps;
|
||||
|
||||
assertEditorBreakpoint(dbg, 4);
|
||||
assertEditorBreakpoint(dbg, 5);
|
||||
});
|
||||
|
|
|
@ -24,31 +24,31 @@ function clickStepOut(dbg) {
|
|||
* 4. stepOver to the end of a function
|
||||
* 5. stepUp at the end of a function
|
||||
*/
|
||||
add_task(function* () {
|
||||
add_task(function*() {
|
||||
const dbg = yield initDebugger("doc-debugger-statements.html");
|
||||
|
||||
yield reload(dbg);
|
||||
yield waitForPaused(dbg);
|
||||
assertPausedLocation(dbg, "debugger-statements.html", 8);
|
||||
assertPausedLocation(dbg);
|
||||
|
||||
// resume
|
||||
clickElement(dbg, "resume");
|
||||
yield waitForPaused(dbg);
|
||||
assertPausedLocation(dbg, "debugger-statements.html", 12);
|
||||
assertPausedLocation(dbg);
|
||||
|
||||
// step over
|
||||
yield clickStepOver(dbg);
|
||||
assertPausedLocation(dbg, "debugger-statements.html", 13);
|
||||
assertPausedLocation(dbg);
|
||||
|
||||
// step into
|
||||
yield clickStepIn(dbg);
|
||||
assertPausedLocation(dbg, "debugger-statements.html", 18);
|
||||
assertPausedLocation(dbg);
|
||||
|
||||
// step over
|
||||
yield clickStepOver(dbg);
|
||||
assertPausedLocation(dbg, "debugger-statements.html", 20);
|
||||
assertPausedLocation(dbg);
|
||||
|
||||
// step out
|
||||
yield clickStepOut(dbg);
|
||||
assertPausedLocation(dbg, "debugger-statements.html", 20);
|
||||
assertPausedLocation(dbg);
|
||||
});
|
||||
|
|
|
@ -29,17 +29,17 @@ add_task(function*() {
|
|||
// Call the function that we set a breakpoint in.
|
||||
invokeInTab("main");
|
||||
yield waitForPaused(dbg);
|
||||
assertPausedLocation(dbg, simple1, 4);
|
||||
assertPausedLocation(dbg);
|
||||
|
||||
// Step through to another file and make sure it's paused in the
|
||||
// right place.
|
||||
yield stepIn(dbg);
|
||||
assertPausedLocation(dbg, simple2, 2);
|
||||
assertPausedLocation(dbg);
|
||||
|
||||
// Step back out to the initial file.
|
||||
yield stepOut(dbg);
|
||||
yield stepOut(dbg);
|
||||
assertPausedLocation(dbg, simple1, 5);
|
||||
assertPausedLocation(dbg);
|
||||
yield resume(dbg);
|
||||
|
||||
// Make sure that we can set a breakpoint on a line out of the
|
||||
|
@ -49,6 +49,6 @@ add_task(function*() {
|
|||
|
||||
invokeInTab("testModel");
|
||||
yield waitForPaused(dbg);
|
||||
assertPausedLocation(dbg, longSrc, 66);
|
||||
assertPausedLocation(dbg);
|
||||
ok(isElementVisible(dbg, "breakpoint"), "Breakpoint is visible");
|
||||
});
|
||||
|
|
|
@ -55,7 +55,8 @@ add_task(function*() {
|
|||
|
||||
yield editExpression(dbg, "oo");
|
||||
is(getLabel(dbg, 1), "foo()");
|
||||
is(getValue(dbg, 1), "");
|
||||
// There is no "value" element for functions.
|
||||
is(findElement(dbg, "expressionValue", 1), null);
|
||||
|
||||
yield addExpression(dbg, "location");
|
||||
is(getLabel(dbg, 2), "location");
|
||||
|
|
|
@ -6,21 +6,21 @@
|
|||
* 1. pause in the main thread
|
||||
* 2. pause in the iframe
|
||||
*/
|
||||
add_task(function* () {
|
||||
add_task(function*() {
|
||||
const dbg = yield initDebugger("doc-iframes.html");
|
||||
|
||||
// test pausing in the main thread
|
||||
yield reload(dbg);
|
||||
yield waitForPaused(dbg);
|
||||
assertPausedLocation(dbg, "iframes.html", 8);
|
||||
assertPausedLocation(dbg);
|
||||
|
||||
// test pausing in the iframe
|
||||
yield resume(dbg);
|
||||
yield waitForPaused(dbg);
|
||||
assertPausedLocation(dbg, "debugger-statements.html", 8);
|
||||
assertPausedLocation(dbg);
|
||||
|
||||
// test pausing in the iframe
|
||||
yield resume(dbg);
|
||||
yield waitForPaused(dbg);
|
||||
assertPausedLocation(dbg, "debugger-statements.html", 12);
|
||||
assertPausedLocation(dbg);
|
||||
});
|
||||
|
|
|
@ -10,7 +10,7 @@ function countSources(dbg) {
|
|||
* Test navigating
|
||||
* navigating while paused will reset the pause state and sources
|
||||
*/
|
||||
add_task(function* () {
|
||||
add_task(function*() {
|
||||
const dbg = yield initDebugger("doc-script-switching.html");
|
||||
const { selectors: { getSelectedSource, getPause }, getState } = dbg;
|
||||
|
||||
|
@ -21,7 +21,7 @@ add_task(function* () {
|
|||
yield addBreakpoint(dbg, "simple1.js", 4);
|
||||
invokeInTab("main");
|
||||
yield waitForPaused(dbg);
|
||||
assertPausedLocation(dbg, "simple1.js", 4);
|
||||
assertPausedLocation(dbg);
|
||||
is(countSources(dbg), 4, "4 sources are loaded.");
|
||||
|
||||
yield navigate(dbg, "about:blank");
|
||||
|
@ -29,7 +29,8 @@ add_task(function* () {
|
|||
is(countSources(dbg), 0, "0 sources are loaded.");
|
||||
ok(!getPause(getState()), "No pause state exists");
|
||||
|
||||
yield navigate(dbg,
|
||||
yield navigate(
|
||||
dbg,
|
||||
"doc-scripts.html",
|
||||
"simple1.js",
|
||||
"simple2.js",
|
||||
|
@ -42,6 +43,8 @@ add_task(function* () {
|
|||
// Test that the current select source persists across reloads
|
||||
yield selectSource(dbg, "long.js");
|
||||
yield reload(dbg, "long.js");
|
||||
ok(getSelectedSource(getState()).get("url").includes("long.js"),
|
||||
"Selected source is long.js");
|
||||
ok(
|
||||
getSelectedSource(getState()).get("url").includes("long.js"),
|
||||
"Selected source is long.js"
|
||||
);
|
||||
});
|
||||
|
|
|
@ -16,7 +16,7 @@ function caughtException() {
|
|||
3. pause on a caught error
|
||||
4. skip a caught error
|
||||
*/
|
||||
add_task(function* () {
|
||||
add_task(function*() {
|
||||
const dbg = yield initDebugger("doc-exceptions.html");
|
||||
|
||||
// test skipping an uncaught exception
|
||||
|
@ -27,19 +27,19 @@ add_task(function* () {
|
|||
yield togglePauseOnExceptions(dbg, true, false);
|
||||
uncaughtException();
|
||||
yield waitForPaused(dbg);
|
||||
assertPausedLocation(dbg, "exceptions.js", 2);
|
||||
assertPausedLocation(dbg);
|
||||
yield resume(dbg);
|
||||
|
||||
// Test pausing on a caught Error
|
||||
caughtException();
|
||||
yield waitForPaused(dbg);
|
||||
assertPausedLocation(dbg, "exceptions.js", 15);
|
||||
assertPausedLocation(dbg);
|
||||
yield resume(dbg);
|
||||
|
||||
// Test skipping a caught error
|
||||
yield togglePauseOnExceptions(dbg, true, true);
|
||||
caughtException();
|
||||
yield waitForPaused(dbg);
|
||||
assertPausedLocation(dbg, "exceptions.js", 17);
|
||||
assertPausedLocation(dbg);
|
||||
yield resume(dbg);
|
||||
});
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
// Tests pretty-printing a source that is currently paused.
|
||||
|
||||
add_task(function* () {
|
||||
add_task(function*() {
|
||||
const dbg = yield initDebugger("doc-minified.html");
|
||||
|
||||
yield selectSource(dbg, "math.min.js");
|
||||
|
@ -11,12 +11,13 @@ add_task(function* () {
|
|||
|
||||
invokeInTab("arithmetic");
|
||||
yield waitForPaused(dbg);
|
||||
assertPausedLocation(dbg, "math.min.js", 2);
|
||||
assertPausedLocation(dbg);
|
||||
|
||||
clickElement(dbg, "prettyPrintButton");
|
||||
yield waitForDispatch(dbg, "TOGGLE_PRETTY_PRINT");
|
||||
yield waitForDispatch(dbg, "SELECT_SOURCE");
|
||||
|
||||
assertPausedLocation(dbg, "math.min.js:formatted", 18);
|
||||
// this doesnt work yet
|
||||
// assertPausedLocation(dbg);
|
||||
|
||||
yield resume(dbg);
|
||||
});
|
||||
|
|
|
@ -6,20 +6,24 @@
|
|||
add_task(function*() {
|
||||
const dbg = yield initDebugger("doc-minified.html");
|
||||
|
||||
yield selectSource(dbg, "math.min.js");
|
||||
yield selectSource(dbg, "math.min.js", 2);
|
||||
clickElement(dbg, "prettyPrintButton");
|
||||
yield waitForDispatch(dbg, "TOGGLE_PRETTY_PRINT");
|
||||
|
||||
yield waitForSource(dbg, "math.min.js:formatted");
|
||||
const ppSrc = findSource(dbg, "math.min.js:formatted");
|
||||
|
||||
ok(ppSrc, "Pretty-printed source exists");
|
||||
|
||||
// this is not implemented yet
|
||||
// assertHighlightLocation(dbg, "math.min.js:formatted", 18);
|
||||
|
||||
yield addBreakpoint(dbg, ppSrc, 18);
|
||||
|
||||
invokeInTab("arithmetic");
|
||||
yield waitForPaused(dbg);
|
||||
assertPausedLocation(dbg, ppSrc, 18);
|
||||
assertPausedLocation(dbg);
|
||||
yield stepOver(dbg);
|
||||
assertPausedLocation(dbg, ppSrc, 27);
|
||||
assertPausedLocation(dbg);
|
||||
yield resume(dbg);
|
||||
|
||||
// The pretty-print button should go away in the pretty-printed
|
||||
|
|
|
@ -11,7 +11,7 @@ function getScopeNodeValue(dbg, index) {
|
|||
|
||||
function expandNode(dbg, index) {
|
||||
let onLoadProperties = onLoadObjectProperties(dbg);
|
||||
clickElement(dbg, "scopeNode", index);
|
||||
findElement(dbg, "scopeNode", index).click();
|
||||
return onLoadProperties;
|
||||
}
|
||||
|
||||
|
@ -23,14 +23,14 @@ function onLoadObjectProperties(dbg) {
|
|||
return waitForDispatch(dbg, "LOAD_OBJECT_PROPERTIES");
|
||||
}
|
||||
|
||||
add_task(async function() {
|
||||
const dbg = await initDebugger("doc-script-mutate.html");
|
||||
add_task(function*() {
|
||||
const dbg = yield initDebugger("doc-script-mutate.html");
|
||||
|
||||
toggleScopes(dbg);
|
||||
|
||||
let onPaused = waitForPaused(dbg);
|
||||
invokeInTab("mutate");
|
||||
await onPaused;
|
||||
yield onPaused;
|
||||
|
||||
is(
|
||||
getScopeNodeLabel(dbg, 2),
|
||||
|
@ -43,16 +43,16 @@ add_task(async function() {
|
|||
'The third element in the scope panel is "phonebook"'
|
||||
);
|
||||
|
||||
// Expand `phonebook`
|
||||
await expandNode(dbg, 3);
|
||||
info("Expand `phonebook`");
|
||||
yield expandNode(dbg, 3);
|
||||
is(
|
||||
getScopeNodeLabel(dbg, 4),
|
||||
"S",
|
||||
'The fourth element in the scope panel is "S"'
|
||||
);
|
||||
|
||||
// Expand `S`
|
||||
await expandNode(dbg, 4);
|
||||
info("Expand `S`");
|
||||
yield expandNode(dbg, 4);
|
||||
is(
|
||||
getScopeNodeLabel(dbg, 5),
|
||||
"sarah",
|
||||
|
@ -64,8 +64,8 @@ add_task(async function() {
|
|||
'The sixth element in the scope panel is "serena"'
|
||||
);
|
||||
|
||||
// Expand `sarah`
|
||||
await expandNode(dbg, 5);
|
||||
info("Expand `sarah`");
|
||||
yield expandNode(dbg, 5);
|
||||
is(
|
||||
getScopeNodeLabel(dbg, 6),
|
||||
"lastName",
|
||||
|
@ -79,8 +79,8 @@ add_task(async function() {
|
|||
|
||||
info("Resuming");
|
||||
onPaused = waitForPaused(dbg);
|
||||
await resume(dbg);
|
||||
await onPaused;
|
||||
yield resume(dbg);
|
||||
yield onPaused;
|
||||
|
||||
is(
|
||||
getScopeNodeLabel(dbg, 2),
|
||||
|
|
|
@ -0,0 +1,61 @@
|
|||
/* Any copyright is dedicated to the Public Domain.
|
||||
* http://creativecommons.org/publicdomain/zero/1.0/ */
|
||||
|
||||
// Tests the search bar correctly responds to queries, enter, shift enter
|
||||
|
||||
function waitForSearchState(dbg) {
|
||||
return waitForState(dbg, () => getCM(dbg).state.search);
|
||||
}
|
||||
|
||||
function getFocusedEl(dbg) {
|
||||
let doc = dbg.win.document;
|
||||
return doc.activeElement;
|
||||
}
|
||||
|
||||
add_task(function*() {
|
||||
const dbg = yield initDebugger("doc-scripts.html");
|
||||
const {
|
||||
selectors: { getBreakpoints, getBreakpoint, getActiveSearch },
|
||||
getState
|
||||
} = dbg;
|
||||
const source = findSource(dbg, "simple1.js");
|
||||
|
||||
yield selectSource(dbg, source.url);
|
||||
|
||||
const cm = getCM(dbg);
|
||||
pressKey(dbg, "fileSearch");
|
||||
is(dbg.selectors.getActiveSearchState(dbg.getState()), "file");
|
||||
|
||||
// test closing and re-opening
|
||||
pressKey(dbg, "Escape");
|
||||
is(dbg.selectors.getActiveSearchState(dbg.getState()), null);
|
||||
|
||||
pressKey(dbg, "fileSearch");
|
||||
|
||||
const el = getFocusedEl(dbg);
|
||||
|
||||
type(dbg, "con");
|
||||
yield waitForSearchState(dbg);
|
||||
|
||||
const state = cm.state.search;
|
||||
|
||||
pressKey(dbg, "Enter");
|
||||
is(state.posFrom.line, 3);
|
||||
|
||||
pressKey(dbg, "Enter");
|
||||
is(state.posFrom.line, 4);
|
||||
|
||||
pressKey(dbg, "ShiftEnter");
|
||||
is(state.posFrom.line, 3);
|
||||
|
||||
pressKey(dbg, "fileSearch");
|
||||
type(dbg, "fun");
|
||||
|
||||
pressKey(dbg, "Enter");
|
||||
is(state.posFrom.line, 4);
|
||||
|
||||
// selecting another source keeps search open
|
||||
yield selectSource(dbg, "simple2");
|
||||
pressKey(dbg, "Enter");
|
||||
is(state.posFrom.line, 0);
|
||||
});
|
|
@ -0,0 +1,71 @@
|
|||
/* Any copyright is dedicated to the Public Domain.
|
||||
* http://creativecommons.org/publicdomain/zero/1.0/ */
|
||||
|
||||
function openProjectSearch(dbg) {
|
||||
synthesizeKeyShortcut("CmdOrCtrl+Shift+F");
|
||||
return waitForState(
|
||||
dbg,
|
||||
state => dbg.selectors.getActiveSearchState(state) === "project"
|
||||
);
|
||||
}
|
||||
|
||||
function closeProjectSearch(dbg) {
|
||||
pressKey(dbg, "Escape");
|
||||
return waitForState(dbg, state => !dbg.selectors.getActiveSearchState(state));
|
||||
}
|
||||
|
||||
function getResult(dbg) {
|
||||
return findElementWithSelector(dbg, ".managed-tree .result");
|
||||
}
|
||||
|
||||
async function selectResult(dbg) {
|
||||
const item = getResult(dbg);
|
||||
const select = waitForDispatch(dbg, "SELECT_SOURCE");
|
||||
item.click();
|
||||
return select;
|
||||
}
|
||||
|
||||
function getResultsCount(dbg) {
|
||||
const matches = dbg.selectors
|
||||
.getTextSearchResults(dbg.getState())
|
||||
.valueSeq()
|
||||
.map(file => file.matches)
|
||||
.toJS();
|
||||
|
||||
return [...matches].length;
|
||||
}
|
||||
|
||||
// Testing project search
|
||||
add_task(function*() {
|
||||
Services.prefs.setBoolPref(
|
||||
"devtools.debugger.project-text-search-enabled",
|
||||
true
|
||||
);
|
||||
|
||||
const dbg = yield initDebugger("doc-script-switching.html", "switching-01");
|
||||
|
||||
yield selectSource(dbg, "switching-01");
|
||||
|
||||
// test opening and closing
|
||||
yield openProjectSearch(dbg);
|
||||
yield closeProjectSearch(dbg);
|
||||
|
||||
yield openProjectSearch(dbg);
|
||||
type(dbg, "first");
|
||||
pressKey(dbg, "Enter");
|
||||
|
||||
yield waitForState(dbg, () => getResultsCount(dbg) === 1);
|
||||
|
||||
yield selectResult(dbg);
|
||||
is(dbg.selectors.getActiveSearchState(dbg.getState()), null);
|
||||
|
||||
const selectedSource = dbg.selectors.getSelectedSource(dbg.getState());
|
||||
ok(selectedSource.get("url").includes("switching-01"));
|
||||
});
|
||||
|
||||
registerCleanupFunction(() => {
|
||||
Services.prefs.clearUserPref(
|
||||
"devtools.debugger.project-text-search-enabled",
|
||||
false
|
||||
);
|
||||
});
|
|
@ -2,9 +2,15 @@
|
|||
* http://creativecommons.org/publicdomain/zero/1.0/ */
|
||||
|
||||
// Testing source search
|
||||
add_task(function* () {
|
||||
add_task(function*() {
|
||||
const dbg = yield initDebugger("doc-script-switching.html");
|
||||
|
||||
// test opening and closing
|
||||
pressKey(dbg, "sourceSearch");
|
||||
is(dbg.selectors.getActiveSearchState(dbg.getState()), "source");
|
||||
pressKey(dbg, "Escape");
|
||||
is(dbg.selectors.getActiveSearchState(dbg.getState()), null);
|
||||
|
||||
pressKey(dbg, "sourceSearch");
|
||||
yield waitForElement(dbg, "input");
|
||||
findElementWithSelector(dbg, "input").focus();
|
|
@ -0,0 +1,30 @@
|
|||
/* Any copyright is dedicated to the Public Domain.
|
||||
* http://creativecommons.org/publicdomain/zero/1.0/ */
|
||||
|
||||
async function openFunctionSearch(dbg) {
|
||||
synthesizeKeyShortcut("CmdOrCtrl+Shift+O");
|
||||
return new Promise(r => setTimeout(r, 200));
|
||||
}
|
||||
|
||||
function resultCount(dbg) {
|
||||
return findAllElements(dbg, "resultItems").length;
|
||||
}
|
||||
|
||||
// Testing function search
|
||||
add_task(function*() {
|
||||
const dbg = yield initDebugger("doc-script-switching.html", "switching-01");
|
||||
|
||||
yield selectSource(dbg, "switching-01");
|
||||
|
||||
// test opening and closing
|
||||
yield openFunctionSearch(dbg);
|
||||
is(dbg.selectors.getActiveSearchState(dbg.getState()), "symbol");
|
||||
pressKey(dbg, "Escape");
|
||||
is(dbg.selectors.getActiveSearchState(dbg.getState()), null);
|
||||
|
||||
yield openFunctionSearch(dbg);
|
||||
is(resultCount(dbg), 1);
|
||||
|
||||
type(dbg, "x");
|
||||
is(resultCount(dbg), 0);
|
||||
});
|
|
@ -18,7 +18,7 @@ add_task(function*() {
|
|||
yield addBreakpoint(dbg, "bogus-map.js", 4);
|
||||
invokeInTab("runCode");
|
||||
yield waitForPaused(dbg);
|
||||
assertPausedLocation(dbg, "bogus-map.js", 4);
|
||||
assertPausedLocation(dbg);
|
||||
|
||||
// Make sure that only the single generated source exists. The
|
||||
// sourcemap failed to download.
|
||||
|
|
|
@ -75,14 +75,14 @@ add_task(function*() {
|
|||
|
||||
invokeInTab("keepMeAlive");
|
||||
yield waitForPaused(dbg);
|
||||
assertPausedLocation(dbg, entrySrc, 15);
|
||||
assertPausedLocation(dbg);
|
||||
|
||||
yield stepIn(dbg);
|
||||
assertPausedLocation(dbg, "times2.js", 2);
|
||||
assertPausedLocation(dbg);
|
||||
yield stepOver(dbg);
|
||||
assertPausedLocation(dbg, "times2.js", 3);
|
||||
assertPausedLocation(dbg);
|
||||
|
||||
yield stepOut(dbg);
|
||||
yield stepOut(dbg);
|
||||
assertPausedLocation(dbg, "entry.js", 16);
|
||||
assertPausedLocation(dbg);
|
||||
});
|
||||
|
|
|
@ -31,5 +31,5 @@ add_task(function*() {
|
|||
invokeInTab("logMessage");
|
||||
|
||||
yield waitForPaused(dbg);
|
||||
assertPausedLocation(dbg, "main.js", 4);
|
||||
assertPausedLocation(dbg);
|
||||
});
|
||||
|
|
|
@ -30,17 +30,17 @@ add_task(function*() {
|
|||
|
||||
yield reload(dbg);
|
||||
yield waitForPaused(dbg);
|
||||
assertPausedLocation(dbg, "debugger-statements.html", 8);
|
||||
assertPausedLocation(dbg);
|
||||
|
||||
yield pressResume(dbg);
|
||||
assertPausedLocation(dbg, "debugger-statements.html", 12);
|
||||
assertPausedLocation(dbg);
|
||||
|
||||
yield pressStepIn(dbg);
|
||||
assertPausedLocation(dbg, "debugger-statements.html", 13);
|
||||
assertPausedLocation(dbg);
|
||||
|
||||
yield pressStepOut(dbg);
|
||||
assertPausedLocation(dbg, "debugger-statements.html", 14);
|
||||
assertPausedLocation(dbg);
|
||||
|
||||
yield pressStepOver(dbg);
|
||||
assertPausedLocation(dbg, "debugger-statements.html", 9);
|
||||
assertPausedLocation(dbg);
|
||||
});
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<meta charset="utf-8"/>
|
||||
<title>Debugger test page</title>
|
||||
</head>
|
||||
|
||||
|
||||
<body>
|
||||
<script src="simple1.js"></script>
|
||||
<script src="simple2.js"></script>
|
||||
|
|
|
@ -147,6 +147,10 @@ function waitForThreadEvents(dbg, eventName) {
|
|||
*/
|
||||
function waitForState(dbg, predicate) {
|
||||
return new Promise(resolve => {
|
||||
if (predicate(dbg.store.getState())) {
|
||||
return resolve();
|
||||
}
|
||||
|
||||
const unsubscribe = dbg.store.subscribe(() => {
|
||||
if (predicate(dbg.store.getState())) {
|
||||
unsubscribe();
|
||||
|
@ -187,14 +191,35 @@ function waitForSources(dbg, ...sources) {
|
|||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Waits for a source to be loaded.
|
||||
*
|
||||
* @memberof mochitest/waits
|
||||
* @param {Object} dbg
|
||||
* @param {String} source
|
||||
* @return {Promise}
|
||||
* @static
|
||||
*/
|
||||
function waitForSource(dbg, url) {
|
||||
return waitForState(dbg, state => {
|
||||
const sources = dbg.selectors.getSources(state);
|
||||
return sources.find(s => (s.get("url") || "").includes(url));
|
||||
});
|
||||
}
|
||||
|
||||
function waitForElement(dbg, selector) {
|
||||
return waitUntil(() => findElementWithSelector(dbg, selector));
|
||||
}
|
||||
|
||||
function waitForSelectedSource(dbg) {
|
||||
function waitForSelectedSource(dbg, sourceId) {
|
||||
return waitForState(dbg, state => {
|
||||
const source = dbg.selectors.getSelectedSource(state);
|
||||
return source && source.has("loading") && !source.get("loading");
|
||||
const isLoaded = source && source.has("loading") && !source.get("loading");
|
||||
if (sourceId) {
|
||||
return isLoaded && sourceId == source.get("id");
|
||||
}
|
||||
|
||||
return isLoaded;
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -207,22 +232,17 @@ function waitForSelectedSource(dbg) {
|
|||
* @param {Number} line
|
||||
* @static
|
||||
*/
|
||||
function assertPausedLocation(dbg, source, line) {
|
||||
function assertPausedLocation(dbg) {
|
||||
const { selectors: { getSelectedSource, getPause }, getState } = dbg;
|
||||
source = findSource(dbg, source);
|
||||
|
||||
// Check the selected source
|
||||
is(getSelectedSource(getState()).get("id"), source.id);
|
||||
ok(isTopFrameSelected(dbg, getState()), "top frame's source is selected");
|
||||
|
||||
// Check the pause location
|
||||
const pause = getPause(getState());
|
||||
const location = pause && pause.frame && pause.frame.location;
|
||||
|
||||
is(location.sourceId, source.id);
|
||||
is(location.line, line);
|
||||
const pauseLine = pause && pause.frame && pause.frame.location.line;
|
||||
|
||||
// Check the debug line
|
||||
const lineInfo = getCM(dbg).lineInfo(line - 1);
|
||||
const lineInfo = getCM(dbg).lineInfo(pauseLine - 1);
|
||||
ok(
|
||||
lineInfo.wrapClass.includes("debug-line"),
|
||||
"Line is highlighted as paused"
|
||||
|
@ -286,24 +306,37 @@ function isPaused(dbg) {
|
|||
* @param {Object} dbg
|
||||
* @static
|
||||
*/
|
||||
function waitForPaused(dbg) {
|
||||
return Task.spawn(function*() {
|
||||
// We want to make sure that we get both a real paused event and
|
||||
// that the state is fully populated. The client may do some more
|
||||
// work (call other client methods) before populating the state.
|
||||
yield waitForThreadEvents(dbg, "paused"), yield waitForState(dbg, state => {
|
||||
const pause = dbg.selectors.getPause(state);
|
||||
// Make sure we have the paused state.
|
||||
if (!pause) {
|
||||
return false;
|
||||
}
|
||||
// Make sure the source text is completely loaded for the
|
||||
// source we are paused in.
|
||||
const sourceId = pause && pause.frame && pause.frame.location.sourceId;
|
||||
const source = dbg.selectors.getSource(dbg.getState(), sourceId);
|
||||
return source && source.has("loading") && !source.get("loading");
|
||||
});
|
||||
});
|
||||
async function waitForPaused(dbg) {
|
||||
// We want to make sure that we get both a real paused event and
|
||||
// that the state is fully populated. The client may do some more
|
||||
// work (call other client methods) before populating the state.
|
||||
await waitForThreadEvents(dbg, "paused");
|
||||
await waitForState(dbg, state => isTopFrameSelected(dbg, state));
|
||||
}
|
||||
|
||||
function isTopFrameSelected(dbg, state) {
|
||||
const pause = dbg.selectors.getPause(state);
|
||||
|
||||
// Make sure we have the paused state.
|
||||
if (!pause) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Make sure the source text is completely loaded for the
|
||||
// source we are paused in.
|
||||
const sourceId = pause.frame && pause.frame.location.sourceId;
|
||||
const source = dbg.selectors.getSelectedSource(state);
|
||||
|
||||
if (!source) {
|
||||
return false;
|
||||
}
|
||||
|
||||
const isLoaded = source.has("loading") && !source.get("loading");
|
||||
if (!isLoaded) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return source.get("id") == sourceId;
|
||||
}
|
||||
|
||||
function createDebuggerContext(toolbox) {
|
||||
|
@ -464,7 +497,7 @@ function resume(dbg) {
|
|||
}
|
||||
|
||||
function deleteExpression(dbg, input) {
|
||||
info("Resuming");
|
||||
info(`Delete expression "${input}"`);
|
||||
return dbg.actions.deleteExpression({ input });
|
||||
}
|
||||
|
||||
|
@ -587,6 +620,10 @@ const shiftOrAlt = isMac
|
|||
? { accelKey: true, shiftKey: true }
|
||||
: { accelKey: true, altKey: true };
|
||||
|
||||
const cmdShift = isMac
|
||||
? { accelKey: true, shiftKey: true, metaKey: true }
|
||||
: { accelKey: true, altKey: true, ctrlKey: true };
|
||||
|
||||
// On Mac, going to beginning/end only works with meta+left/right. On
|
||||
// Windows, it only works with home/end. On Linux, apparently, either
|
||||
// ctrl+left/right or home/end work.
|
||||
|
@ -602,7 +639,9 @@ const keyMappings = {
|
|||
inspector: { code: "c", modifiers: shiftOrAlt },
|
||||
sourceSearch: { code: "p", modifiers: cmdOrCtrl },
|
||||
fileSearch: { code: "f", modifiers: cmdOrCtrl },
|
||||
functionSearch: { code: "o", modifiers: cmdShift },
|
||||
Enter: { code: "VK_RETURN" },
|
||||
ShiftEnter: { code: "VK_RETURN", modifiers: shiftOrAlt },
|
||||
Up: { code: "VK_UP" },
|
||||
Down: { code: "VK_DOWN" },
|
||||
Right: { code: "VK_RIGHT" },
|
||||
|
@ -611,6 +650,7 @@ const keyMappings = {
|
|||
Start: startKey,
|
||||
Tab: { code: "VK_TAB" },
|
||||
Escape: { code: "VK_ESCAPE" },
|
||||
Delete: { code: "VK_DELETE" },
|
||||
pauseKey: { code: "VK_F8" },
|
||||
resumeKey: { code: "VK_F8" },
|
||||
stepOverKey: { code: "VK_F10" },
|
||||
|
@ -631,16 +671,14 @@ const keyMappings = {
|
|||
* @static
|
||||
*/
|
||||
function pressKey(dbg, keyName) {
|
||||
let keyEvent = keyMappings[keyName];
|
||||
const keyEvent = keyMappings[keyName];
|
||||
|
||||
const { code, modifiers } = keyEvent;
|
||||
return EventUtils.synthesizeKey(code, modifiers || {}, dbg.win);
|
||||
}
|
||||
|
||||
function type(dbg, string) {
|
||||
string.split("").forEach(char => {
|
||||
EventUtils.synthesizeKey(char, {}, dbg.win);
|
||||
});
|
||||
string.split("").forEach(char => EventUtils.synthesizeKey(char, {}, dbg.win));
|
||||
}
|
||||
|
||||
function isVisibleWithin(outerEl, innerEl) {
|
||||
|
@ -655,14 +693,15 @@ const selectors = {
|
|||
expressionNode: i =>
|
||||
`.expressions-list .expression-container:nth-child(${i}) .object-label`,
|
||||
expressionValue: i =>
|
||||
`.expressions-list .expression-container:nth-child(${i}) .object-value`,
|
||||
`.expressions-list .expression-container:nth-child(${i}) .object-delimiter + *`,
|
||||
expressionClose: i =>
|
||||
`.expressions-list .expression-container:nth-child(${i}) .close`,
|
||||
expressionNodes: ".expressions-list .tree-node",
|
||||
scopesHeader: ".scopes-pane ._header",
|
||||
breakpointItem: i => `.breakpoints-list .breakpoint:nth-child(${i})`,
|
||||
scopeNode: i => `.scopes-list .tree-node:nth-child(${i}) .object-label`,
|
||||
scopeValue: i => `.scopes-list .tree-node:nth-child(${i}) .object-value`,
|
||||
scopeValue: i =>
|
||||
`.scopes-list .tree-node:nth-child(${i}) .object-delimiter + *`,
|
||||
frame: i => `.frames ul li:nth-child(${i})`,
|
||||
frames: ".frames ul li",
|
||||
gutter: i => `.CodeMirror-code *:nth-child(${i}) .CodeMirror-linenumber`,
|
||||
|
@ -682,7 +721,8 @@ const selectors = {
|
|||
editorFooter: ".editor-pane .source-footer",
|
||||
sourceNode: i => `.sources-list .tree-node:nth-child(${i})`,
|
||||
sourceNodes: ".sources-list .tree-node",
|
||||
sourceArrow: i => `.sources-list .tree-node:nth-child(${i}) .arrow`
|
||||
sourceArrow: i => `.sources-list .tree-node:nth-child(${i}) .arrow`,
|
||||
resultItems: `.result-list .result-item`
|
||||
};
|
||||
|
||||
function getSelector(elementName, ...args) {
|
||||
|
|
|
@ -154,6 +154,7 @@ skip-if = e10s || true # bug 1113935
|
|||
[browser_dbg_blackboxing-03.js]
|
||||
[browser_dbg_blackboxing-04.js]
|
||||
[browser_dbg_blackboxing-05.js]
|
||||
skip-if = true # Bug 1385304
|
||||
[browser_dbg_blackboxing-06.js]
|
||||
[browser_dbg_blackboxing-07.js]
|
||||
[browser_dbg_breadcrumbs-access.js]
|
||||
|
|
|
@ -140,18 +140,14 @@ sources.search.alt.key=CmdOrCtrl+O
|
|||
# full project text search for searching all the files the debugger has seen.
|
||||
projectTextSearch.key=CmdOrCtrl+Shift+F
|
||||
|
||||
# LOCALIZATION NOTE (projectTextSearch.placeholder): A placeholder shown
|
||||
# when searching across all of the files in a project.
|
||||
projectTextSearch.placeholder=Find in files…
|
||||
|
||||
# LOCALIZATION NOTE (sources.noSourcesAvailable): Text shown when the debugger
|
||||
# does not have any sources.
|
||||
sources.noSourcesAvailable=This page has no sources
|
||||
|
||||
# LOCALIZATION NOTE (sourcesPane.showSourcesTooltip): The tooltip shown when
|
||||
# the user will navigate to the source tree view.
|
||||
sourcesPane.showSourcesTooltip=Show sources
|
||||
|
||||
# LOCALIZATION NOTE (sourcesPane.showOutlineTooltip): The tooltip shown when
|
||||
# the user will navigate to the source outline view.
|
||||
sourcesPane.showOutlineTooltip=Show outline
|
||||
|
||||
# LOCALIZATION NOTE (sourceSearch.search.key2): Key shortcut to open the search
|
||||
# for searching within a the currently opened files in the editor
|
||||
sourceSearch.search.key2=CmdOrCtrl+F
|
||||
|
@ -225,6 +221,42 @@ breakpointMenuItem.enableAll=Enable all breakpoints
|
|||
breakpointMenuItem.disableAll=Disable all breakpoints
|
||||
breakpointMenuItem.deleteAll=Remove all breakpoints
|
||||
|
||||
# LOCALIZATION NOTE (breakpointMenuItem.deleteSelf.accesskey): Access key to remove the
|
||||
# currently selected breakpoint from the context menu
|
||||
breakpointMenuItem.deleteSelf.accesskey=r
|
||||
|
||||
# LOCALIZATION NOTE (breakpointMenuItem.enableSelf.accesskey): Access key to enable the
|
||||
# currently selected breakpoint from the context menu
|
||||
breakpointMenuItem.enableSelf.accesskey=e
|
||||
|
||||
# LOCALIZATION NOTE (breakpointMenuItem.disableSelf.accesskey): Access key to disable the
|
||||
# currently selected breakpoint from the context menu
|
||||
breakpointMenuItem.disableSelf.accesskey=d
|
||||
|
||||
# LOCALIZATION NOTE (breakpointMenuItem.deleteAll.accesskey): Access key to remove all
|
||||
# the breakpoints from the context menu
|
||||
breakpointMenuItem.deleteAll.accesskey=a
|
||||
|
||||
# LOCALIZATION NOTE (breakpointMenuItem.enableAll.accesskey): Access key to enable all
|
||||
# the breakpoints from the context menu
|
||||
breakpointMenuItem.enableAll.accesskey=b
|
||||
|
||||
# LOCALIZATION NOTE (breakpointMenuItem.disableAll.accesskey): Access key to disable all
|
||||
# the breakpoints from the context menu
|
||||
breakpointMenuItem.disableAll.accesskey=c
|
||||
|
||||
# LOCALIZATION NOTE (breakpointMenuItem.deleteOthers.accesskey): Access key to remove
|
||||
# other breakpoints from the context menu
|
||||
breakpointMenuItem.deleteOthers.accesskey=p
|
||||
|
||||
# LOCALIZATION NOTE (breakpointMenuItem.enableOthers.accesskey): Access key to enable
|
||||
# other breakpoints from the context menu
|
||||
breakpointMenuItem.enableOthers.accesskey=q
|
||||
|
||||
# LOCALIZATION NOTE (breakpointMenuItem.disableOthers.accesskey): Access key to disable
|
||||
# other breakpoints from the context menu
|
||||
breakpointMenuItem.disableOthers.accesskey=s
|
||||
|
||||
# LOCALIZATION NOTE (breakpoints.header): Breakpoints right sidebar pane header.
|
||||
breakpoints.header=Breakpoints
|
||||
|
||||
|
@ -470,7 +502,7 @@ sourceSearch.search=Search Sources…
|
|||
|
||||
# LOCALIZATION NOTE (sourceSearch.noResults): The center pane Source Search
|
||||
# message when the query did not match any of the sources.
|
||||
sourceSearch.noResults=No files matching %S found
|
||||
sourceSearch.noResults2=No results found
|
||||
|
||||
# LOCALIZATION NOTE (ignoreExceptions): The pause on exceptions button tooltip
|
||||
# when the debugger will not pause on exceptions.
|
||||
|
@ -596,6 +628,10 @@ symbolSearch.search.variablesPlaceholder=Search variables…
|
|||
# searching for a function or variable
|
||||
symbolSearch.search.key2=CmdOrCtrl+Shift+O
|
||||
|
||||
# LOCALIZATION NOTE(symbolSearch.searchModifier.modifiersLabel): A label
|
||||
# preceding the group of modifiers
|
||||
symbolSearch.searchModifier.modifiersLabel=Modifiers:
|
||||
|
||||
# LOCALIZATION NOTE(symbolSearch.searchModifier.regex): A search option
|
||||
# when searching text in a file
|
||||
symbolSearch.searchModifier.regex=Regex
|
||||
|
|
|
@ -39,3 +39,5 @@ pref("devtools.debugger.expressions", "[]");
|
|||
pref("devtools.debugger.file-search-case-sensitive", false);
|
||||
pref("devtools.debugger.file-search-whole-word", false);
|
||||
pref("devtools.debugger.file-search-regex-match", false);
|
||||
pref("devtools.debugger.project-text-search-enabled", true);
|
||||
|
||||
|
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -13,6 +13,7 @@ modules += [
|
|||
'immutable.js',
|
||||
'jsol.js',
|
||||
'jszip.js',
|
||||
'lodash.js',
|
||||
'react-addons-shallow-compare.js',
|
||||
]
|
||||
|
||||
|
|
|
@ -9711,6 +9711,8 @@ public:
|
|||
// Make sure to keep null things null as needed
|
||||
if (aTypeHint) {
|
||||
mTypeHint = aTypeHint;
|
||||
} else {
|
||||
mTypeHint.SetIsVoid(true);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -9722,7 +9724,9 @@ public:
|
|||
mReferrer,
|
||||
mReferrerPolicy,
|
||||
mTriggeringPrincipal, mPrincipalToInherit,
|
||||
mFlags, EmptyString(), mTypeHint.get(),
|
||||
mFlags, EmptyString(),
|
||||
mTypeHint.IsVoid() ? nullptr
|
||||
: mTypeHint.get(),
|
||||
NullString(), mPostData, mHeadersData,
|
||||
mLoadType, mSHEntry, mFirstParty,
|
||||
mSrcdoc, mSourceDocShell, mBaseURI,
|
||||
|
@ -9730,8 +9734,7 @@ public:
|
|||
}
|
||||
|
||||
private:
|
||||
// Use IDL strings so .get() returns null by default
|
||||
nsXPIDLCString mTypeHint;
|
||||
nsCString mTypeHint;
|
||||
nsString mSrcdoc;
|
||||
|
||||
RefPtr<nsDocShell> mDocShell;
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
#include "mozilla/ReflowInput.h"
|
||||
#include "nsIServiceManager.h"
|
||||
#include "nsComponentManagerUtils.h"
|
||||
#include "nsXPIDLString.h"
|
||||
#include "nsString.h"
|
||||
#include "nsIAtom.h"
|
||||
#include "nsReadableUtils.h"
|
||||
#include "nsUnicharUtils.h"
|
||||
|
|
|
@ -10,10 +10,9 @@
|
|||
#include "nsIWebNavigationInfo.h"
|
||||
#include "nsCOMPtr.h"
|
||||
#include "nsICategoryManager.h"
|
||||
#include "nsStringFwd.h"
|
||||
#include "mozilla/Attributes.h"
|
||||
|
||||
class nsCString;
|
||||
|
||||
#define NS_WEBNAVIGATION_INFO_CID \
|
||||
{ 0xf30bc0a2, 0x958b, 0x4287,{0xbf, 0x62, 0xce, 0x38, 0xba, 0x0c, 0x81, 0x1e}}
|
||||
|
||||
|
|
|
@ -10,10 +10,9 @@
|
|||
#include <initializer_list>
|
||||
|
||||
#include "mozilla/Maybe.h"
|
||||
#include "nsStringFwd.h"
|
||||
#include "nsTArray.h"
|
||||
|
||||
class nsAString;
|
||||
|
||||
namespace mozilla {
|
||||
|
||||
// Represents the reason why we can't run the CSS property on the compositor.
|
||||
|
|
|
@ -225,13 +225,6 @@ NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(CustomElementRegistry)
|
|||
NS_INTERFACE_MAP_ENTRY(nsISupports)
|
||||
NS_INTERFACE_MAP_END
|
||||
|
||||
/* static */ bool
|
||||
CustomElementRegistry::IsCustomElementEnabled(JSContext* aCx, JSObject* aObject)
|
||||
{
|
||||
return nsContentUtils::IsCustomElementsEnabled() ||
|
||||
nsContentUtils::IsWebComponentsEnabled();
|
||||
}
|
||||
|
||||
CustomElementRegistry::CustomElementRegistry(nsPIDOMWindowInner* aWindow)
|
||||
: mWindow(aWindow)
|
||||
, mIsCustomDefinitionRunning(false)
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
#include "mozilla/dom/FunctionBinding.h"
|
||||
#include "nsCycleCollectionParticipant.h"
|
||||
#include "nsWrapperCache.h"
|
||||
#include "nsContentUtils.h"
|
||||
|
||||
class nsDocument;
|
||||
|
||||
|
@ -313,7 +314,11 @@ public:
|
|||
|
||||
public:
|
||||
static bool IsCustomElementEnabled(JSContext* aCx = nullptr,
|
||||
JSObject* aObject = nullptr);
|
||||
JSObject* aObject = nullptr)
|
||||
{
|
||||
return nsContentUtils::IsCustomElementsEnabled() ||
|
||||
nsContentUtils::IsWebComponentsEnabled();
|
||||
}
|
||||
|
||||
explicit CustomElementRegistry(nsPIDOMWindowInner* aWindow);
|
||||
|
||||
|
|
|
@ -26,7 +26,6 @@
|
|||
#include "mozilla/dom/BindingDeclarations.h"
|
||||
|
||||
class nsIStackFrame;
|
||||
class nsString;
|
||||
|
||||
nsresult
|
||||
NS_GetNameAndMessageForDOMNSResult(nsresult aNSResult, nsACString& aName,
|
||||
|
|
|
@ -8,9 +8,9 @@
|
|||
#define DirectionalityUtils_h___
|
||||
|
||||
#include "nscore.h"
|
||||
#include "nsStringFwd.h"
|
||||
|
||||
class nsIContent;
|
||||
class nsAString;
|
||||
class nsAttrValue;
|
||||
class nsTextNode;
|
||||
|
||||
|
|
|
@ -11,9 +11,9 @@
|
|||
#include "mozilla/dom/BorrowedAttrInfo.h"
|
||||
#include "mozilla/dom/FragmentOrElement.h"
|
||||
#include "nsIDOMDocumentFragment.h"
|
||||
#include "nsStringFwd.h"
|
||||
|
||||
class nsIAtom;
|
||||
class nsAString;
|
||||
class nsIDocument;
|
||||
class nsIContent;
|
||||
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
#include "nsCaseTreatment.h"
|
||||
#include "nsMargin.h"
|
||||
#include "nsCOMPtr.h"
|
||||
#include "nsStringFwd.h"
|
||||
#include "SVGAttrValueWrapper.h"
|
||||
#include "nsTArrayForwardDeclare.h"
|
||||
#include "nsIAtom.h"
|
||||
|
@ -31,7 +32,6 @@
|
|||
// Undefine LoadImage to prevent naming conflict with Windows.
|
||||
#undef LoadImage
|
||||
|
||||
class nsAString;
|
||||
class nsIDocument;
|
||||
class nsStyledElement;
|
||||
struct MiscContainer;
|
||||
|
|
|
@ -9,14 +9,12 @@
|
|||
|
||||
#include <stdint.h>
|
||||
#include "nsCOMPtr.h"
|
||||
#include "nsStringFwd.h"
|
||||
|
||||
class nsContentList;
|
||||
class nsIAtom;
|
||||
class nsIContent;
|
||||
class nsINode;
|
||||
// Can't use nsStringFwd.h because that's internal-API-only.
|
||||
class nsString;
|
||||
class nsAString;
|
||||
|
||||
namespace mozilla {
|
||||
namespace dom {
|
||||
|
|
|
@ -20,12 +20,12 @@
|
|||
#include "nsIScriptSecurityManager.h"
|
||||
#include "nsIURI.h"
|
||||
#include "nsServiceManagerUtils.h"
|
||||
#include "nsStringFwd.h"
|
||||
|
||||
//XXXtw sadly, this makes consumers of nsContentPolicyUtils depend on widget
|
||||
#include "nsIDocument.h"
|
||||
#include "nsPIDOMWindow.h"
|
||||
|
||||
class nsACString;
|
||||
class nsIPrincipal;
|
||||
|
||||
#define NS_CONTENTPOLICY_CONTRACTID "@mozilla.org/layout/content-policy;1"
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
|
||||
#include "nsError.h"
|
||||
#include "nsIDocument.h"
|
||||
#include "nsStringFwd.h"
|
||||
#include "mozilla/EventForwards.h"
|
||||
|
||||
class nsINode;
|
||||
|
@ -16,8 +17,6 @@ class nsIDocument;
|
|||
class nsIImageLoadingContent;
|
||||
class nsIContent;
|
||||
class nsITransferable;
|
||||
class nsACString;
|
||||
class nsAString;
|
||||
class nsIPresShell;
|
||||
class nsILoadContext;
|
||||
|
||||
|
|
|
@ -12810,10 +12810,10 @@ nsGlobalWindow::OpenInternal(const nsAString& aUrl, const nsAString& aName,
|
|||
const bool checkForPopup = !nsContentUtils::LegacyIsCallerChromeOrNativeCode() &&
|
||||
!aDialog && !WindowExists(aName, forceNoOpener, !aCalledNoScript);
|
||||
|
||||
// Note: it's very important that this be an nsXPIDLCString, since we want
|
||||
// .get() on it to return nullptr until we write stuff to it. The window
|
||||
// watcher expects a null URL string if there is no URL to load.
|
||||
nsXPIDLCString url;
|
||||
// Note: the Void handling here is very important, because the window watcher
|
||||
// expects a null URL string (not an empty string) if there is no URL to load.
|
||||
nsCString url;
|
||||
url.SetIsVoid(true);
|
||||
nsresult rv = NS_OK;
|
||||
|
||||
// It's important to do this security check before determining whether this
|
||||
|
@ -12828,7 +12828,7 @@ nsGlobalWindow::OpenInternal(const nsAString& aUrl, const nsAString& aName,
|
|||
//
|
||||
// If we're not navigating, we assume that whoever *does* navigate the
|
||||
// window will do a security check of their own.
|
||||
if (url.get() && !aDialog && aNavigate)
|
||||
if (!url.IsVoid() && !aDialog && aNavigate)
|
||||
rv = SecurityCheckURL(url.get());
|
||||
}
|
||||
|
||||
|
@ -12892,7 +12892,8 @@ nsGlobalWindow::OpenInternal(const nsAString& aUrl, const nsAString& aName,
|
|||
if (!aCalledNoScript) {
|
||||
// We asserted at the top of this function that aNavigate is true for
|
||||
// !aCalledNoScript.
|
||||
rv = pwwatch->OpenWindow2(AsOuter(), url.get(), name_ptr,
|
||||
rv = pwwatch->OpenWindow2(AsOuter(), url.IsVoid() ? nullptr : url.get(),
|
||||
name_ptr,
|
||||
options_ptr, /* aCalledFromScript = */ true,
|
||||
aDialog, aNavigate, argv,
|
||||
isPopupSpamWindow,
|
||||
|
@ -12914,7 +12915,8 @@ nsGlobalWindow::OpenInternal(const nsAString& aUrl, const nsAString& aName,
|
|||
nojsapi.emplace();
|
||||
}
|
||||
|
||||
rv = pwwatch->OpenWindow2(AsOuter(), url.get(), name_ptr,
|
||||
rv = pwwatch->OpenWindow2(AsOuter(), url.IsVoid() ? nullptr : url.get(),
|
||||
name_ptr,
|
||||
options_ptr, /* aCalledFromScript = */ false,
|
||||
aDialog, aNavigate, aExtraArgument,
|
||||
isPopupSpamWindow,
|
||||
|
|
|
@ -18,7 +18,6 @@
|
|||
#include "nsNameSpaceManager.h"
|
||||
#include "nsString.h"
|
||||
#include "nsUnicharUtils.h"
|
||||
#include "nsXPIDLString.h"
|
||||
#include "nsIServiceManager.h"
|
||||
#include "nsIDocumentEncoder.h"
|
||||
#include "nsGkAtoms.h"
|
||||
|
|
|
@ -10,9 +10,9 @@
|
|||
#include "mozilla/dom/BorrowedAttrInfo.h"
|
||||
#include "nsCaseTreatment.h" // for enum, cannot be forward-declared
|
||||
#include "nsINode.h"
|
||||
#include "nsStringFwd.h"
|
||||
|
||||
// Forward declarations
|
||||
class nsAString;
|
||||
class nsIAtom;
|
||||
class nsIURI;
|
||||
class nsRuleWalker;
|
||||
|
|
|
@ -8,10 +8,10 @@
|
|||
#define nsIContentSerializer_h
|
||||
|
||||
#include "nsISupports.h"
|
||||
#include "nsStringFwd.h"
|
||||
|
||||
class nsIContent;
|
||||
class nsIDocument;
|
||||
class nsAString;
|
||||
|
||||
namespace mozilla {
|
||||
class Encoding;
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
#include "nsIUUIDGenerator.h"
|
||||
#include "nsPIDOMWindow.h" // for use in inline functions
|
||||
#include "nsPropertyTable.h" // for member
|
||||
#include "nsStringFwd.h"
|
||||
#include "nsDataHashtable.h" // for member
|
||||
#include "nsURIHashKey.h" // for member
|
||||
#include "mozilla/net/ReferrerPolicy.h" // for member
|
||||
|
@ -54,7 +55,6 @@ class ElementCreationOptionsOrString;
|
|||
|
||||
class gfxUserFontSet;
|
||||
class imgIRequest;
|
||||
class nsAString;
|
||||
class nsBindingManager;
|
||||
class nsIDocShell;
|
||||
class nsDocShell;
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
|
||||
#include "mozilla/dom/DispatcherTrait.h"
|
||||
#include "nsISupports.h"
|
||||
#include "nsStringFwd.h"
|
||||
#include "nsTArray.h"
|
||||
#include "js/TypeDecls.h"
|
||||
|
||||
|
@ -16,8 +17,6 @@
|
|||
{ 0x11afa8be, 0xd997, 0x4e07, \
|
||||
{ 0xa6, 0xa3, 0x6f, 0x87, 0x2e, 0xc3, 0xee, 0x7f } }
|
||||
|
||||
class nsACString;
|
||||
class nsCString;
|
||||
class nsCycleCollectionTraversalCallback;
|
||||
class nsIPrincipal;
|
||||
|
||||
|
|
|
@ -12,12 +12,11 @@
|
|||
#include "nsIAtom.h"
|
||||
#include "nsIDocument.h"
|
||||
#include "nsIObserver.h"
|
||||
#include "nsStringFwd.h"
|
||||
#include "nsTArray.h"
|
||||
|
||||
#include "mozilla/StaticPtr.h"
|
||||
|
||||
class nsAString;
|
||||
|
||||
/**
|
||||
* The Name Space Manager tracks the association between a NameSpace
|
||||
* URI and the int32_t runtime id. Mappings between NameSpaces and
|
||||
|
|
|
@ -14,9 +14,9 @@
|
|||
#include "mozilla/Attributes.h" // for final
|
||||
#include "nsCOMPtr.h" // for member
|
||||
#include "nsCycleCollectionParticipant.h" // for NS_DECL_CYCLE_*
|
||||
#include "nsStringFwd.h"
|
||||
#include "plhash.h" // for typedef PLHashNumber
|
||||
|
||||
class nsAString;
|
||||
class nsBindingManager;
|
||||
class nsIAtom;
|
||||
class nsIDocument;
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
#include "nsIInterfaceInfoManager.h"
|
||||
#include "nsIInterfaceInfo.h"
|
||||
#include "xptinfo.h"
|
||||
#include "nsXPIDLString.h"
|
||||
#include "nsString.h"
|
||||
#include "nsReadableUtils.h"
|
||||
#include "nsHashKeys.h"
|
||||
#include "nsDOMClassInfo.h"
|
||||
|
|
|
@ -20,8 +20,6 @@
|
|||
#include "nsReadableUtils.h"
|
||||
#include "nsISupportsImpl.h"
|
||||
|
||||
class nsString;
|
||||
|
||||
// XXX should this normalize the code to keep a \u0000 at the end?
|
||||
|
||||
// XXX nsTextFragmentPool?
|
||||
|
|
|
@ -18,7 +18,6 @@
|
|||
#include "nsNameSpaceManager.h"
|
||||
#include "nsString.h"
|
||||
#include "nsUnicharUtils.h"
|
||||
#include "nsXPIDLString.h"
|
||||
#include "nsIServiceManager.h"
|
||||
#include "nsIDocumentEncoder.h"
|
||||
#include "nsGkAtoms.h"
|
||||
|
|
|
@ -7843,10 +7843,12 @@ class CGPerSignatureCall(CGThing):
|
|||
not getter):
|
||||
cgThings.append(CGGeneric(fill(
|
||||
"""
|
||||
CustomElementReactionsStack* reactionsStack = GetCustomElementReactionsStack(${obj});
|
||||
Maybe<AutoCEReaction> ceReaction;
|
||||
if (reactionsStack) {
|
||||
ceReaction.emplace(reactionsStack);
|
||||
if (CustomElementRegistry::IsCustomElementEnabled()) {
|
||||
CustomElementReactionsStack* reactionsStack = GetCustomElementReactionsStack(${obj});
|
||||
if (reactionsStack) {
|
||||
ceReaction.emplace(reactionsStack);
|
||||
}
|
||||
}
|
||||
""", obj=objectName)))
|
||||
|
||||
|
|
|
@ -1408,6 +1408,16 @@ WebGLContext::GetCompositorBackendType() const
|
|||
return LayersBackend::LAYERS_NONE;
|
||||
}
|
||||
|
||||
nsIDocument*
|
||||
WebGLContext::GetOwnerDoc() const
|
||||
{
|
||||
MOZ_ASSERT(mCanvasElement);
|
||||
if (!mCanvasElement) {
|
||||
return nullptr;
|
||||
}
|
||||
return mCanvasElement->OwnerDoc();
|
||||
}
|
||||
|
||||
void
|
||||
WebGLContext::Commit()
|
||||
{
|
||||
|
|
|
@ -514,6 +514,7 @@ public:
|
|||
void AssertCachedGlobalState();
|
||||
|
||||
dom::HTMLCanvasElement* GetCanvas() const { return mCanvasElement; }
|
||||
nsIDocument* GetOwnerDoc() const;
|
||||
|
||||
// WebIDL WebGLRenderingContext API
|
||||
void Commit();
|
||||
|
|
|
@ -61,6 +61,19 @@ WebGLQuery::Delete()
|
|||
LinkedListElement<WebGLQuery>::removeFrom(mContext->mQueries);
|
||||
}
|
||||
|
||||
static void
|
||||
DispatchAvailableRunnable(WebGLQuery* query)
|
||||
{
|
||||
RefPtr<AvailableRunnable> runnable = new AvailableRunnable(query);
|
||||
|
||||
nsIDocument* document = query->mContext->GetOwnerDoc();
|
||||
if (document) {
|
||||
document->Dispatch(TaskCategory::Other, runnable.forget());
|
||||
return;
|
||||
}
|
||||
NS_DispatchToCurrentThread(runnable.forget());
|
||||
}
|
||||
|
||||
////
|
||||
|
||||
static GLenum
|
||||
|
@ -126,7 +139,7 @@ WebGLQuery::EndQuery()
|
|||
|
||||
////
|
||||
|
||||
NS_DispatchToCurrentThread(new AvailableRunnable(this));
|
||||
DispatchAvailableRunnable(this);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -254,7 +267,7 @@ WebGLQuery::QueryCounter(const char* funcName, GLenum target)
|
|||
gl->MakeCurrent();
|
||||
gl->fQueryCounter(mGLName, mTarget);
|
||||
|
||||
NS_DispatchToCurrentThread(new AvailableRunnable(this));
|
||||
DispatchAvailableRunnable(this);
|
||||
}
|
||||
|
||||
////
|
||||
|
|
|
@ -9,11 +9,10 @@
|
|||
|
||||
#include "nsContentUtils.h"
|
||||
#include "nsISupports.h"
|
||||
#include "nsStringFwd.h"
|
||||
#include "nsTArrayForwardDeclare.h"
|
||||
|
||||
class nsACString;
|
||||
class nsIDocument;
|
||||
class nsString;
|
||||
|
||||
#define NS_NSICONSOLEREPORTCOLLECTOR_IID \
|
||||
{0xdd98a481, 0xd2c4, 0x4203, {0x8d, 0xfa, 0x85, 0xbf, 0xd7, 0xdc, 0xd7, 0x05}}
|
||||
|
|
|
@ -10,8 +10,7 @@
|
|||
#include "mozilla/dom/Event.h"
|
||||
#include "mozilla/dom/AnimationEventBinding.h"
|
||||
#include "nsIDOMAnimationEvent.h"
|
||||
|
||||
class nsAString;
|
||||
#include "nsStringFwd.h"
|
||||
|
||||
namespace mozilla {
|
||||
namespace dom {
|
||||
|
|
|
@ -13,10 +13,9 @@
|
|||
#include "mozilla/EventForwards.h"
|
||||
#include "mozilla/TouchEvents.h"
|
||||
#include "nsJSEnvironment.h"
|
||||
#include "nsStringFwd.h"
|
||||
#include "nsWrapperCache.h"
|
||||
|
||||
class nsAString;
|
||||
|
||||
namespace mozilla {
|
||||
namespace dom {
|
||||
|
||||
|
|
|
@ -10,8 +10,7 @@
|
|||
#include "mozilla/dom/Event.h"
|
||||
#include "mozilla/dom/TransitionEventBinding.h"
|
||||
#include "nsIDOMTransitionEvent.h"
|
||||
|
||||
class nsAString;
|
||||
#include "nsStringFwd.h"
|
||||
|
||||
namespace mozilla {
|
||||
namespace dom {
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
#include "mozilla/dom/HTMLAllCollection.h"
|
||||
#include "nsCOMPtr.h"
|
||||
#include "nsGlobalWindow.h"
|
||||
#include "nsXPIDLString.h"
|
||||
#include "nsString.h"
|
||||
#include "nsPrintfCString.h"
|
||||
#include "nsReadableUtils.h"
|
||||
#include "nsUnicharUtils.h"
|
||||
|
|
|
@ -15,9 +15,9 @@
|
|||
#define nsIFormProcessor_h__
|
||||
|
||||
#include "nsISupports.h"
|
||||
#include "nsStringFwd.h"
|
||||
#include "nsTArrayForwardDeclare.h"
|
||||
|
||||
class nsString;
|
||||
class nsIDOMHTMLElement;
|
||||
|
||||
// {0ae53c0f-8ea2-4916-bedc-717443c3e185}
|
||||
|
|
|
@ -8,13 +8,13 @@
|
|||
#define nsIHTMLCollection_h___
|
||||
|
||||
#include "nsIDOMHTMLCollection.h"
|
||||
#include "nsStringFwd.h"
|
||||
#include "nsTArrayForwardDeclare.h"
|
||||
#include "nsWrapperCache.h"
|
||||
#include "js/GCAPI.h"
|
||||
#include "js/TypeDecls.h"
|
||||
|
||||
class nsINode;
|
||||
class nsString;
|
||||
|
||||
namespace mozilla {
|
||||
namespace dom {
|
||||
|
|
|
@ -9,8 +9,8 @@
|
|||
|
||||
#include "nsISupports.h"
|
||||
#include "nsCOMPtr.h"
|
||||
#include "nsStringFwd.h"
|
||||
class nsIContent;
|
||||
class nsAString;
|
||||
class nsISelectionController;
|
||||
class nsFrameSelection;
|
||||
class nsTextControlFrame;
|
||||
|
|
|
@ -184,6 +184,7 @@ support-files =
|
|||
file_bug1166138_2x.png
|
||||
file_bug1166138_def.png
|
||||
script_fakepath.js
|
||||
sw_formSubmission.js
|
||||
object_bug287465_o1.html
|
||||
object_bug287465_o2.html
|
||||
object_bug556645.html
|
||||
|
|
|
@ -0,0 +1,36 @@
|
|||
/**
|
||||
* We are used by test_formSubmission.html to immediately activate and start
|
||||
* controlling its page. We operate in 3 modes, conveyed via ?MODE appended to
|
||||
* our URL.
|
||||
*
|
||||
* - "no-fetch": Don't register a fetch listener so that the optimized fetch
|
||||
* event bypass happens.
|
||||
* - "reset-fetch": Do register a fetch listener, reset every interception.
|
||||
* - "proxy-fetch": Do register a fetch listener, resolve every interception
|
||||
* with fetch(event.request).
|
||||
*/
|
||||
|
||||
const mode = location.search.slice(1);
|
||||
|
||||
// Fetch handling.
|
||||
if (mode !== "no-fetch") {
|
||||
addEventListener("fetch", function(event) {
|
||||
if (mode === "reset-fetch") {
|
||||
// Don't invoke respondWith, resetting the interception.
|
||||
return;
|
||||
} else if (mode === "proxy-fetch") {
|
||||
// Per the spec, there's an automatic waitUntil() on this too.
|
||||
event.respondWith(fetch(event.request));
|
||||
return;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// Go straight to activation, bypassing waiting.
|
||||
addEventListener("install", function(event) {
|
||||
event.waitUntil(skipWaiting());
|
||||
});
|
||||
// Control the test document ASAP.
|
||||
addEventListener("activate", function(event) {
|
||||
event.waitUntil(clients.claim());
|
||||
});
|
|
@ -5,7 +5,7 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=523771
|
|||
-->
|
||||
<head>
|
||||
<title>Test for Bug 523771</title>
|
||||
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
|
||||
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
|
||||
</head>
|
||||
|
@ -254,7 +254,7 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=523771
|
|||
<input type=email name="n20_8" value="foo@mózillä.órg"></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
|
||||
<p>
|
||||
File input:
|
||||
<input type=file name="file_1" class="setfile">
|
||||
|
@ -290,7 +290,7 @@ t_6_v</textarea>
|
|||
</textarea>
|
||||
<textarea name="t8">
|
||||
|
||||
t_8_v
|
||||
t_8_v 
|
||||
</textarea>
|
||||
<textarea name="t9_ _ _ _ _"">t_9_ _ _ _ _"_v</textarea>
|
||||
<textarea name="t10" value="t_10_bogus">t_10_v</textarea>
|
||||
|
@ -298,7 +298,7 @@ t_6_v</textarea>
|
|||
|
||||
<p>
|
||||
Select one:
|
||||
|
||||
|
||||
<select name="sel_1"></select>
|
||||
<select name="sel_1b"><option></option></select>
|
||||
<select name="sel_1c"><option selected></option></select>
|
||||
|
@ -339,7 +339,7 @@ t_6_v</textarea>
|
|||
|
||||
<p>
|
||||
Select multiple:
|
||||
|
||||
|
||||
<select multiple name="msel_1"></select>
|
||||
<select multiple name="msel_1b"><option></option></select>
|
||||
<select multiple name="msel_1c"><option selected></option></select>
|
||||
|
@ -449,7 +449,7 @@ function onFilesOpened(files) {
|
|||
emptyFile = { name: "", type: "application/octet-stream" };
|
||||
|
||||
// Now, actually run the tests; see below.
|
||||
onFilesSet();
|
||||
runAllTestVariants();
|
||||
};
|
||||
|
||||
var expectedSub = [
|
||||
|
@ -605,11 +605,11 @@ function checkMPSubmission(sub, expected, test) {
|
|||
|
||||
is(sub.length, expected.length,
|
||||
"Correct number of multipart items in " + test);
|
||||
|
||||
|
||||
if (sub.length != expected.length) {
|
||||
alert(JSON.stringify(sub));
|
||||
}
|
||||
|
||||
|
||||
var i;
|
||||
for (i = 0; i < expected.length; ++i) {
|
||||
if (!("fileName" in expected[i])) {
|
||||
|
@ -662,7 +662,7 @@ function checkURLSubmission(sub, expected) {
|
|||
}
|
||||
|
||||
function checkPlainSubmission(sub, expected) {
|
||||
|
||||
|
||||
is(sub,
|
||||
expected.map(function(v) {
|
||||
return v.name + "=" +
|
||||
|
@ -678,13 +678,27 @@ function setDisabled(list, state) {
|
|||
});
|
||||
}
|
||||
|
||||
/*
|
||||
* The below test function uses callbacks that invoke gen.next() rather than
|
||||
* creating and resolving Promises. I'm trying to minimize churn since these
|
||||
* changes want to be uplifted. Some kind soul might want to clean this all up
|
||||
* at some point.
|
||||
*/
|
||||
var gen;
|
||||
function onFilesSet() {
|
||||
gen = runTest();
|
||||
gen.next();
|
||||
$("target_iframe").onload = function() { gen.next(); };
|
||||
// Run the suite of tests for this variant, returning a Promise that will be
|
||||
// resolved when the batch completes. Then and only then runTestVariant may
|
||||
// be invoked to run a different variation.
|
||||
function runTestVariant(variantLabel) {
|
||||
info("starting test variant: " + variantLabel);
|
||||
return new Promise((resolve) => {
|
||||
// Instantiate the generator.
|
||||
gen = runTestVariantUsingWeirdGenDriver(resolve);
|
||||
// Run the generator to the first yield, at which point it is self-driving.
|
||||
gen.next();
|
||||
});
|
||||
}
|
||||
|
||||
function* runTest() {
|
||||
function* runTestVariantUsingWeirdGenDriver(finishedVariant) {
|
||||
// Set up the expectedSub array
|
||||
fileReader1 = new FileReader;
|
||||
fileReader1.readAsBinaryString(myFile1);
|
||||
|
@ -716,11 +730,12 @@ function* runTest() {
|
|||
var form = $("form");
|
||||
|
||||
// multipart/form-data
|
||||
|
||||
var iframe = $("target_iframe");
|
||||
iframe.onload = function() { gen.next(); };
|
||||
|
||||
// Make normal submission
|
||||
form.action = "form_submit_server.sjs";
|
||||
form.method = "POST";
|
||||
form.enctype = "multipart/form-data";
|
||||
form.submit();
|
||||
yield undefined; // Wait for iframe to load as a result of the submission
|
||||
var submission = JSON.parse(iframe.contentDocument.documentElement.textContent);
|
||||
|
@ -781,7 +796,7 @@ function* runTest() {
|
|||
xhr.send(new FormData(form));
|
||||
yield undefined; // Wait for XHR load
|
||||
checkMPSubmission(JSON.parse(xhr.responseText), expectedSub, "send form using XHR and FormData");
|
||||
|
||||
|
||||
// Send disabled form using XHR and FormData
|
||||
setDisabled(document.querySelectorAll("input, select, textarea"), true);
|
||||
xhr.open("POST", "form_submit_server.sjs");
|
||||
|
@ -789,7 +804,7 @@ function* runTest() {
|
|||
yield undefined;
|
||||
checkMPSubmission(JSON.parse(xhr.responseText), [], "send disabled form using XHR and FormData");
|
||||
setDisabled(document.querySelectorAll("input, select, textarea"), false);
|
||||
|
||||
|
||||
// Send FormData
|
||||
function addToFormData(fd) {
|
||||
fd.append("aName", "aValue");
|
||||
|
@ -813,6 +828,71 @@ function* runTest() {
|
|||
checkMPSubmission(JSON.parse(xhr.responseText),
|
||||
expectedSub.concat(expectedAugment), "send augmented FormData");
|
||||
|
||||
finishedVariant();
|
||||
}
|
||||
|
||||
/**
|
||||
* Install our service-worker (parameterized by appending "?MODE"), which will
|
||||
* invoke skipWaiting() and clients.claim() to begin controlling us ASAP. We
|
||||
* wait on the controllerchange event
|
||||
*/
|
||||
async function installAndBeControlledByServiceWorker(mode) {
|
||||
const scriptURL = "sw_formSubmission.js?" + mode;
|
||||
const controllerChanged = new Promise((resolve) => {
|
||||
navigator.serviceWorker.addEventListener(
|
||||
"controllerchange", () => { resolve(); }, { once: true });
|
||||
});
|
||||
|
||||
info("installing ServiceWorker: " + scriptURL);
|
||||
const swr = await navigator.serviceWorker.register(scriptURL,
|
||||
{ scope: "./" });
|
||||
await controllerChanged;
|
||||
ok(navigator.serviceWorker.controller.scriptURL.endsWith(scriptURL),
|
||||
"controlled by the SW we expected");
|
||||
info("became controlled by ServiceWorker.");
|
||||
|
||||
return swr;
|
||||
}
|
||||
|
||||
async function runAllTestVariants() {
|
||||
// Run the test as it has historically been run, with no ServiceWorkers
|
||||
// anywhere!
|
||||
await runTestVariant("no ServiceWorker");
|
||||
|
||||
// Uncomment the below if something in the test seems broken and you're not
|
||||
// sure whether it's a side-effect of the multiple passes or not.
|
||||
//await runTestVariant("no ServiceWorker second paranoia time");
|
||||
|
||||
// Ensure ServiceWorkers are enabled and that testing mode (which disables
|
||||
// security checks) is on too.
|
||||
await SpecialPowers.pushPrefEnv({"set": [
|
||||
["dom.serviceWorkers.enabled", true],
|
||||
["dom.serviceWorkers.testing.enabled", true]
|
||||
]});
|
||||
|
||||
// Now run the test with a ServiceWorker that covers the scope but has no
|
||||
// fetch handler, so the optimization case will not actually dispatch a
|
||||
// "fetch" event, but some stuff will happen that can change things enough
|
||||
// to break them like in https://bugzilla.mozilla.org/show_bug.cgi?id=1383518.
|
||||
await installAndBeControlledByServiceWorker("no-fetch");
|
||||
await runTestVariant("ServiceWorker that does not listen for fetch events");
|
||||
|
||||
// Now the ServiceWorker does have a "fetch" event listener, but it will reset
|
||||
// interception every time. This is similar to the prior case but different
|
||||
// enough that it could break things in a different exciting way.
|
||||
await installAndBeControlledByServiceWorker("reset-fetch");
|
||||
await runTestVariant("ServiceWorker that resets all fetches");
|
||||
|
||||
// Now the ServiceWorker resolves the fetch event with `fetch(event.request)`
|
||||
// which makes little sense but is a thing that can happen.
|
||||
const swr = await installAndBeControlledByServiceWorker("proxy-fetch");
|
||||
await runTestVariant("ServiceWorker that proxies all fetches");
|
||||
|
||||
// cleanup.
|
||||
info("unregistering ServiceWorker");
|
||||
await swr.unregister();
|
||||
info("ServiceWorker uninstalled");
|
||||
|
||||
SimpleTest.finish();
|
||||
}
|
||||
|
||||
|
|
|
@ -11,13 +11,11 @@
|
|||
#include "mozilla/dom/BindingDeclarations.h"
|
||||
#include "mozilla/dom/Event.h"
|
||||
#include "mozilla/dom/Nullable.h"
|
||||
#include "nsStringFwd.h"
|
||||
|
||||
#define IDBVERSIONCHANGEEVENT_IID \
|
||||
{0x3b65d4c3, 0x73ad, 0x492e, {0xb1, 0x2d, 0x15, 0xf9, 0xda, 0xc2, 0x08, 0x4b}}
|
||||
|
||||
class nsAString;
|
||||
class nsDependentString;
|
||||
|
||||
namespace mozilla {
|
||||
|
||||
class ErrorResult;
|
||||
|
|
|
@ -8,9 +8,7 @@
|
|||
#define mozilla_dom_indexeddb_scripterrorhelper_h__
|
||||
|
||||
#include <inttypes.h>
|
||||
|
||||
class nsACString;
|
||||
class nsAString;
|
||||
#include "nsStringFwd.h"
|
||||
|
||||
namespace mozilla {
|
||||
namespace dom {
|
||||
|
@ -41,4 +39,4 @@ public:
|
|||
} // namespace dom
|
||||
} // namespace mozilla
|
||||
|
||||
#endif // mozilla_dom_indexeddb_scripterrorhelper_h__
|
||||
#endif // mozilla_dom_indexeddb_scripterrorhelper_h__
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
#include "mozilla/dom/ipc/IdType.h"
|
||||
|
||||
#include "nsISupports.h"
|
||||
#include "nsStringFwd.h"
|
||||
#include "nsTArrayForwardDeclare.h"
|
||||
#include "mozilla/dom/CPOWManagerGetter.h"
|
||||
#include "mozilla/ipc/Shmem.h"
|
||||
|
@ -19,8 +20,6 @@
|
|||
{ 0x4eed2e73, 0x94ba, 0x48a8, \
|
||||
{ 0xa2, 0xd1, 0xa5, 0xed, 0x86, 0xd7, 0xbb, 0xe4 } }
|
||||
|
||||
class nsString;
|
||||
|
||||
namespace IPC {
|
||||
class Principal;
|
||||
} // namespace IPC
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
#include "jswrapper.h"
|
||||
#include "nsCRT.h"
|
||||
#include "nsError.h"
|
||||
#include "nsXPIDLString.h"
|
||||
#include "nsString.h"
|
||||
#include "nsReadableUtils.h"
|
||||
#include "nsJSProtocolHandler.h"
|
||||
#include "nsStringStream.h"
|
||||
|
@ -28,7 +28,6 @@
|
|||
#include "nsIWindowMediator.h"
|
||||
#include "nsPIDOMWindow.h"
|
||||
#include "nsIConsoleService.h"
|
||||
#include "nsXPIDLString.h"
|
||||
#include "nsEscape.h"
|
||||
#include "nsIWebNavigation.h"
|
||||
#include "nsIDocShell.h"
|
||||
|
|
|
@ -8,9 +8,7 @@
|
|||
#define DecoderTraits_h_
|
||||
|
||||
#include "nsCOMPtr.h"
|
||||
|
||||
class nsAString;
|
||||
class nsACString;
|
||||
#include "nsStringFwd.h"
|
||||
|
||||
namespace mozilla {
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
#if !defined(MP4Decoder_h_)
|
||||
#define MP4Decoder_h_
|
||||
|
||||
class nsACString;
|
||||
#include "nsStringFwd.h"
|
||||
|
||||
namespace mozilla {
|
||||
|
||||
|
|
|
@ -28,3 +28,4 @@ USE_STATIC_LIBS = True
|
|||
NO_VISIBILITY_FLAGS = True
|
||||
# Don't use STL wrappers; this isn't Gecko code
|
||||
DISABLE_STL_WRAPPING = True
|
||||
NO_PGO = True
|
||||
|
|
|
@ -30,3 +30,4 @@ USE_STATIC_LIBS = True
|
|||
NO_VISIBILITY_FLAGS = True
|
||||
# Don't use STL wrappers; this isn't Gecko code
|
||||
DISABLE_STL_WRAPPING = True
|
||||
NO_PGO = True
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
#include "mozilla/UniquePtr.h"
|
||||
#include "mozilla/RefPtr.h"
|
||||
#include "mozilla/AbstractThread.h"
|
||||
#include "nsStringFwd.h"
|
||||
#include "nsTArray.h"
|
||||
#include "nsCOMPtr.h"
|
||||
#include "nsClassHashtable.h"
|
||||
|
@ -16,7 +17,6 @@
|
|||
#define CHROMIUM_CDM_API "chromium-cdm8-host4"
|
||||
|
||||
class nsIFile;
|
||||
class nsCString;
|
||||
class nsISimpleEnumerator;
|
||||
|
||||
namespace mozilla {
|
||||
|
|
|
@ -10,10 +10,9 @@
|
|||
#include "OMX_Core.h"
|
||||
#include "OMX_Types.h"
|
||||
|
||||
#include "nsStringFwd.h"
|
||||
#include "OmxPromiseLayer.h"
|
||||
|
||||
class nsACString;
|
||||
|
||||
namespace mozilla {
|
||||
|
||||
class TaskQueue;
|
||||
|
|
|
@ -341,7 +341,7 @@ MediaEngineWebRTC::EnumerateAudioDevices(dom::MediaSourceEnum aMediaSource,
|
|||
|
||||
int error = mAudioInput->GetRecordingDeviceName(i, deviceName, uniqueId);
|
||||
if (error) {
|
||||
LOG((" VoEHardware:GetRecordingDeviceName: Failed %d", error));
|
||||
LOG((" AudioInput::GetRecordingDeviceName: Failed %d", error));
|
||||
continue;
|
||||
}
|
||||
|
||||
|
|
|
@ -43,12 +43,12 @@
|
|||
// Audio Engine
|
||||
#include "webrtc/voice_engine/include/voe_base.h"
|
||||
#include "webrtc/voice_engine/include/voe_codec.h"
|
||||
#include "webrtc/voice_engine/include/voe_hardware.h"
|
||||
#include "webrtc/voice_engine/include/voe_network.h"
|
||||
#include "webrtc/voice_engine/include/voe_audio_processing.h"
|
||||
#include "webrtc/voice_engine/include/voe_volume_control.h"
|
||||
#include "webrtc/voice_engine/include/voe_external_media.h"
|
||||
#include "webrtc/voice_engine/include/voe_audio_processing.h"
|
||||
#include "webrtc/modules/audio_device/include/audio_device.h"
|
||||
#include "webrtc/modules/audio_processing/include/audio_processing.h"
|
||||
|
||||
// Video Engine
|
||||
|
@ -378,35 +378,36 @@ public:
|
|||
|
||||
int GetNumOfRecordingDevices(int& aDevices)
|
||||
{
|
||||
ScopedCustomReleasePtr<webrtc::VoEHardware> ptrVoEHw;
|
||||
ptrVoEHw = webrtc::VoEHardware::GetInterface(mVoiceEngine);
|
||||
if (!ptrVoEHw) {
|
||||
ScopedCustomReleasePtr<webrtc::VoEBase> ptrVoEBase;
|
||||
ptrVoEBase = webrtc::VoEBase::GetInterface(mVoiceEngine);
|
||||
if (!ptrVoEBase) {
|
||||
return 1;
|
||||
}
|
||||
return ptrVoEHw->GetNumOfRecordingDevices(aDevices);
|
||||
aDevices = ptrVoEBase->audio_device_module()->RecordingDevices();
|
||||
return 0;
|
||||
}
|
||||
|
||||
int GetRecordingDeviceName(int aIndex, char (&aStrNameUTF8)[128],
|
||||
char aStrGuidUTF8[128])
|
||||
{
|
||||
ScopedCustomReleasePtr<webrtc::VoEHardware> ptrVoEHw;
|
||||
ptrVoEHw = webrtc::VoEHardware::GetInterface(mVoiceEngine);
|
||||
if (!ptrVoEHw) {
|
||||
ScopedCustomReleasePtr<webrtc::VoEBase> ptrVoEBase;
|
||||
ptrVoEBase = webrtc::VoEBase::GetInterface(mVoiceEngine);
|
||||
if (!ptrVoEBase) {
|
||||
return 1;
|
||||
}
|
||||
return ptrVoEHw->GetRecordingDeviceName(aIndex, aStrNameUTF8,
|
||||
aStrGuidUTF8);
|
||||
return ptrVoEBase->audio_device_module()->RecordingDeviceName(aIndex,
|
||||
aStrNameUTF8,
|
||||
aStrGuidUTF8);
|
||||
}
|
||||
|
||||
int GetRecordingDeviceStatus(bool& aIsAvailable)
|
||||
{
|
||||
ScopedCustomReleasePtr<webrtc::VoEHardware> ptrVoEHw;
|
||||
ptrVoEHw = webrtc::VoEHardware::GetInterface(mVoiceEngine);
|
||||
if (!ptrVoEHw) {
|
||||
ScopedCustomReleasePtr<webrtc::VoEBase> ptrVoEBase;
|
||||
ptrVoEBase = webrtc::VoEBase::GetInterface(mVoiceEngine);
|
||||
if (!ptrVoEBase) {
|
||||
return 1;
|
||||
}
|
||||
ptrVoEHw->GetRecordingDeviceStatus(aIsAvailable);
|
||||
return 0;
|
||||
return ptrVoEBase->audio_device_module()->RecordingIsAvailable(&aIsAvailable);
|
||||
}
|
||||
|
||||
void GetChannelCount(uint32_t& aChannels)
|
||||
|
@ -428,12 +429,12 @@ public:
|
|||
|
||||
int SetRecordingDevice(int aIndex)
|
||||
{
|
||||
ScopedCustomReleasePtr<webrtc::VoEHardware> ptrVoEHw;
|
||||
ptrVoEHw = webrtc::VoEHardware::GetInterface(mVoiceEngine);
|
||||
if (!ptrVoEHw) {
|
||||
ScopedCustomReleasePtr<webrtc::VoEBase> ptrVoEBase;
|
||||
ptrVoEBase = webrtc::VoEBase::GetInterface(mVoiceEngine);
|
||||
if (!ptrVoEBase) {
|
||||
return 1;
|
||||
}
|
||||
return ptrVoEHw->SetRecordingDevice(aIndex);
|
||||
return ptrVoEBase->audio_device_module()->SetRecordingDevice(aIndex);
|
||||
}
|
||||
|
||||
protected:
|
||||
|
|
|
@ -386,6 +386,11 @@ PerformanceTiming::ResponseStartHighRes()
|
|||
(!mCacheReadStart.IsNull() && mCacheReadStart < mResponseStart)) {
|
||||
mResponseStart = mCacheReadStart;
|
||||
}
|
||||
|
||||
if (mResponseStart.IsNull() ||
|
||||
(!mRequestStart.IsNull() && mResponseStart < mRequestStart)) {
|
||||
mResponseStart = mRequestStart;
|
||||
}
|
||||
return TimeStampToDOMHighResOrFetchStart(mResponseStart);
|
||||
}
|
||||
|
||||
|
|
|
@ -266,8 +266,6 @@ public:
|
|||
// True while creating the plugin, or calling NPP_SetWindow() on it.
|
||||
bool mInPluginInitCall;
|
||||
|
||||
nsXPIDLCString mFakeURL;
|
||||
|
||||
private:
|
||||
RefPtr<nsNPAPIPlugin> mPlugin;
|
||||
|
||||
|
|
|
@ -11,13 +11,13 @@
|
|||
#include "npapi.h"
|
||||
#include "npfunctions.h"
|
||||
#include "nscore.h"
|
||||
#include "nsStringFwd.h"
|
||||
#include "nsTArray.h"
|
||||
#include "nsError.h"
|
||||
#include "mozilla/EventForwards.h"
|
||||
#include "nsSize.h"
|
||||
#include "nsRect.h"
|
||||
|
||||
class nsCString;
|
||||
class nsNPAPIPlugin;
|
||||
|
||||
namespace mozilla {
|
||||
|
|
|
@ -37,6 +37,8 @@ USE_STATIC_LIBS = True
|
|||
# Don't use STL wrappers; nptest isn't Gecko code
|
||||
DISABLE_STL_WRAPPING = True
|
||||
|
||||
NO_PGO = True
|
||||
|
||||
if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'windows':
|
||||
RCFILE = 'nptest.rc'
|
||||
RESFILE = 'nptest.res'
|
||||
|
|
|
@ -20,9 +20,9 @@ interface nsIPrincipal;
|
|||
#define PRESENTATION_SERVICE_CONTRACTID \
|
||||
"@mozilla.org/presentation/presentationservice;1"
|
||||
|
||||
#include "nsStringFwd.h"
|
||||
#include "nsTArray.h"
|
||||
|
||||
class nsString;
|
||||
%}
|
||||
|
||||
[ref] native URLArrayRef(const nsTArray<nsString>);
|
||||
|
|
Некоторые файлы не были показаны из-за слишком большого количества измененных файлов Показать больше
Загрузка…
Ссылка в новой задаче