mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
merge fx-team to mozilla-central a=merge
This commit is contained in:
commit
175bd20c82
@ -356,11 +356,11 @@ loop.store = loop.store || {};
|
||||
|
||||
switch (providerOrigin) {
|
||||
case "mail.google.com":
|
||||
shareTitle = mozL10n.get("share_email_subject6");
|
||||
shareBody = mozL10n.get("share_email_body6", {
|
||||
shareTitle = mozL10n.get("share_email_subject7");
|
||||
shareBody = mozL10n.get("share_email_body7", {
|
||||
callUrl: actionData.roomUrl
|
||||
});
|
||||
shareBody += mozL10n.get("share_email_footer");
|
||||
shareBody += mozL10n.get("share_email_footer2");
|
||||
break;
|
||||
case "twitter.com":
|
||||
default:
|
||||
|
@ -268,10 +268,18 @@ loop.roomViews = (function(mozL10n) {
|
||||
|
||||
var roomData = this.props.roomData;
|
||||
var contextURL = roomData.roomContextUrls && roomData.roomContextUrls[0];
|
||||
if (contextURL) {
|
||||
if (contextURL.location === null) {
|
||||
contextURL = undefined;
|
||||
} else {
|
||||
contextURL = sharedUtils.formatURL(contextURL.location).hostname;
|
||||
}
|
||||
}
|
||||
|
||||
this.props.dispatcher.dispatch(
|
||||
new sharedActions.EmailRoomUrl({
|
||||
roomUrl: roomData.roomUrl,
|
||||
roomDescription: contextURL && contextURL.description,
|
||||
roomDescription: contextURL,
|
||||
from: "conversation"
|
||||
}));
|
||||
},
|
||||
|
@ -268,10 +268,18 @@ loop.roomViews = (function(mozL10n) {
|
||||
|
||||
var roomData = this.props.roomData;
|
||||
var contextURL = roomData.roomContextUrls && roomData.roomContextUrls[0];
|
||||
if (contextURL) {
|
||||
if (contextURL.location === null) {
|
||||
contextURL = undefined;
|
||||
} else {
|
||||
contextURL = sharedUtils.formatURL(contextURL.location).hostname;
|
||||
}
|
||||
}
|
||||
|
||||
this.props.dispatcher.dispatch(
|
||||
new sharedActions.EmailRoomUrl({
|
||||
roomUrl: roomData.roomUrl,
|
||||
roomDescription: contextURL && contextURL.description,
|
||||
roomDescription: contextURL,
|
||||
from: "conversation"
|
||||
}));
|
||||
},
|
||||
|
@ -391,17 +391,16 @@ var inChrome = typeof Components != "undefined" && "utils" in Components;
|
||||
}
|
||||
|
||||
var subject, body;
|
||||
var footer = mozL10n.get("share_email_footer");
|
||||
|
||||
var footer = mozL10n.get("share_email_footer2");
|
||||
if (contextDescription) {
|
||||
subject = mozL10n.get("share_email_subject6");
|
||||
body = mozL10n.get("share_email_body_context2", {
|
||||
subject = mozL10n.get("share_email_subject7");
|
||||
body = mozL10n.get("share_email_body_context3", {
|
||||
callUrl: callUrl,
|
||||
title: contextDescription
|
||||
});
|
||||
} else {
|
||||
subject = mozL10n.get("share_email_subject6");
|
||||
body = mozL10n.get("share_email_body6", {
|
||||
subject = mozL10n.get("share_email_subject7");
|
||||
body = mozL10n.get("share_email_body7", {
|
||||
callUrl: callUrl
|
||||
});
|
||||
}
|
||||
|
@ -553,7 +553,7 @@ describe("loop.store.RoomStore", function() {
|
||||
|
||||
sinon.assert.calledOnce(fakeMozLoop.socialShareRoom);
|
||||
sinon.assert.calledWithExactly(fakeMozLoop.socialShareRoom, origin,
|
||||
roomUrl, "share_email_subject6", "share_email_body6" + "share_email_footer");
|
||||
roomUrl, "share_email_subject7", "share_email_body7" + "share_email_footer2");
|
||||
});
|
||||
|
||||
it("should pass the correct data for all other Social Providers", function() {
|
||||
|
@ -212,7 +212,8 @@ describe("loop.roomViews", function() {
|
||||
React.createElement(loop.roomViews.DesktopRoomInvitationView, props));
|
||||
}
|
||||
|
||||
it("should dispatch an EmailRoomUrl action when the email button is pressed",
|
||||
it("should dispatch an EmailRoomUrl with no description" +
|
||||
" for rooms without context when the email button is pressed",
|
||||
function() {
|
||||
view = mountTestComponent({
|
||||
roomData: { roomUrl: "http://invalid" }
|
||||
@ -231,14 +232,13 @@ describe("loop.roomViews", function() {
|
||||
}));
|
||||
});
|
||||
|
||||
it("should dispatch a different EmailRoomUrl action for rooms with context",
|
||||
it("should dispatch an EmailRoomUrl with a domain name description for rooms with context",
|
||||
function() {
|
||||
var url = "http://invalid";
|
||||
var description = "Hello, is it me you're looking for?";
|
||||
view = mountTestComponent({
|
||||
roomData: {
|
||||
roomUrl: url,
|
||||
roomContextUrls: [{ description: description }]
|
||||
roomContextUrls: [{ location: "http://www.mozilla.com/" }]
|
||||
}
|
||||
});
|
||||
|
||||
@ -250,7 +250,7 @@ describe("loop.roomViews", function() {
|
||||
sinon.assert.calledWith(dispatcher.dispatch,
|
||||
new sharedActions.EmailRoomUrl({
|
||||
roomUrl: url,
|
||||
roomDescription: description,
|
||||
roomDescription: "www.mozilla.com",
|
||||
from: "conversation"
|
||||
}));
|
||||
});
|
||||
|
@ -322,13 +322,13 @@ describe("loop.shared.utils", function() {
|
||||
// fake mozL10n
|
||||
sandbox.stub(navigator.mozL10n, "get", function(id) {
|
||||
switch (id) {
|
||||
case "share_email_subject6":
|
||||
case "share_email_subject7":
|
||||
return "subject";
|
||||
case "share_email_body6":
|
||||
case "share_email_body7":
|
||||
return "body";
|
||||
case "share_email_body_context2":
|
||||
case "share_email_body_context3":
|
||||
return "body_context";
|
||||
case "share_email_footer":
|
||||
case "share_email_footer2":
|
||||
return "footer";
|
||||
}
|
||||
});
|
||||
|
@ -647,6 +647,7 @@ BrowserGlue.prototype = {
|
||||
ExtensionManagement.registerScript("chrome://browser/content/ext-bookmarks.js");
|
||||
|
||||
this._flashHangCount = 0;
|
||||
this._firstWindowReady = new Promise(resolve => this._firstWindowLoaded = resolve);
|
||||
},
|
||||
|
||||
// cleanup (called on application shutdown)
|
||||
@ -1145,6 +1146,7 @@ BrowserGlue.prototype = {
|
||||
this._checkForOldBuildUpdates();
|
||||
|
||||
this._firstWindowTelemetry(aWindow);
|
||||
this._firstWindowLoaded();
|
||||
},
|
||||
|
||||
/**
|
||||
@ -2213,7 +2215,7 @@ BrowserGlue.prototype = {
|
||||
}
|
||||
|
||||
if (currentUIVersion < 32) {
|
||||
this._notifyNotificationsUpgrade();
|
||||
this._notifyNotificationsUpgrade().catch(Cu.reportError);
|
||||
}
|
||||
|
||||
// Update the migration version.
|
||||
@ -2231,10 +2233,11 @@ BrowserGlue.prototype = {
|
||||
return false;
|
||||
},
|
||||
|
||||
_notifyNotificationsUpgrade: function BG__notifyNotificationsUpgrade() {
|
||||
_notifyNotificationsUpgrade: Task.async(function* () {
|
||||
if (!this._hasExistingNotificationPermission()) {
|
||||
return;
|
||||
}
|
||||
yield this._firstWindowReady;
|
||||
function clickCallback(subject, topic, data) {
|
||||
if (topic != "alertclickcallback")
|
||||
return;
|
||||
@ -2243,17 +2246,12 @@ BrowserGlue.prototype = {
|
||||
}
|
||||
let imageURL = "chrome://browser/skin/web-notifications-icon.svg";
|
||||
let title = gBrowserBundle.GetStringFromName("webNotifications.upgradeTitle");
|
||||
let text = gBrowserBundle.GetStringFromName("webNotifications.upgradeInfo");
|
||||
let text = gBrowserBundle.GetStringFromName("webNotifications.upgradeBody");
|
||||
let url = Services.urlFormatter.formatURLPref("browser.push.warning.migrationURL");
|
||||
|
||||
try {
|
||||
AlertsService.showAlertNotification(imageURL, title, text,
|
||||
true, url, clickCallback);
|
||||
}
|
||||
catch (e) {
|
||||
Cu.reportError(e);
|
||||
}
|
||||
},
|
||||
AlertsService.showAlertNotification(imageURL, title, text,
|
||||
true, url, clickCallback);
|
||||
}),
|
||||
|
||||
// ------------------------------
|
||||
// public nsIBrowserGlue members
|
||||
|
@ -384,8 +384,8 @@ webNotifications.neverShow.accesskey=N
|
||||
webNotifications.receiveFromSite=Would you like to receive notifications from this site?
|
||||
# LOCALIZATION NOTE (webNotifications.upgradeTitle): When using native notifications on OS X, the title may be truncated around 32 characters.
|
||||
webNotifications.upgradeTitle=Upgraded notifications
|
||||
# LOCALIZATION NOTE (webNotifications.upgradeInfo): When using native notifications on OS X, the body may be truncated around 100 characters in some views.
|
||||
webNotifications.upgradeInfo=You will receive notifications from sites, even those not open in a tab. Click to learn more.
|
||||
# LOCALIZATION NOTE (webNotifications.upgradeBody): When using native notifications on OS X, the body may be truncated around 100 characters in some views.
|
||||
webNotifications.upgradeBody=You can now receive notifications from sites that are not currently loaded. Click to learn more.
|
||||
|
||||
# Pointer lock UI
|
||||
|
||||
|
@ -27,4 +27,3 @@ validator.accessFailedLaunchPath=Unable to access the app starting document '%S'
|
||||
# LOCALIZATION NOTE (validator.accessFailedLaunchPathBadHttpCode): %1$S is the URI of
|
||||
# the launch document, %2$S is the http error code.
|
||||
validator.accessFailedLaunchPathBadHttpCode=Unable to access the app starting document '%1$S', got HTTP code %2$S
|
||||
|
||||
|
@ -75,6 +75,9 @@
|
||||
<!ENTITY key_zoomin2 "=">
|
||||
<!ENTITY key_zoomout "-">
|
||||
<!ENTITY key_resetzoom "0">
|
||||
<!-- reload WebIDE and devtools from local checkout -->
|
||||
<!-- this binding is with accel+alt, whereas all others are just accel -->
|
||||
<!ENTITY key_reload_devtools "R">
|
||||
|
||||
<!ENTITY projectPanel_myProjects "My Projects">
|
||||
<!ENTITY projectPanel_runtimeApps "Runtime Apps">
|
||||
|
@ -59,15 +59,15 @@ problem_accessing_account=There Was A Problem Accessing Your Account
|
||||
## the appropriate action.
|
||||
retry_button=Retry
|
||||
|
||||
share_email_subject6=Join me for a video conversation
|
||||
## LOCALIZATION NOTE (share_email_body6): In this item, don't translate the
|
||||
share_email_subject7=Your invitation to browse the Web together
|
||||
## LOCALIZATION NOTE (share_email_body7): In this item, don't translate the
|
||||
## part between {{..}} and leave the \n\n part alone
|
||||
share_email_body6=Click the Firefox Hello link to connect to the conversation now: {{callUrl}}
|
||||
## LOCALIZATION NOTE (share_email_body_context2): In this item, don't translate
|
||||
share_email_body7=A friend is waiting for you on Firefox Hello. Click the link to connect and browse the Web together: {{callUrl}}
|
||||
## LOCALIZATION NOTE (share_email_body_context3): In this item, don't translate
|
||||
## the part between {{..}} and leave the \n\n part alone.
|
||||
share_email_body_context2=Join me for a video conversation. Click the Firefox Hello link to connect now: {{callUrl}}\n\nLet’s talk about this during our conversation: {{title}}
|
||||
## LOCALIZATION NOTE (share_email_footer): Common footer content for both email types
|
||||
share_email_footer=\n\n________\nJoin and create video conversations free with Firefox Hello. Connect easily over video with anyone, anywhere. No downloads or registration. Learn more at http://www.firefox.com/hello
|
||||
share_email_body_context3=A friend is waiting for you on Firefox Hello. Click the link to connect and browse {{title}} together: {{callUrl}}
|
||||
## LOCALIZATION NOTE (share_email_footer2): Common footer content for both email types
|
||||
share_email_footer2=\n\n____________\nFirefox Hello lets you browse the Web with your friends. Use it when you want to get things done: plan together, work together, laugh together. Learn more at http://www.firefox.com/hello
|
||||
## LOCALIZATION NOTE (share_tweeet): In this item, don't translate the part
|
||||
## between {{..}}. Please keep the text below 117 characters to make sure it fits
|
||||
## in a tweet.
|
||||
@ -216,6 +216,11 @@ no_conversations_start_message2=Start a new one!
|
||||
# conversation window when the user edits context. It is a header to the edit
|
||||
# section.
|
||||
context_inroom_header=Let's Talk About…
|
||||
# LOCALIZATION NOTE (context_inroom_label2): this string is followed by the
|
||||
# title and domain of the website you are having a conversation about, displayed on a
|
||||
# separate line. If this structure doesn't work for your locale, you might want
|
||||
# to consider this as a stand-alone title. See example screenshot:
|
||||
# https://bug1115342.bugzilla.mozilla.org/attachment.cgi?id=8563677
|
||||
context_edit_name_placeholder=Conversation Name
|
||||
context_edit_comments_placeholder=Comments
|
||||
context_cancel_label=Cancel
|
||||
|
@ -1,4 +0,0 @@
|
||||
{
|
||||
// Extend from the shared list of defined globals for mochitests.
|
||||
"extends": "../../../.eslintrc.mochitests"
|
||||
}
|
@ -1,7 +0,0 @@
|
||||
[DEFAULT]
|
||||
tags = devtools
|
||||
skip-if = buildapp == 'b2g'
|
||||
support-files =
|
||||
validator/*
|
||||
|
||||
[test_app_validator.html]
|
@ -322,9 +322,6 @@ devtools.jar:
|
||||
skin/themes/images/arrow-e.png (themes/images/arrow-e.png)
|
||||
skin/themes/images/arrow-e@2x.png (themes/images/arrow-e@2x.png)
|
||||
skin/themes/projecteditor/projecteditor.css (themes/projecteditor/projecteditor.css)
|
||||
skin/themes/app-manager/images/rocket.svg (themes/app-manager/images/rocket.svg)
|
||||
skin/themes/app-manager/images/noise.png (themes/app-manager/images/noise.png)
|
||||
skin/themes/app-manager/images/default-app-icon.png (themes/app-manager/images/default-app-icon.png)
|
||||
skin/themes/images/search-clear-failed.svg (themes/images/search-clear-failed.svg)
|
||||
skin/themes/images/search-clear-light.svg (themes/images/search-clear-light.svg)
|
||||
skin/themes/images/search-clear-dark.svg (themes/images/search-clear-dark.svg)
|
||||
|
@ -9,7 +9,6 @@ include('../templates.mozbuild')
|
||||
DIRS += [
|
||||
'aboutdebugging/components',
|
||||
'animationinspector',
|
||||
'app-manager',
|
||||
'canvasdebugger',
|
||||
'commandline',
|
||||
'debugger',
|
||||
|
@ -21,11 +21,6 @@ pref("devtools.errorconsole.enabled", false);
|
||||
pref("devtools.toolbar.enabled", true);
|
||||
pref("devtools.toolbar.visible", false);
|
||||
|
||||
// Enable the app manager
|
||||
pref("devtools.appmanager.enabled", true);
|
||||
pref("devtools.appmanager.lastTab", "help");
|
||||
pref("devtools.appmanager.manifestEditor.enabled", true);
|
||||
|
||||
// Enable DevTools WebIDE by default
|
||||
pref("devtools.webide.enabled", true);
|
||||
|
||||
|
@ -24,6 +24,11 @@ html, body, #app, #memory-tool {
|
||||
}
|
||||
|
||||
#memory-tool {
|
||||
/**
|
||||
* Flex: contains two children: .devtools-toolbar and #memory-tool-container,
|
||||
* which need to be laid out vertically. The toolbar has a fixed height and
|
||||
* the container needs to flex to fill out all remaining vertical space.
|
||||
*/
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
--sidebar-width: 185px;
|
||||
@ -35,67 +40,85 @@ html, body, #app, #memory-tool {
|
||||
--heap-tree-header-height: 17px;
|
||||
}
|
||||
|
||||
#memory-tool .devtools-toolbar {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.devtools-toolbar .toolbar-group {
|
||||
position: absolute;
|
||||
left: var(--sidebar-width);
|
||||
top: -2px;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.toolbar-group > label {
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
.toolbar-group .breakdown-by span {
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
#memory-tool-container {
|
||||
overflow: hidden;
|
||||
display: flex;
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* Toolbar
|
||||
*/
|
||||
|
||||
.devtools-toolbar .devtools-button.take-snapshot {
|
||||
-moz-appearance: none;
|
||||
margin-inline-start: 1px;
|
||||
margin-inline-end: 1px;
|
||||
.devtools-toolbar {
|
||||
/**
|
||||
* Flex: contains several children, which need to be laid out horizontally,
|
||||
* and aligned vertically in the middle of the container.
|
||||
*/
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.devtools-toolbar .devtools-button.take-snapshot::before {
|
||||
.devtools-toolbar > .toolbar-group {
|
||||
/**
|
||||
* We want this to be exactly at a --sidebar-width distance from the
|
||||
* toolbar's start boundary. A .devtools-toolbar has a 3px start padding
|
||||
* and the preceeding .take-snapshot button is exactly 32px.
|
||||
*/
|
||||
margin-inline-start: calc(var(--sidebar-width) - 3px - 32px);
|
||||
border-inline-start: 1px solid var(--theme-splitter-color);
|
||||
padding-inline-start: 5px;
|
||||
}
|
||||
|
||||
.devtools-toolbar > .toolbar-group > label {
|
||||
margin-inline-end: 5px;
|
||||
}
|
||||
|
||||
.devtools-toolbar > .toolbar-group > label.breakdown-by > span {
|
||||
margin-inline-end: 5px;
|
||||
}
|
||||
|
||||
.devtools-toolbar > .devtools-button.take-snapshot::before {
|
||||
background-image: url(images/command-screenshot.png);
|
||||
background-size: 64px 16px;
|
||||
background-position: 0 center;
|
||||
}
|
||||
@media (min-resolution: 1.1dppx) {
|
||||
.devtools-toolbar .devtools-button.take-snapshot::before {
|
||||
.devtools-toolbar > .devtools-button.take-snapshot::before {
|
||||
background-image: url(images/command-screenshot@2x.png);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* TODO bug 1213100
|
||||
* Once we figure out how to store invertable buttons (pseudo element like in this case?)
|
||||
* we should add a .invertable class to handle this generally, rather than the definitions
|
||||
* in toolbars.inc.css.
|
||||
* Once we figure out how to store invertable buttons (pseudo element like in
|
||||
* this case?) we should add a .invertable class to handle this generally,
|
||||
* rather than the definitions in toolbars.inc.css.
|
||||
*
|
||||
* @see bug 1173397 for another inverted related bug
|
||||
*/
|
||||
.theme-light .devtools-toolbarbutton.take-snapshot::before {
|
||||
.theme-light .devtools-toolbar > .devtools-toolbarbutton.take-snapshot::before {
|
||||
filter: url(images/filters.svg#invert);
|
||||
}
|
||||
|
||||
/**
|
||||
* Container (sidebar + main panel)
|
||||
*/
|
||||
|
||||
#memory-tool-container {
|
||||
/**
|
||||
* Flex: contains two children: .list (sidebar) and #heap-view (main panel),
|
||||
* which need to be laid out horizontally. The sidebar has a fixed width and
|
||||
* the main panel needs to flex to fill out all remaining horizontal space.
|
||||
*/
|
||||
display: flex;
|
||||
/**
|
||||
* Flexing to fill out remaining vertical space. The preceeding sibling is
|
||||
* the toolbar. @see #memory-tool.
|
||||
*/
|
||||
flex: 1;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sidebar
|
||||
*/
|
||||
|
||||
.list {
|
||||
min-width: var(--sidebar-width);
|
||||
width: var(--sidebar-width);
|
||||
overflow-y: auto;
|
||||
margin: 0;
|
||||
@ -104,7 +127,10 @@ html, body, #app, #memory-tool {
|
||||
border-inline-end: 1px solid var(--theme-splitter-color);
|
||||
}
|
||||
|
||||
.list > li {
|
||||
.snapshot-list-item {
|
||||
/**
|
||||
* Flex: contains several children, which need to be laid out vertically.
|
||||
*/
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
color: var(--theme-body-color);
|
||||
@ -113,24 +139,23 @@ html, body, #app, #memory-tool {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.list > li.selected {
|
||||
.snapshot-list-item.selected {
|
||||
background-color: var(--theme-selection-background);
|
||||
color: var(--theme-selection-color);
|
||||
}
|
||||
|
||||
.snapshot-list-item .snapshot-title {
|
||||
display: block;
|
||||
.snapshot-list-item > .snapshot-title {
|
||||
margin-bottom: 14px;
|
||||
}
|
||||
|
||||
.snapshot-list-item .snapshot-state,
|
||||
.snapshot-list-item .snapshot-totals {
|
||||
.snapshot-list-item > .snapshot-state,
|
||||
.snapshot-list-item > .snapshot-totals {
|
||||
font-size: 90%;
|
||||
color: var(--theme-body-color-alt);
|
||||
}
|
||||
|
||||
.snapshot-list-item.selected .snapshot-state,
|
||||
.snapshot-list-item.selected .snapshot-totals {
|
||||
.snapshot-list-item.selected > .snapshot-state,
|
||||
.snapshot-list-item.selected > .snapshot-totals {
|
||||
/* Text inside a selected item should not be custom colored. */
|
||||
color: inherit !important;
|
||||
}
|
||||
@ -140,64 +165,88 @@ html, body, #app, #memory-tool {
|
||||
*/
|
||||
|
||||
#heap-view {
|
||||
/**
|
||||
* Flex: contains a .heap-view-panel which needs to fill out all the
|
||||
* available space, horizontally and vertically.
|
||||
*/;
|
||||
display: flex;
|
||||
/**
|
||||
* Flexing to fill out remaining horizontal space. The preceeding sibling
|
||||
* is the sidebar. @see #memory-tool-container.
|
||||
*/
|
||||
flex: 1;
|
||||
justify-content: center;
|
||||
background-color: var(--theme-toolbar-background);
|
||||
min-width: 400px;
|
||||
}
|
||||
|
||||
#heap-view .snapshot-status,
|
||||
#heap-view .take-snapshot {
|
||||
#heap-view > .heap-view-panel {
|
||||
/**
|
||||
* Flex: can contain several children, including a tree with a header and
|
||||
* multiple rows, all of which need to be laid out vertically. When the
|
||||
* tree is visible, the header has a fixed height and tree body needs to flex
|
||||
* to fill out all remaining vertical space.
|
||||
*/
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
/**
|
||||
* Flexing to fill out remaining horizontal space. @see #heap-view.
|
||||
*/
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
#heap-view > .heap-view-panel > .snapshot-status,
|
||||
#heap-view > .heap-view-panel > .take-snapshot {
|
||||
margin: auto;
|
||||
margin-top: 65px;
|
||||
font-size: 120%;
|
||||
}
|
||||
|
||||
#heap-view .snapshot-status {
|
||||
display: block;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#heap-view .take-snapshot {
|
||||
#heap-view > .heap-view-panel > .take-snapshot {
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
#heap-view .heap-view-panel {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
#heap-view .heap-view-panel[data-state="snapshot-state-error"] pre {
|
||||
/* TODO */
|
||||
#heap-view > .heap-view-panel[data-state="snapshot-state-error"] pre {
|
||||
background-color: var(--theme-body-background);
|
||||
overflow-y: auto;
|
||||
margin: 20px;
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
/**
|
||||
* Heap Tree View
|
||||
* Heap tree view header
|
||||
*/
|
||||
|
||||
#heap-view .theme-twisty {
|
||||
float: left;
|
||||
}
|
||||
|
||||
.header {
|
||||
height: var(--heap-tree-header-height);
|
||||
/**
|
||||
* Flex: contains several span columns, all of which need to be laid out
|
||||
* horizontally. All columns except the last one have percentage widths, and
|
||||
* the last one needs to flex to fill out all remaining horizontal space.
|
||||
*/
|
||||
display: flex;
|
||||
align-items: center;
|
||||
color: var(--theme-body-color);
|
||||
background-color: var(--theme-tab-toolbar-background);
|
||||
border-bottom: 1px solid var(--cell-border-color);
|
||||
}
|
||||
|
||||
.tree span {
|
||||
line-height: var(--heap-tree-row-height);
|
||||
.header > span {
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
line-height: var(--heap-tree-header-height);
|
||||
justify-content: center;
|
||||
font-size: 90%;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.header > .heap-tree-item-name {
|
||||
justify-content: flex-start;
|
||||
}
|
||||
|
||||
/**
|
||||
* Heap tree view body
|
||||
*/
|
||||
|
||||
.tree {
|
||||
/**
|
||||
* Flexing to fill out remaining vertical space. @see .heap-view-panel
|
||||
*/
|
||||
flex: 1;
|
||||
overflow-y: auto;
|
||||
background-color: var(--theme-body-background);
|
||||
@ -205,28 +254,19 @@ html, body, #app, #memory-tool {
|
||||
|
||||
.tree-node {
|
||||
height: var(--heap-tree-row-height);
|
||||
clear: left;
|
||||
}
|
||||
|
||||
.heap-tree-percent {
|
||||
width: 30%;
|
||||
}
|
||||
/**
|
||||
* Heap tree view columns
|
||||
*/
|
||||
|
||||
.heap-tree-number {
|
||||
width: 70%;
|
||||
color: var(--theme-content-color3);
|
||||
padding-right: 5px;
|
||||
}
|
||||
|
||||
.focused .heap-tree-number {
|
||||
color: var(--theme-selection-color);
|
||||
}
|
||||
|
||||
.heap-tree-item, .header {
|
||||
list-style-type: none;
|
||||
height: var(--heap-tree-row-height);
|
||||
.heap-tree-item {
|
||||
/**
|
||||
* Flex: contains several span columns, all of which need to be laid out
|
||||
* horizontally. All columns except the last one have percentage widths, and
|
||||
* the last one needs to flex to fill out all remaining horizontal space.
|
||||
*/
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
}
|
||||
|
||||
.tree-node:nth-child(2n) {
|
||||
@ -237,44 +277,22 @@ html, body, #app, #memory-tool {
|
||||
background-color: var(--row-hover-background-color);
|
||||
}
|
||||
|
||||
.tree-node:focus, .heap-tree-item.focused {
|
||||
.heap-tree-item.focused {
|
||||
background-color: var(--theme-selection-background);
|
||||
color: var(--theme-selection-color);
|
||||
}
|
||||
|
||||
.header {
|
||||
background-color: var(--theme-tab-toolbar-background);
|
||||
border-color: var(--cell-border-color);
|
||||
border-style: solid;
|
||||
border-width: 0px 0px 1px 0px;
|
||||
}
|
||||
|
||||
.header span {
|
||||
text-align: center;
|
||||
line-height: var(--heap-tree-header-height);
|
||||
font-size: 90%;
|
||||
display: inline;
|
||||
}
|
||||
|
||||
.header span, .heap-tree-number, .heap-tree-percent, .heap-tree-item-name {
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.header .heap-tree-item-name {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.heap-tree-item-bytes,
|
||||
.heap-tree-item-count,
|
||||
.heap-tree-item-total-bytes,
|
||||
.heap-tree-item-total-count {
|
||||
/**
|
||||
* Flex: contains several subcolumns, which need to be laid out horizontally.
|
||||
* These subcolumns may have specific widths or need to flex.
|
||||
*/
|
||||
display: flex;
|
||||
text-align: end;
|
||||
border-inline-end: var(--cell-border-color) 1px solid;
|
||||
padding-inline-end: 5px;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
}
|
||||
|
||||
.heap-tree-item-count,
|
||||
@ -288,15 +306,60 @@ html, body, #app, #memory-tool {
|
||||
}
|
||||
|
||||
.heap-tree-item-name {
|
||||
width: 50%;
|
||||
padding-left: 5px;
|
||||
/**
|
||||
* Flex: contains an .arrow and some text, which need to be laid out
|
||||
* horizontally, vertically aligned in the middle of the container.
|
||||
*/
|
||||
display: flex;
|
||||
align-items: center;
|
||||
/**
|
||||
* Flexing to fill out remaining vertical space.
|
||||
* @see .header and .heap-tree-item */
|
||||
flex: 1;
|
||||
padding-inline-start: 5px;
|
||||
}
|
||||
|
||||
/**
|
||||
* Heap tree view subcolumns
|
||||
*/
|
||||
|
||||
.heap-tree-number,
|
||||
.heap-tree-percent,
|
||||
.heap-tree-item-name {
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.heap-tree-number,
|
||||
.heap-tree-percent {
|
||||
padding-inline-end: 5px;
|
||||
}
|
||||
|
||||
.heap-tree-number {
|
||||
flex: 1;
|
||||
color: var(--theme-content-color3);
|
||||
}
|
||||
|
||||
.heap-tree-percent {
|
||||
width: 2.5em;
|
||||
}
|
||||
|
||||
.heap-tree-item.focused .heap-tree-number,
|
||||
.heap-tree-item.focused .heap-tree-percent {
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
/**
|
||||
* Heap tree errors.
|
||||
*/
|
||||
|
||||
.error::before {
|
||||
content: "";
|
||||
display: inline-block;
|
||||
width: 12px;
|
||||
height: 12px;
|
||||
max-height: 12px;
|
||||
background-image: url(chrome://devtools/skin/themes/images/webconsole.svg);
|
||||
background-size: 72px 60px;
|
||||
background-position: -24px -24px;
|
||||
@ -304,7 +367,6 @@ html, body, #app, #memory-tool {
|
||||
margin: 0px;
|
||||
margin-top: 2px;
|
||||
margin-inline-end: 5px;
|
||||
max-height: 12px;
|
||||
}
|
||||
|
||||
.theme-light .error::before {
|
||||
@ -332,18 +394,20 @@ html, body, #app, #memory-tool {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.frame-link-column, .frame-link-line, .frame-link-colon {
|
||||
.frame-link-column,
|
||||
.frame-link-line,
|
||||
.frame-link-colon {
|
||||
color: var(--theme-highlight-orange);
|
||||
}
|
||||
|
||||
.frame-link-host {
|
||||
margin-inline-start: 5px;
|
||||
font-size: 90%;
|
||||
margin-left: 5px;
|
||||
color: var(--theme-content-color2);
|
||||
}
|
||||
|
||||
.frame-link-function-display-name {
|
||||
margin-right: 5px;
|
||||
margin-inline-end: 5px;
|
||||
}
|
||||
|
||||
.no-allocation-stacks {
|
||||
@ -353,7 +417,3 @@ html, body, #app, #memory-tool {
|
||||
text-align: center;
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
label select {
|
||||
margin: 5px;
|
||||
}
|
||||
|
@ -6,8 +6,6 @@ var Cu = Components.utils;
|
||||
Cu.import("resource://devtools/client/framework/gDevTools.jsm");
|
||||
const {Services} = Cu.import("resource://gre/modules/Services.jsm");
|
||||
const {require} = Cu.import("resource://devtools/shared/Loader.jsm", {});
|
||||
const {AppProjects} = require("devtools/client/app-manager/app-projects");
|
||||
const {AppValidator} = require("devtools/client/app-manager/app-validator");
|
||||
const {AppManager} = require("devtools/client/webide/modules/app-manager");
|
||||
const {ProjectBuilding} = require("devtools/client/webide/modules/build");
|
||||
|
||||
|
@ -13,8 +13,8 @@ XPCOMUtils.defineLazyModuleGetter(this, "ZipUtils", "resource://gre/modules/ZipU
|
||||
XPCOMUtils.defineLazyModuleGetter(this, "Downloads", "resource://gre/modules/Downloads.jsm");
|
||||
|
||||
const {require} = Cu.import("resource://devtools/shared/Loader.jsm", {});
|
||||
const {FileUtils} = Cu.import("resource://gre/modules/FileUtils.jsm");
|
||||
const {AppProjects} = require("devtools/client/app-manager/app-projects");
|
||||
const {FileUtils} = Cu.import("resource://gre/modules/FileUtils.jsm", {});
|
||||
const {AppProjects} = require("devtools/client/webide/modules/app-projects");
|
||||
const {AppManager} = require("devtools/client/webide/modules/app-manager");
|
||||
const {getJSON} = require("devtools/client/shared/getjson");
|
||||
|
||||
|
@ -11,8 +11,8 @@ Cu.import("resource://gre/modules/Task.jsm");
|
||||
|
||||
const {require} = Cu.import("resource://devtools/shared/Loader.jsm", {});
|
||||
const {Toolbox} = require("devtools/client/framework/toolbox");
|
||||
const {Services} = Cu.import("resource://gre/modules/Services.jsm");
|
||||
const {AppProjects} = require("devtools/client/app-manager/app-projects");
|
||||
const Services = require("Services");
|
||||
const {AppProjects} = require("devtools/client/webide/modules/app-projects");
|
||||
const {Connection} = require("devtools/shared/client/connection-manager");
|
||||
const {AppManager} = require("devtools/client/webide/modules/app-manager");
|
||||
const EventEmitter = require("devtools/shared/event-emitter");
|
||||
@ -1155,4 +1155,11 @@ var Cmds = {
|
||||
UI.contentViewer.fullZoom = 1;
|
||||
Services.prefs.setCharPref("devtools.webide.zoom", 1);
|
||||
},
|
||||
|
||||
reloadDevtools: function(event) {
|
||||
if (Services.prefs.prefHasUserValue("devtools.loader.srcdir")) {
|
||||
let {devtools} = Cu.import("resource://gre/modules/devtools/Loader.jsm", {});
|
||||
devtools.reload();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
@ -58,6 +58,7 @@
|
||||
<command id="cmd_zoomin" label="&viewMenu_zoomin_label;" oncommand="Cmds.zoomIn()"/>
|
||||
<command id="cmd_zoomout" label="&viewMenu_zoomout_label;" oncommand="Cmds.zoomOut()"/>
|
||||
<command id="cmd_resetzoom" label="&viewMenu_resetzoom_label;" oncommand="Cmds.resetZoom()"/>
|
||||
<command id="cmd_reload_devtools" oncommand="Cmds.reloadDevtools()"/>
|
||||
</commandset>
|
||||
</commandset>
|
||||
|
||||
@ -115,6 +116,7 @@
|
||||
<key key="&key_zoomin2;" id="key_zoomin2" command="cmd_zoomin" modifiers="accel"/>
|
||||
<key key="&key_zoomout;" id="key_zoomout" command="cmd_zoomout" modifiers="accel"/>
|
||||
<key key="&key_resetzoom;" id="key_resetzoom" command="cmd_resetzoom" modifiers="accel"/>
|
||||
<key key="&key_reload_devtools;" id="key_reload_devtools" command="cmd_reload_devtools" modifiers="accel alt"/>
|
||||
</keyset>
|
||||
|
||||
<tooltip id="aHTMLTooltip" page="true"/>
|
||||
|
@ -6,13 +6,13 @@ const {Cu} = require("chrome");
|
||||
|
||||
const promise = require("promise");
|
||||
const {TargetFactory} = require("devtools/client/framework/target");
|
||||
const {Services} = Cu.import("resource://gre/modules/Services.jsm");
|
||||
const {FileUtils} = Cu.import("resource://gre/modules/FileUtils.jsm");
|
||||
const Services = require("Services");
|
||||
const {FileUtils} = Cu.import("resource://gre/modules/FileUtils.jsm", {});
|
||||
const EventEmitter = require("devtools/shared/event-emitter");
|
||||
const {TextEncoder, OS} = Cu.import("resource://gre/modules/osfile.jsm", {});
|
||||
const {AppProjects} = require("devtools/client/app-manager/app-projects");
|
||||
const {AppProjects} = require("devtools/client/webide/modules/app-projects");
|
||||
const TabStore = require("devtools/client/webide/modules/tab-store");
|
||||
const {AppValidator} = require("devtools/client/app-manager/app-validator");
|
||||
const {AppValidator} = require("devtools/client/webide/modules/app-validator");
|
||||
const {ConnectionManager, Connection} = require("devtools/shared/client/connection-manager");
|
||||
const {AppActorFront} = require("devtools/shared/apps/app-actor-front");
|
||||
const {getDeviceFront} = require("devtools/server/actors/device");
|
||||
@ -29,8 +29,7 @@ const Strings = Services.strings.createBundle("chrome://browser/locale/devtools/
|
||||
|
||||
var AppManager = exports.AppManager = {
|
||||
|
||||
// FIXME: will break when devtools/app-manager will be removed:
|
||||
DEFAULT_PROJECT_ICON: "chrome://devtools/skin/themes/app-manager/images/default-app-icon.png",
|
||||
DEFAULT_PROJECT_ICON: "chrome://devtools/skin/themes/webide/default-app-icon.png",
|
||||
DEFAULT_PROJECT_NAME: "--",
|
||||
|
||||
_initialized: false,
|
||||
|
@ -1,11 +1,15 @@
|
||||
/* 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/. */
|
||||
|
||||
const {Cc,Ci,Cu,Cr} = require("chrome");
|
||||
const ObservableObject = require("devtools/client/shared/observable-object");
|
||||
const promise = require("devtools/shared/deprecated-sync-thenables");
|
||||
|
||||
const {EventEmitter} = Cu.import("resource://devtools/shared/event-emitter.js");
|
||||
const {EventEmitter} = Cu.import("resource://devtools/shared/event-emitter.js", {});
|
||||
const {generateUUID} = Cc['@mozilla.org/uuid-generator;1'].getService(Ci.nsIUUIDGenerator);
|
||||
const {FileUtils} = Cu.import("resource://gre/modules/FileUtils.jsm");
|
||||
const { indexedDB } = require("sdk/indexed-db");
|
||||
const {FileUtils} = Cu.import("resource://gre/modules/FileUtils.jsm", {});
|
||||
const {indexedDB} = require("sdk/indexed-db");
|
||||
|
||||
/**
|
||||
* IndexedDB wrapper that just save project objects
|
@ -6,8 +6,8 @@
|
||||
var {Ci,Cu,CC} = require("chrome");
|
||||
const promise = require("devtools/shared/deprecated-sync-thenables");
|
||||
|
||||
const {FileUtils} = Cu.import("resource://gre/modules/FileUtils.jsm");
|
||||
const {Services} = Cu.import("resource://gre/modules/Services.jsm");
|
||||
const {FileUtils} = Cu.import("resource://gre/modules/FileUtils.jsm", {});
|
||||
const Services = require("Services");
|
||||
const {Task} = Cu.import("resource://gre/modules/Task.jsm", {});
|
||||
var XMLHttpRequest = CC("@mozilla.org/xmlextras/xmlhttprequest;1");
|
||||
var strings = Services.strings.createBundle("chrome://browser/locale/devtools/app-manager.properties");
|
@ -7,6 +7,8 @@
|
||||
DevToolsModules(
|
||||
'addons.js',
|
||||
'app-manager.js',
|
||||
'app-projects.js',
|
||||
'app-validator.js',
|
||||
'build.js',
|
||||
'config-view.js',
|
||||
'project-list.js',
|
||||
|
@ -4,8 +4,8 @@
|
||||
|
||||
const {Cu} = require("chrome");
|
||||
|
||||
const {Services} = Cu.import("resource://gre/modules/Services.jsm");
|
||||
const {AppProjects} = require("devtools/client/app-manager/app-projects");
|
||||
const Services = require("Services");
|
||||
const {AppProjects} = require("devtools/client/webide/modules/app-projects");
|
||||
const {AppManager} = require("devtools/client/webide/modules/app-manager");
|
||||
const promise = require("promise");
|
||||
const EventEmitter = require("devtools/shared/event-emitter");
|
||||
|
@ -5,7 +5,6 @@
|
||||
const {Cu} = require("chrome");
|
||||
|
||||
const {Services} = Cu.import("resource://gre/modules/Services.jsm");
|
||||
const {AppProjects} = require("devtools/client/app-manager/app-projects");
|
||||
const {AppManager} = require("devtools/client/webide/modules/app-manager");
|
||||
const EventEmitter = require("devtools/shared/event-emitter");
|
||||
const {RuntimeScanners, WiFiScanner} = require("devtools/client/webide/modules/runtimes");
|
||||
|
@ -39,6 +39,7 @@ support-files =
|
||||
hosted_app.manifest
|
||||
templates.json
|
||||
../../shared/test/browser_devices.json
|
||||
validator/*
|
||||
|
||||
[test_basic.html]
|
||||
[test_newapp.html]
|
||||
@ -62,3 +63,4 @@ skip-if = true # Bug 1201392 - Update add-ons after migration
|
||||
[test_build.html]
|
||||
[test_simulators.html]
|
||||
[test_toolbox.html]
|
||||
[test_app_validator.html]
|
||||
|
@ -12,7 +12,7 @@ Cu.import("resource://gre/modules/Task.jsm");
|
||||
const {require} = Cu.import("resource://devtools/shared/Loader.jsm", {});
|
||||
const {gDevTools} = Cu.import("resource://devtools/client/framework/gDevTools.jsm", {});
|
||||
const promise = require("promise");
|
||||
const {AppProjects} = require("devtools/client/app-manager/app-projects");
|
||||
const {AppProjects} = require("devtools/client/webide/modules/app-projects");
|
||||
const DevToolsUtils = require("devtools/shared/DevToolsUtils");
|
||||
DevToolsUtils.testing = true;
|
||||
|
||||
|
@ -20,7 +20,7 @@
|
||||
Cu.import("resource://testing-common/httpd.js");
|
||||
const {require} = Cu.import("resource://devtools/shared/Loader.jsm", {});
|
||||
|
||||
const {AppValidator} = require("devtools/client/app-manager/app-validator");
|
||||
const {AppValidator} = require("devtools/client/webide/modules/app-validator");
|
||||
const {Services} = Cu.import("resource://gre/modules/Services.jsm");
|
||||
const nsFile = Components.Constructor("@mozilla.org/file/local;1",
|
||||
"nsILocalFile", "initWithPath");
|
@ -36,9 +36,10 @@ h1 {
|
||||
}
|
||||
|
||||
#controls {
|
||||
position: absolute;
|
||||
top: 10px;
|
||||
right: 10px;
|
||||
float: right;
|
||||
position: relative;
|
||||
top: -10px;
|
||||
right: -10px;
|
||||
}
|
||||
|
||||
#controls > a {
|
||||
|
Before Width: | Height: | Size: 5.1 KiB After Width: | Height: | Size: 5.1 KiB |
@ -19,3 +19,6 @@ webide.jar:
|
||||
skin/logs.css (logs.css)
|
||||
skin/panel-listing.css (panel-listing.css)
|
||||
skin/simulator.css (simulator.css)
|
||||
skin/rocket.svg (rocket.svg)
|
||||
skin/noise.png (noise.png)
|
||||
skin/default-app-icon.png (default-app-icon.png)
|
||||
|
Before Width: | Height: | Size: 6.1 KiB After Width: | Height: | Size: 6.1 KiB |
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
@ -134,7 +134,7 @@ window.busy-determined #action-busy-undetermined {
|
||||
|
||||
#deck {
|
||||
background-color: rgb(225, 225, 225);
|
||||
background-image: url('chrome://devtools/skin/themes/app-manager/images/rocket.svg'), url('chrome://devtools/skin/themes/app-manager/images/noise.png');
|
||||
background-image: url('rocket.svg'), url('noise.png');
|
||||
background-repeat: no-repeat, repeat;
|
||||
background-size: 35%, auto;
|
||||
background-position: center center, top left;
|
||||
|
@ -958,6 +958,13 @@ var DebuggerServer = {
|
||||
// provides hook to actor modules that need to exchange messages
|
||||
// between e10s parent and child processes
|
||||
let onSetupInParent = function (msg) {
|
||||
// We may have multiple connectToChild instance running for the same tab
|
||||
// and need to filter the messages. Also the DebuggerServerConnection's
|
||||
// prefix has an additional '/' and the end, so use `includes`.
|
||||
if (!msg.json.prefix.includes(prefix)) {
|
||||
return;
|
||||
}
|
||||
|
||||
let { module, setupParent } = msg.json;
|
||||
let m, fn;
|
||||
|
||||
@ -1741,7 +1748,7 @@ DebuggerServerConnection.prototype = {
|
||||
* @return boolean
|
||||
* true if the setup helper returned successfully
|
||||
*/
|
||||
setupInParent: function({ conn, module, setupParent }) {
|
||||
setupInParent: function({ module, setupParent }) {
|
||||
if (!this.parentMessageManager) {
|
||||
return false;
|
||||
}
|
||||
@ -1749,6 +1756,7 @@ DebuggerServerConnection.prototype = {
|
||||
let { sendSyncMessage } = this.parentMessageManager;
|
||||
|
||||
return sendSyncMessage("debug:setup-in-parent", {
|
||||
prefix: this.prefix,
|
||||
module: module,
|
||||
setupParent: setupParent
|
||||
});
|
||||
|
@ -1,7 +1,7 @@
|
||||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<!--
|
||||
Bug 943251 - Allow accessing about:config from app-manager
|
||||
Bug 943251 - Allow accessing about:config from WebIDE
|
||||
-->
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
|
@ -87,9 +87,7 @@ BuiltinProvider.prototype = {
|
||||
// ⚠ DISCUSSION ON DEV-DEVELOPER-TOOLS REQUIRED BEFORE MODIFYING ⚠
|
||||
"devtools": "resource://devtools",
|
||||
// ⚠ DISCUSSION ON DEV-DEVELOPER-TOOLS REQUIRED BEFORE MODIFYING ⚠
|
||||
"devtools/client": "resource://devtools/client",
|
||||
// ⚠ DISCUSSION ON DEV-DEVELOPER-TOOLS REQUIRED BEFORE MODIFYING ⚠
|
||||
"gcli": "resource://devtools/gcli",
|
||||
"gcli": "resource://devtools/shared/gcli/source/lib/gcli",
|
||||
// ⚠ DISCUSSION ON DEV-DEVELOPER-TOOLS REQUIRED BEFORE MODIFYING ⚠
|
||||
"promise": "resource://gre/modules/Promise-backend.js",
|
||||
// ⚠ DISCUSSION ON DEV-DEVELOPER-TOOLS REQUIRED BEFORE MODIFYING ⚠
|
||||
@ -428,12 +426,22 @@ DevToolsLoader.prototype = {
|
||||
this._chooseProvider();
|
||||
this.main("devtools/client/main");
|
||||
|
||||
// Reopen the toolbox automatically if requested
|
||||
if (showToolbox) {
|
||||
let { gBrowser } = Services.wm.getMostRecentWindow("navigator:browser");
|
||||
let target = this.TargetFactory.forTab(gBrowser.selectedTab);
|
||||
const { gDevTools } = this.require("resource://devtools/client/framework/gDevTools.jsm");
|
||||
gDevTools.showToolbox(target);
|
||||
let window = Services.wm.getMostRecentWindow(null);
|
||||
let location = window.location.href;
|
||||
if (location.includes("/browser.xul") && showToolbox) {
|
||||
// Reopen the toolbox automatically if we are reloading from toolbox shortcut
|
||||
// and are on a browser window.
|
||||
// Wait for a second before opening the toolbox to avoid races
|
||||
// between the old and the new one.
|
||||
let {setTimeout} = Cu.import("resource://gre/modules/Timer.jsm", {});
|
||||
setTimeout(() => {
|
||||
let { gBrowser } = window;
|
||||
let target = this.TargetFactory.forTab(gBrowser.selectedTab);
|
||||
const { gDevTools } = this.require("resource://devtools/client/framework/gDevTools.jsm");
|
||||
gDevTools.showToolbox(target);
|
||||
}, 1000);
|
||||
} else if (location.includes("/webide.xul")) {
|
||||
window.location.reload();
|
||||
}
|
||||
},
|
||||
|
||||
|
@ -1,24 +0,0 @@
|
||||
/*
|
||||
* Copyright 2012, Mozilla Foundation and contributors
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
"use strict";
|
||||
|
||||
this.EXPORTED_SYMBOLS = [ "gcli", "Requisition" ];
|
||||
|
||||
var {require} = Components.utils.import("resource://devtools/shared/Loader.jsm", {});
|
||||
|
||||
this.gcli = require('gcli/index');
|
||||
this.Requisition = require('gcli/cli').Requisition;
|
@ -6,105 +6,18 @@
|
||||
|
||||
DIRS += [
|
||||
'commands',
|
||||
'source/lib/gcli',
|
||||
'source/lib/gcli/connectors',
|
||||
'source/lib/gcli/converters',
|
||||
'source/lib/gcli/commands',
|
||||
'source/lib/gcli/fields',
|
||||
'source/lib/gcli/languages',
|
||||
'source/lib/gcli/mozui',
|
||||
'source/lib/gcli/types',
|
||||
'source/lib/gcli/ui',
|
||||
'source/lib/gcli/util',
|
||||
]
|
||||
|
||||
FINAL_TARGET_FILES.chrome.devtools.modules.devtools.gcli.commands += [
|
||||
'source/lib/gcli/commands/clear.js',
|
||||
'source/lib/gcli/commands/commands.js',
|
||||
'source/lib/gcli/commands/connect.js',
|
||||
'source/lib/gcli/commands/context.js',
|
||||
'source/lib/gcli/commands/exec.js',
|
||||
'source/lib/gcli/commands/global.js',
|
||||
'source/lib/gcli/commands/help.js',
|
||||
'source/lib/gcli/commands/intro.js',
|
||||
'source/lib/gcli/commands/lang.js',
|
||||
'source/lib/gcli/commands/mocks.js',
|
||||
'source/lib/gcli/commands/pref.js',
|
||||
'source/lib/gcli/commands/preflist.js',
|
||||
'source/lib/gcli/commands/test.js',
|
||||
]
|
||||
|
||||
FINAL_TARGET_FILES.chrome.devtools.modules.devtools.gcli.connectors += [
|
||||
'source/lib/gcli/connectors/connectors.js',
|
||||
]
|
||||
|
||||
FINAL_TARGET_FILES.chrome.devtools.modules.devtools.gcli.converters += [
|
||||
'source/lib/gcli/converters/basic.js',
|
||||
'source/lib/gcli/converters/converters.js',
|
||||
'source/lib/gcli/converters/html.js',
|
||||
'source/lib/gcli/converters/terminal.js',
|
||||
]
|
||||
|
||||
FINAL_TARGET_FILES.chrome.devtools.modules.devtools.gcli.fields += [
|
||||
'source/lib/gcli/fields/delegate.js',
|
||||
'source/lib/gcli/fields/fields.js',
|
||||
'source/lib/gcli/fields/selection.js',
|
||||
]
|
||||
|
||||
FINAL_TARGET_FILES.chrome.devtools.modules.devtools.gcli.languages += [
|
||||
'source/lib/gcli/languages/command.html',
|
||||
'source/lib/gcli/languages/command.js',
|
||||
'source/lib/gcli/languages/javascript.js',
|
||||
'source/lib/gcli/languages/languages.js',
|
||||
]
|
||||
|
||||
FINAL_TARGET_FILES.chrome.devtools.modules.devtools.gcli.mozui += [
|
||||
'source/lib/gcli/mozui/completer.js',
|
||||
'source/lib/gcli/mozui/inputter.js',
|
||||
'source/lib/gcli/mozui/tooltip.js',
|
||||
]
|
||||
|
||||
FINAL_TARGET_FILES.chrome.devtools.modules.devtools.gcli.types += [
|
||||
'source/lib/gcli/types/array.js',
|
||||
'source/lib/gcli/types/boolean.js',
|
||||
'source/lib/gcli/types/command.js',
|
||||
'source/lib/gcli/types/date.js',
|
||||
'source/lib/gcli/types/delegate.js',
|
||||
'source/lib/gcli/types/file.js',
|
||||
'source/lib/gcli/types/fileparser.js',
|
||||
'source/lib/gcli/types/javascript.js',
|
||||
'source/lib/gcli/types/node.js',
|
||||
'source/lib/gcli/types/number.js',
|
||||
'source/lib/gcli/types/resource.js',
|
||||
'source/lib/gcli/types/selection.js',
|
||||
'source/lib/gcli/types/setting.js',
|
||||
'source/lib/gcli/types/string.js',
|
||||
'source/lib/gcli/types/types.js',
|
||||
'source/lib/gcli/types/union.js',
|
||||
'source/lib/gcli/types/url.js',
|
||||
]
|
||||
|
||||
FINAL_TARGET_FILES.chrome.devtools.modules.devtools.gcli.ui += [
|
||||
'source/lib/gcli/ui/focus.js',
|
||||
'source/lib/gcli/ui/history.js',
|
||||
'source/lib/gcli/ui/intro.js',
|
||||
'source/lib/gcli/ui/menu.css',
|
||||
'source/lib/gcli/ui/menu.html',
|
||||
'source/lib/gcli/ui/menu.js',
|
||||
'source/lib/gcli/ui/view.js',
|
||||
]
|
||||
|
||||
FINAL_TARGET_FILES.chrome.devtools.modules.devtools.gcli.util += [
|
||||
'source/lib/gcli/util/domtemplate.js',
|
||||
'source/lib/gcli/util/fileparser.js',
|
||||
'source/lib/gcli/util/filesystem.js',
|
||||
'source/lib/gcli/util/host.js',
|
||||
'source/lib/gcli/util/l10n.js',
|
||||
'source/lib/gcli/util/legacy.js',
|
||||
'source/lib/gcli/util/prism.js',
|
||||
'source/lib/gcli/util/spell.js',
|
||||
'source/lib/gcli/util/util.js',
|
||||
]
|
||||
|
||||
FINAL_TARGET_FILES.chrome.devtools.modules.devtools.gcli += [
|
||||
'source/lib/gcli/cli.js',
|
||||
'source/lib/gcli/index.js',
|
||||
'source/lib/gcli/l10n.js',
|
||||
'source/lib/gcli/settings.js',
|
||||
'source/lib/gcli/system.js',
|
||||
]
|
||||
|
||||
FINAL_TARGET_FILES.chrome.devtools.modules.devtools.shared.gcli += [
|
||||
'gcli.jsm',
|
||||
'Templater.jsm',
|
||||
]
|
||||
DevToolsModules(
|
||||
'Templater.jsm'
|
||||
)
|
||||
|
21
devtools/shared/gcli/source/lib/gcli/commands/moz.build
Normal file
21
devtools/shared/gcli/source/lib/gcli/commands/moz.build
Normal file
@ -0,0 +1,21 @@
|
||||
# -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
|
||||
# vim: set filetype=python:
|
||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
DevToolsModules(
|
||||
'clear.js',
|
||||
'commands.js',
|
||||
'connect.js',
|
||||
'context.js',
|
||||
'exec.js',
|
||||
'global.js',
|
||||
'help.js',
|
||||
'intro.js',
|
||||
'lang.js',
|
||||
'mocks.js',
|
||||
'pref.js',
|
||||
'preflist.js',
|
||||
'test.js',
|
||||
)
|
@ -4,9 +4,6 @@
|
||||
# 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/.
|
||||
|
||||
MOCHITEST_CHROME_MANIFESTS += ['test/chrome.ini']
|
||||
|
||||
DevToolsModules(
|
||||
'app-projects.js',
|
||||
'app-validator.js',
|
||||
'connectors.js',
|
||||
)
|
12
devtools/shared/gcli/source/lib/gcli/converters/moz.build
Normal file
12
devtools/shared/gcli/source/lib/gcli/converters/moz.build
Normal file
@ -0,0 +1,12 @@
|
||||
# -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
|
||||
# vim: set filetype=python:
|
||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
DevToolsModules(
|
||||
'basic.js',
|
||||
'converters.js',
|
||||
'html.js',
|
||||
'terminal.js',
|
||||
)
|
11
devtools/shared/gcli/source/lib/gcli/fields/moz.build
Normal file
11
devtools/shared/gcli/source/lib/gcli/fields/moz.build
Normal file
@ -0,0 +1,11 @@
|
||||
# -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
|
||||
# vim: set filetype=python:
|
||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
DevToolsModules(
|
||||
'delegate.js',
|
||||
'fields.js',
|
||||
'selection.js',
|
||||
)
|
12
devtools/shared/gcli/source/lib/gcli/languages/moz.build
Normal file
12
devtools/shared/gcli/source/lib/gcli/languages/moz.build
Normal file
@ -0,0 +1,12 @@
|
||||
# -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
|
||||
# vim: set filetype=python:
|
||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
DevToolsModules(
|
||||
'command.html',
|
||||
'command.js',
|
||||
'javascript.js',
|
||||
'languages.js',
|
||||
)
|
13
devtools/shared/gcli/source/lib/gcli/moz.build
Normal file
13
devtools/shared/gcli/source/lib/gcli/moz.build
Normal file
@ -0,0 +1,13 @@
|
||||
# -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
|
||||
# vim: set filetype=python:
|
||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
DevToolsModules(
|
||||
'cli.js',
|
||||
'index.js',
|
||||
'l10n.js',
|
||||
'settings.js',
|
||||
'system.js',
|
||||
)
|
11
devtools/shared/gcli/source/lib/gcli/mozui/moz.build
Normal file
11
devtools/shared/gcli/source/lib/gcli/mozui/moz.build
Normal file
@ -0,0 +1,11 @@
|
||||
# -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
|
||||
# vim: set filetype=python:
|
||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
DevToolsModules(
|
||||
'completer.js',
|
||||
'inputter.js',
|
||||
'tooltip.js',
|
||||
)
|
25
devtools/shared/gcli/source/lib/gcli/types/moz.build
Normal file
25
devtools/shared/gcli/source/lib/gcli/types/moz.build
Normal file
@ -0,0 +1,25 @@
|
||||
# -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
|
||||
# vim: set filetype=python:
|
||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
DevToolsModules(
|
||||
'array.js',
|
||||
'boolean.js',
|
||||
'command.js',
|
||||
'date.js',
|
||||
'delegate.js',
|
||||
'file.js',
|
||||
'fileparser.js',
|
||||
'javascript.js',
|
||||
'node.js',
|
||||
'number.js',
|
||||
'resource.js',
|
||||
'selection.js',
|
||||
'setting.js',
|
||||
'string.js',
|
||||
'types.js',
|
||||
'union.js',
|
||||
'url.js',
|
||||
)
|
15
devtools/shared/gcli/source/lib/gcli/ui/moz.build
Normal file
15
devtools/shared/gcli/source/lib/gcli/ui/moz.build
Normal file
@ -0,0 +1,15 @@
|
||||
# -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
|
||||
# vim: set filetype=python:
|
||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
DevToolsModules(
|
||||
'focus.js',
|
||||
'history.js',
|
||||
'intro.js',
|
||||
'menu.css',
|
||||
'menu.html',
|
||||
'menu.js',
|
||||
'view.js',
|
||||
)
|
17
devtools/shared/gcli/source/lib/gcli/util/moz.build
Normal file
17
devtools/shared/gcli/source/lib/gcli/util/moz.build
Normal file
@ -0,0 +1,17 @@
|
||||
# -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
|
||||
# vim: set filetype=python:
|
||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
DevToolsModules(
|
||||
'domtemplate.js',
|
||||
'fileparser.js',
|
||||
'filesystem.js',
|
||||
'host.js',
|
||||
'l10n.js',
|
||||
'legacy.js',
|
||||
'prism.js',
|
||||
'spell.js',
|
||||
'util.js',
|
||||
)
|
@ -43,8 +43,8 @@
|
||||
srcdir.load();
|
||||
|
||||
is(builtin.loader.mapping.length,
|
||||
srcdir.loader.mapping.length + 2,
|
||||
"The built-in loader has 2 additional mappings.");
|
||||
srcdir.loader.mapping.length + 1,
|
||||
"The built-in loader has one additional mappings.");
|
||||
|
||||
Services.prefs.clearUserPref(SRCDIR_PREF);
|
||||
</script>
|
||||
|
@ -253,7 +253,7 @@ public class GeckoEvent {
|
||||
return null;
|
||||
}
|
||||
|
||||
event.mPoints[0] = new Point(Math.round(geckoPoint.x), Math.round(geckoPoint.y));
|
||||
event.mPoints[0] = new Point((int)Math.floor(geckoPoint.x), (int)Math.floor(geckoPoint.y));
|
||||
|
||||
event.mX = size;
|
||||
event.mTime = System.currentTimeMillis();
|
||||
@ -334,7 +334,7 @@ public class GeckoEvent {
|
||||
geckoPoint = GeckoAppShell.getLayerView().convertViewPointToLayerPoint(geckoPoint);
|
||||
}
|
||||
|
||||
mPoints[index] = new Point(Math.round(geckoPoint.x), Math.round(geckoPoint.y));
|
||||
mPoints[index] = new Point((int)Math.floor(geckoPoint.x), (int)Math.floor(geckoPoint.y));
|
||||
mPointIndicies[index] = event.getPointerId(eventIndex);
|
||||
|
||||
double radians = event.getOrientation(eventIndex);
|
||||
|
@ -17,6 +17,7 @@ import org.mozilla.gecko.widget.FloatingHintEditText;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.res.Configuration;
|
||||
import android.support.v7.widget.AppCompatCheckBox;
|
||||
import android.text.Html;
|
||||
import android.text.InputType;
|
||||
import android.text.TextUtils;
|
||||
@ -146,7 +147,7 @@ public class PromptInput {
|
||||
|
||||
@Override
|
||||
public View getView(Context context) throws UnsupportedOperationException {
|
||||
CheckBox checkbox = new CheckBox(context);
|
||||
final CheckBox checkbox = new AppCompatCheckBox(context);
|
||||
checkbox.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));
|
||||
checkbox.setText(mLabel);
|
||||
checkbox.setChecked(mChecked);
|
||||
|
@ -22,7 +22,8 @@
|
||||
android:gravity="right"
|
||||
android:visibility="gone"/>
|
||||
|
||||
<CheckBox android:id="@+id/doorhanger_checkbox"
|
||||
<android.support.v7.widget.AppCompatCheckBox
|
||||
android:id="@+id/doorhanger_checkbox"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/doorhanger_section_padding_medium"
|
||||
|
@ -21,7 +21,8 @@
|
||||
android:inputType="textPassword"
|
||||
android:hint="@string/doorhanger_login_edit_password_hint"/>
|
||||
|
||||
<CheckBox android:id="@+id/checkbox_toggle_password"
|
||||
<android.support.v7.widget.AppCompatCheckBox
|
||||
android:id="@+id/checkbox_toggle_password"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/doorhanger_login_edit_toggle"
|
||||
|
@ -41,7 +41,7 @@
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<CheckBox
|
||||
<android.support.v7.widget.AppCompatCheckBox
|
||||
android:id="@+id/checkbox"
|
||||
android:layout_width="35dip"
|
||||
android:layout_height="wrap_content"
|
||||
|
@ -1558,7 +1558,7 @@ function renderPayloadList(ping) {
|
||||
|
||||
for (; payloadIndex <= ping.payload.childPayloads.length; ++payloadIndex) {
|
||||
option = document.createElement("option");
|
||||
text = bundle.formatStringFromName("childPayload", [payloadIndex], 1);
|
||||
text = bundle.formatStringFromName("childPayloadN", [payloadIndex], 1);
|
||||
content = document.createTextNode(text);
|
||||
option.appendChild(content);
|
||||
option.setAttribute("value", payloadIndex);
|
||||
|
@ -73,5 +73,5 @@ addonProvider = %1$S Provider
|
||||
parentPayload = Parent Payload
|
||||
|
||||
# Note to translators:
|
||||
# - The %1$s will be replaced with the number of the child payload (e.g. "1", "2")
|
||||
childPayload = Child Payload %1$s
|
||||
# - The %1$S will be replaced with the number of the child payload (e.g. "1", "2")
|
||||
childPayloadN = Child Payload %1$S
|
||||
|
Loading…
Reference in New Issue
Block a user