Merge m-c to mozilla-inbound

This commit is contained in:
Carsten "Tomcat" Book 2014-10-16 16:10:53 +02:00
commit e156f56b85
136 changed files with 865 additions and 298 deletions

View File

@ -8,8 +8,14 @@
// This file is only loaded on Gonk to manage ADB state
const { utils: Cu } = Components;
const DEBUG = false;
var debug = function(str) {
dump("AdbController: " + str + "\n");
}
let AdbController = {
DEBUG: false,
locked: undefined,
remoteDebuggerEnabled: undefined,
lockEnabled: undefined,
@ -17,31 +23,21 @@ let AdbController = {
disableAdbTimeoutHours: 12,
umsActive: false,
debug: function(str) {
dump("AdbController: " + str + "\n");
},
setLockscreenEnabled: function(value) {
this.lockEnabled = value;
if (this.DEBUG) {
this.debug("setLockscreenEnabled = " + this.lockEnabled);
}
DEBUG && debug("setLockscreenEnabled = " + this.lockEnabled);
this.updateState();
},
setLockscreenState: function(value) {
this.locked = value;
if (this.DEBUG) {
this.debug("setLockscreenState = " + this.locked);
}
DEBUG && debug("setLockscreenState = " + this.locked);
this.updateState();
},
setRemoteDebuggerState: function(value) {
this.remoteDebuggerEnabled = value;
if (this.DEBUG) {
this.debug("setRemoteDebuggerState = " + this.remoteDebuggerEnabled);
}
DEBUG && debug("setRemoteDebuggerState = " + this.remoteDebuggerEnabled);
this.updateState();
},
@ -59,25 +55,19 @@ let AdbController = {
}
}
if (this.disableAdbTimeoutHours <= 0) {
if (this.DEBUG) {
this.debug("Timer to disable ADB not started due to zero timeout");
}
DEBUG && debug("Timer to disable ADB not started due to zero timeout");
return;
}
if (this.DEBUG) {
this.debug("Starting timer to disable ADB in " +
this.disableAdbTimeoutHours + " hours");
}
DEBUG && debug("Starting timer to disable ADB in " +
this.disableAdbTimeoutHours + " hours");
let timeoutMilliseconds = this.disableAdbTimeoutHours * 60 * 60 * 1000;
this.disableAdbTimer.initWithCallback(this, timeoutMilliseconds,
Ci.nsITimer.TYPE_ONE_SHOT);
},
stopDisableAdbTimer: function() {
if (this.DEBUG) {
this.debug("Stopping timer to disable ADB");
}
DEBUG && debug("Stopping timer to disable ADB");
if (this.disableAdbTimer) {
this.disableAdbTimer.cancel();
this.disableAdbTimer = null;
@ -90,7 +80,7 @@ let AdbController = {
// The following dump will be the last thing that shows up in logcat,
// and will at least give the user a clue about why logcat was
// disconnected, if the user happens to be using logcat.
dump("AdbController: ADB timer expired - disabling ADB\n");
debug("ADB timer expired - disabling ADB\n");
navigator.mozSettings.createLock().set(
{'debugger.remote-mode': 'disabled'});
}
@ -110,17 +100,11 @@ let AdbController = {
return;
}
let storage = this.storages[storageIndex];
if (this.DEBUG) {
this.debug("Checking availability of storage: '" +
storage.storageName);
}
DEBUG && debug("Checking availability of storage: '" + storage.storageName);
let req = storage.available();
req.onsuccess = function(e) {
if (this.DEBUG) {
this.debug("Storage: '" + storage.storageName + "' is '" +
e.target.result);
}
DEBUG && debug("Storage: '" + storage.storageName + "' is '" + e.target.result);
if (e.target.result == 'shared') {
// We've found a storage area that's being shared with the PC.
// We can stop looking now.
@ -131,16 +115,15 @@ let AdbController = {
this.updateStorageState(storageIndex + 1);
}.bind(this);
req.onerror = function(e) {
dump("AdbController: error querying storage availability for '" +
this.storages[storageIndex].storageName + "' (ignoring)\n");
Cu.reportError("AdbController: error querying storage availability for '" +
this.storages[storageIndex].storageName + "' (ignoring)\n");
this.updateStorageState(storageIndex + 1);
}.bind(this);
},
updateStateInternal: function() {
if (this.DEBUG) {
this.debug("updateStateInternal: called");
}
DEBUG && debug("updateStateInternal: called");
if (this.remoteDebuggerEnabled === undefined ||
this.lockEnabled === undefined ||
@ -162,18 +145,14 @@ let AdbController = {
//
// By waiting until both values are properly initialized, we avoid
// turning adb on or off accidentally.
if (this.DEBUG) {
this.debug("updateState: Waiting for all vars to be initialized");
}
DEBUG && debug("updateState: Waiting for all vars to be initialized");
return;
}
// Check if we have a remote debugging session going on. If so, we won't
// disable adb even if the screen is locked.
let isDebugging = USBRemoteDebugger.isDebugging;
if (this.DEBUG) {
this.debug("isDebugging=" + isDebugging);
}
DEBUG && debug("isDebugging=" + isDebugging);
// If USB Mass Storage, USB tethering, or a debug session is active,
// then we don't want to disable adb in an automatic fashion (i.e.
@ -199,13 +178,11 @@ let AdbController = {
// This means that the pref doesn't exist. Which is fine. We just leave
// enableAdb alone.
}
if (this.DEBUG) {
this.debug("updateState: enableAdb = " + enableAdb +
" remoteDebuggerEnabled = " + this.remoteDebuggerEnabled +
" lockEnabled = " + this.lockEnabled +
" locked = " + this.locked +
" usbFuncActive = " + usbFuncActive);
}
DEBUG && debug("updateState: enableAdb = " + enableAdb +
" remoteDebuggerEnabled = " + this.remoteDebuggerEnabled +
" lockEnabled = " + this.lockEnabled +
" locked = " + this.locked +
" usbFuncActive = " + usbFuncActive);
// Configure adb.
let currentConfig = libcutils.property_get("persist.sys.usb.config");
@ -225,14 +202,12 @@ let AdbController = {
}
let newConfig = configFuncs.join(",");
if (newConfig != currentConfig) {
if (this.DEBUG) {
this.debug("updateState: currentConfig = " + currentConfig);
this.debug("updateState: newConfig = " + newConfig);
}
DEBUG && debug("updateState: currentConfig = " + currentConfig);
DEBUG && debug("updateState: newConfig = " + newConfig);
try {
libcutils.property_set("persist.sys.usb.config", newConfig);
} catch(e) {
dump("Error configuring adb: " + e);
Cu.reportError("Error configuring adb: " + e);
}
}
if (useDisableAdbTimer) {
@ -243,6 +218,7 @@ let AdbController = {
}
}
}
};
SettingsListener.observe("lockscreen.locked", false,

View File

@ -15,7 +15,7 @@
<project name="platform_build" path="build" remote="b2g" revision="3a2947df41a480de1457a6dcdbf46ad0af70d8e0">
<copyfile dest="Makefile" src="core/root.mk"/>
</project>
<project name="gaia" path="gaia" remote="mozillaorg" revision="841d0d7d1b879f0ff4b5a8727f5dd23c7b0000a9"/>
<project name="gaia" path="gaia" remote="mozillaorg" revision="5c636a7a54b2c86d8ff6bc1aa1e5f9594c7bc586"/>
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="cc1f362ce43dce92ac786187ff4abf39060094bd"/>
<project name="librecovery" path="librecovery" remote="b2g" revision="891e5069c0ad330d8191bf8c7b879c814258c89f"/>

View File

@ -19,7 +19,7 @@
<copyfile dest="Makefile" src="core/root.mk"/>
</project>
<project name="fake-dalvik" path="dalvik" remote="b2g" revision="ca1f327d5acc198bb4be62fa51db2c039032c9ce"/>
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="841d0d7d1b879f0ff4b5a8727f5dd23c7b0000a9"/>
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="5c636a7a54b2c86d8ff6bc1aa1e5f9594c7bc586"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="cc1f362ce43dce92ac786187ff4abf39060094bd"/>
<project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
<project name="platform_hardware_ril" path="hardware/ril" remote="b2g" revision="cd88d860656c31c7da7bb310d6a160d0011b0961"/>

View File

@ -17,7 +17,7 @@
</project>
<project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
<project name="gaia" path="gaia" remote="mozillaorg" revision="841d0d7d1b879f0ff4b5a8727f5dd23c7b0000a9"/>
<project name="gaia" path="gaia" remote="mozillaorg" revision="5c636a7a54b2c86d8ff6bc1aa1e5f9594c7bc586"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="cc1f362ce43dce92ac786187ff4abf39060094bd"/>
<project name="moztt" path="external/moztt" remote="b2g" revision="562d357b72279a9e35d4af5aeecc8e1ffa2f44f1"/>
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="9f6b7471c881ee689183d681658cf2ba3dfc5610"/>

View File

@ -15,7 +15,7 @@
<project name="platform_build" path="build" remote="b2g" revision="3a2947df41a480de1457a6dcdbf46ad0af70d8e0">
<copyfile dest="Makefile" src="core/root.mk"/>
</project>
<project name="gaia" path="gaia" remote="mozillaorg" revision="841d0d7d1b879f0ff4b5a8727f5dd23c7b0000a9"/>
<project name="gaia" path="gaia" remote="mozillaorg" revision="5c636a7a54b2c86d8ff6bc1aa1e5f9594c7bc586"/>
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="cc1f362ce43dce92ac786187ff4abf39060094bd"/>
<project name="librecovery" path="librecovery" remote="b2g" revision="891e5069c0ad330d8191bf8c7b879c814258c89f"/>

View File

@ -19,7 +19,7 @@
<copyfile dest="Makefile" src="core/root.mk"/>
</project>
<project name="fake-dalvik" path="dalvik" remote="b2g" revision="ca1f327d5acc198bb4be62fa51db2c039032c9ce"/>
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="841d0d7d1b879f0ff4b5a8727f5dd23c7b0000a9"/>
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="5c636a7a54b2c86d8ff6bc1aa1e5f9594c7bc586"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="cc1f362ce43dce92ac786187ff4abf39060094bd"/>
<project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
<project name="platform_hardware_ril" path="hardware/ril" remote="b2g" revision="cd88d860656c31c7da7bb310d6a160d0011b0961"/>

View File

@ -15,7 +15,7 @@
<project name="platform_build" path="build" remote="b2g" revision="3a2947df41a480de1457a6dcdbf46ad0af70d8e0">
<copyfile dest="Makefile" src="core/root.mk"/>
</project>
<project name="gaia" path="gaia" remote="mozillaorg" revision="841d0d7d1b879f0ff4b5a8727f5dd23c7b0000a9"/>
<project name="gaia" path="gaia" remote="mozillaorg" revision="5c636a7a54b2c86d8ff6bc1aa1e5f9594c7bc586"/>
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="cc1f362ce43dce92ac786187ff4abf39060094bd"/>
<project name="librecovery" path="librecovery" remote="b2g" revision="891e5069c0ad330d8191bf8c7b879c814258c89f"/>

View File

@ -17,7 +17,7 @@
</project>
<project name="librecovery" path="librecovery" remote="b2g" revision="891e5069c0ad330d8191bf8c7b879c814258c89f"/>
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
<project name="gaia" path="gaia" remote="mozillaorg" revision="841d0d7d1b879f0ff4b5a8727f5dd23c7b0000a9"/>
<project name="gaia" path="gaia" remote="mozillaorg" revision="5c636a7a54b2c86d8ff6bc1aa1e5f9594c7bc586"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="cc1f362ce43dce92ac786187ff4abf39060094bd"/>
<project name="moztt" path="external/moztt" remote="b2g" revision="562d357b72279a9e35d4af5aeecc8e1ffa2f44f1"/>
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="9f6b7471c881ee689183d681658cf2ba3dfc5610"/>

View File

@ -4,6 +4,6 @@
"remote": "",
"branch": ""
},
"revision": "210585c281313afd89e28d6df035201e56dc80e8",
"revision": "8017299c3eb7b82bdaee1334994f546c11eb16ab",
"repo_path": "/integration/gaia-central"
}

View File

@ -17,7 +17,7 @@
<copyfile dest="Makefile" src="core/root.mk"/>
</project>
<project name="fake-dalvik" path="dalvik" remote="b2g" revision="ca1f327d5acc198bb4be62fa51db2c039032c9ce"/>
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="841d0d7d1b879f0ff4b5a8727f5dd23c7b0000a9"/>
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="5c636a7a54b2c86d8ff6bc1aa1e5f9594c7bc586"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="cc1f362ce43dce92ac786187ff4abf39060094bd"/>
<project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
<project name="librecovery" path="librecovery" remote="b2g" revision="891e5069c0ad330d8191bf8c7b879c814258c89f"/>

View File

@ -15,7 +15,7 @@
<copyfile dest="Makefile" src="core/root.mk"/>
</project>
<project name="fake-dalvik" path="dalvik" remote="b2g" revision="ca1f327d5acc198bb4be62fa51db2c039032c9ce"/>
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="841d0d7d1b879f0ff4b5a8727f5dd23c7b0000a9"/>
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="5c636a7a54b2c86d8ff6bc1aa1e5f9594c7bc586"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="cc1f362ce43dce92ac786187ff4abf39060094bd"/>
<project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
<project name="librecovery" path="librecovery" remote="b2g" revision="891e5069c0ad330d8191bf8c7b879c814258c89f"/>

View File

@ -17,7 +17,7 @@
</project>
<project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
<project name="gaia" path="gaia" remote="mozillaorg" revision="841d0d7d1b879f0ff4b5a8727f5dd23c7b0000a9"/>
<project name="gaia" path="gaia" remote="mozillaorg" revision="5c636a7a54b2c86d8ff6bc1aa1e5f9594c7bc586"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="cc1f362ce43dce92ac786187ff4abf39060094bd"/>
<project name="moztt" path="external/moztt" remote="b2g" revision="562d357b72279a9e35d4af5aeecc8e1ffa2f44f1"/>
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="9f6b7471c881ee689183d681658cf2ba3dfc5610"/>

View File

@ -17,7 +17,7 @@
<copyfile dest="Makefile" src="core/root.mk"/>
</project>
<project name="fake-dalvik" path="dalvik" remote="b2g" revision="ca1f327d5acc198bb4be62fa51db2c039032c9ce"/>
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="841d0d7d1b879f0ff4b5a8727f5dd23c7b0000a9"/>
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="5c636a7a54b2c86d8ff6bc1aa1e5f9594c7bc586"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="cc1f362ce43dce92ac786187ff4abf39060094bd"/>
<project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
<project name="librecovery" path="librecovery" remote="b2g" revision="891e5069c0ad330d8191bf8c7b879c814258c89f"/>

View File

@ -1380,6 +1380,13 @@ pref("devtools.debugger.ui.variables-searchbox-visible", false);
pref("devtools.profiler.enabled", true);
pref("devtools.timeline.enabled", false);
// Enable perftools via build command
#ifdef MOZ_DEVTOOLS_PERFTOOLS
pref("devtools.performance_dev.enabled", true);
#else
pref("devtools.performance_dev.enabled", false);
#endif
// The default Profiler UI settings
pref("devtools.profiler.ui.show-platform-data", false);

View File

@ -128,7 +128,7 @@
&community.start2;<label class="text-link" href="http://www.mozilla.org/">&community.mozillaLink;</label>&community.middle2;<label class="text-link" href="about:credits">&community.creditsLink;</label>&community.end3;
</description>
<description class="text-blurb" id="contributeDesc">
&contribute.start;<label class="text-link" href="http://www.mozilla.org/contribute/">&contribute.getInvolvedLink;</label>&contribute.end;
&helpus.start;<label class="text-link" href="https://sendto.mozilla.org/page/contribute/Give-Now?source=mozillaorg_default_footer&#38;ref=firefox_about&#38;utm_campaign=firefox_about&#38;tm_source=firefox&#38;tm_medium=referral&#38;utm_content=20140929_FireFoxAbout">&helpus.donateLink;</label>&helpus.middle;<label class="text-link" href="http://www.mozilla.org/contribute/">&helpus.getInvolvedLink;</label>&helpus.end;
</description>
</vbox>
</vbox>

View File

@ -154,14 +154,13 @@ let gUpdater = {
*/
_fillEmptyCells: function Updater_fillEmptyCells(aLinks, aCallback) {
let {cells, sites} = gGrid;
let batch = [];
// Find empty cells and fill them.
sites.forEach(function (aSite, aIndex) {
Promise.all(sites.map((aSite, aIndex) => {
if (aSite || !aLinks[aIndex])
return;
return null;
batch.push(new Promise(resolve => {
return new Promise(resolve => {
// Create the new site and fade it in.
let site = gGrid.createSite(aLinks[aIndex], cells[aIndex]);
@ -172,9 +171,7 @@ let gUpdater = {
// the fade-in transition work.
window.getComputedStyle(site.node).opacity;
gTransformation.showSite(site, resolve);
}));
});
Promise.all(batch).then(aCallback);
});
})).then(aCallback).catch(console.exception);
}
};

View File

@ -49,6 +49,7 @@ skip-if = e10s # when we backed out bug 1047603, this test broke.
[browser_social_marks.js]
skip-if = e10s # Bug 915547 (social providers don't install)
[browser_social_multiprovider.js]
skip-if = e10s # Bug 1069162 - lots of orange
[browser_social_multiworker.js]
[browser_social_perwindowPB.js]
[browser_social_sidebar.js]

View File

@ -923,7 +923,7 @@ const CustomizableWidgets = [
}, {
id: "loop-call-button",
type: "custom",
label: "loop-call-button2.label",
label: "loop-call-button3.label",
tooltiptext: "loop-call-button2.tooltiptext",
defaultArea: CustomizableUI.AREA_NAVBAR,
introducedInVersion: 1,

View File

@ -86,6 +86,10 @@ browser.jar:
content/browser/devtools/profiler.js (profiler/profiler.js)
content/browser/devtools/ui-recordings.js (profiler/ui-recordings.js)
content/browser/devtools/ui-profile.js (profiler/ui-profile.js)
#ifdef MOZ_DEVTOOLS_PERFTOOLS
content/browser/devtools/performance.xul (performance/performance.xul)
content/browser/devtools/performance.js (performance/performance.js)
#endif
content/browser/devtools/responsivedesign/resize-commands.js (responsivedesign/resize-commands.js)
content/browser/devtools/commandline.css (commandline/commandline.css)
content/browser/devtools/commandlineoutput.xhtml (commandline/commandlineoutput.xhtml)

View File

@ -31,6 +31,7 @@ loader.lazyGetter(this, "ShaderEditorPanel", () => require("devtools/shaderedito
loader.lazyGetter(this, "CanvasDebuggerPanel", () => require("devtools/canvasdebugger/panel").CanvasDebuggerPanel);
loader.lazyGetter(this, "WebAudioEditorPanel", () => require("devtools/webaudioeditor/panel").WebAudioEditorPanel);
loader.lazyGetter(this, "ProfilerPanel", () => require("devtools/profiler/panel").ProfilerPanel);
loader.lazyGetter(this, "PerformancePanel", () => require("devtools/performance/panel").PerformancePanel);
loader.lazyGetter(this, "TimelinePanel", () => require("devtools/timeline/panel").TimelinePanel);
loader.lazyGetter(this, "NetMonitorPanel", () => require("devtools/netmonitor/panel").NetMonitorPanel);
loader.lazyGetter(this, "StoragePanel", () => require("devtools/storage/panel").StoragePanel);
@ -274,6 +275,32 @@ Tools.jsprofiler = {
}
};
Tools.performance = {
id: "performance",
ordinal: 19,
icon: "chrome://browser/skin/devtools/tool-profiler.svg",
invertIconForLightTheme: true,
url: "chrome://browser/content/devtools/performance.xul",
// TODO bug 1082695 audit the Performance tools labels
label: "Performance++", //l10n("profiler.label2", profilerStrings),
panelLabel: "Performance++", //l10n("profiler.panelLabel2", profilerStrings),
tooltip: l10n("profiler.tooltip2", profilerStrings),
accesskey: l10n("profiler.accesskey", profilerStrings),
key: l10n("profiler.commandkey2", profilerStrings),
modifiers: "shift",
inMenu: true,
isTargetSupported: function (target) {
// Hide the profiler when debugging devices pre bug 1046394,
// that don't expose profiler actor in content processes.
return !target.isAddon && (!target.isApp || target.form.profilerActor);
},
build: function (frame, target) {
return new PerformancePanel(frame, target);
}
};
Tools.timeline = {
id: "timeline",
ordinal: 8,
@ -404,6 +431,16 @@ let defaultTools = [
Tools.scratchpad
];
// Only enable in-development performance tools if `--enable-devtools-perf`
// used in build, turning on `devtools.performance_dev.enabled`.
// Add to normal `defaultTools` when ready for normal release,
// pull out MOZ_DEVTOOLS_PERFTOOLS setting in `./configure.in`, and
// leave config on in `./browser/app/profile/firefox.js`, and always
// build in `./browser/devtools/moz.build`.
if (Services.prefs.getBoolPref("devtools.performance_dev.enabled")) {
defaultTools.push(Tools.performance);
}
exports.defaultTools = defaultTools;
for (let definition of defaultTools) {

View File

@ -33,6 +33,9 @@ DIRS += [
'webide',
]
if CONFIG['MOZ_DEVTOOLS_PERFTOOLS']:
DIRS += ['performance']
EXTRA_COMPONENTS += [
'devtools-clhandler.js',
'devtools-clhandler.manifest',

View File

@ -0,0 +1,8 @@
# 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/.
EXTRA_JS_MODULES.devtools.performance += [
'panel.js'
]

View File

@ -0,0 +1,62 @@
/* -*- Mode: javascript; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
"use strict";
const {Cc, Ci, Cu, Cr} = require("chrome");
Cu.import("resource://gre/modules/Task.jsm");
loader.lazyRequireGetter(this, "promise");
loader.lazyRequireGetter(this, "EventEmitter",
"devtools/toolkit/event-emitter");
function PerformancePanel(iframeWindow, toolbox) {
this.panelWin = iframeWindow;
this._toolbox = toolbox;
EventEmitter.decorate(this);
}
exports.PerformancePanel = PerformancePanel;
PerformancePanel.prototype = {
/**
* Open is effectively an asynchronous constructor.
*
* @return object
* A promise that is resolved when the Profiler completes opening.
*/
open: Task.async(function*() {
this.panelWin.gToolbox = this._toolbox;
this.panelWin.gTarget = this.target;
// Mock Front for now
let gFront = {};
EventEmitter.decorate(gFront);
this.panelWin.gFront = gFront;
yield this.panelWin.startupPerformance();
this.isReady = true;
this.emit("ready");
return this;
}),
// DevToolPanel API
get target() this._toolbox.target,
destroy: Task.async(function*() {
// Make sure this panel is not already destroyed.
if (this._destroyed) {
return;
}
yield this.panelWin.shutdownPerformance();
this.emit("destroyed");
this._destroyed = true;
})
};

View File

@ -0,0 +1,97 @@
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
* You can obtain one at http://mozilla.org/MPL/2.0/. */
"use strict";
const { classes: Cc, interfaces: Ci, utils: Cu, results: Cr } = Components;
Cu.import("resource://gre/modules/Task.jsm");
Cu.import("resource://gre/modules/devtools/Loader.jsm");
Cu.import("resource:///modules/devtools/ViewHelpers.jsm");
devtools.lazyRequireGetter(this, "Services");
devtools.lazyRequireGetter(this, "promise");
devtools.lazyRequireGetter(this, "EventEmitter",
"devtools/toolkit/event-emitter");
devtools.lazyRequireGetter(this, "DevToolsUtils",
"devtools/toolkit/DevToolsUtils");
/**
* The current target and the profiler connection, set by this tool's host.
*/
let gToolbox, gTarget, gFront;
/**
* Initializes the profiler controller and views.
*/
let startupPerformance = Task.async(function*() {
yield promise.all([
PrefObserver.register(),
EventsHandler.initialize()
]);
});
/**
* Destroys the profiler controller and views.
*/
let shutdownPerformance = Task.async(function*() {
yield promise.all([
PrefObserver.unregister(),
EventsHandler.destroy()
]);
});
/**
* Observes pref changes on the devtools.profiler branch and triggers the
* required frontend modifications.
*/
let PrefObserver = {
register: function() {
this.branch = Services.prefs.getBranch("devtools.profiler.");
this.branch.addObserver("", this, false);
},
unregister: function() {
this.branch.removeObserver("", this);
},
observe: function(subject, topic, pref) {
Prefs.refresh();
}
};
/**
* Functions handling target-related lifetime events.
*/
let EventsHandler = {
/**
* Listen for events emitted by the current tab target.
*/
initialize: function() {
},
/**
* Remove events emitted by the current tab target.
*/
destroy: function() {
}
};
/**
* Shortcuts for accessing various profiler preferences.
*/
const Prefs = new ViewHelpers.Prefs("devtools.profiler", {
});
/**
* Convenient way of emitting events from the panel window.
*/
EventEmitter.decorate(this);
/**
* DOM query helpers.
*/
function $(selector, target = document) {
return target.querySelector(selector);
}
function $$(selector, target = document) {
return target.querySelectorAll(selector);
}

View File

@ -0,0 +1,47 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- 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/. -->
<?xml-stylesheet href="chrome://browser/skin/" type="text/css"?>
<?xml-stylesheet href="chrome://browser/content/devtools/widgets.css" type="text/css"?>
<?xml-stylesheet href="chrome://browser/skin/devtools/common.css" type="text/css"?>
<?xml-stylesheet href="chrome://browser/skin/devtools/widgets.css" type="text/css"?>
<?xml-stylesheet href="chrome://browser/skin/devtools/performance.css" type="text/css"?>
<!DOCTYPE window [
<!ENTITY % profilerDTD SYSTEM "chrome://browser/locale/devtools/profiler.dtd">
%profilerDTD;
]>
<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<script src="chrome://browser/content/devtools/theme-switching.js"/>
<script type="application/javascript" src="performance.js"/>
<vbox class="theme-body" flex="1">
<toolbar id="performance-toolbar" class="devtools-toolbar">
<hbox id="performance-toolbar-controls-recordings" class="devtools-toolbarbutton-group">
<toolbarbutton id="record-button"
class="devtools-toolbarbutton"
tooltiptext="&profilerUI.recordButton.tooltip;"/>
<toolbarbutton id="clear-button"
class="devtools-toolbarbutton"
label="&profilerUI.clearButton;"/>
</hbox>
<spacer flex="1"></spacer>
<hbox id="performance-toolbar-controls-storage" class="devtools-toolbarbutton-group">
<toolbarbutton id="import-button"
class="devtools-toolbarbutton"
label="&profilerUI.importButton;"/>
</hbox>
</toolbar>
<splitter class="devtools-horizontal-splitter" />
<box id="overview-pane"
class="devtools-responsive-container"
flex="1">
</box>
<splitter class="devtools-horizontal-splitter" />
<box id="details-pane"
class="devtools-responsive-container"
flex="1">
</box>
</vbox>
</window>

View File

@ -22,6 +22,7 @@ support-files =
[browser_audionode-actor-get-type.js]
[browser_audionode-actor-is-source.js]
[browser_audionode-actor-bypass.js]
[browser_audionode-actor-connectnode-disconnect.js]
[browser_webaudio-actor-simple.js]
[browser_webaudio-actor-destroy-node.js]
[browser_webaudio-actor-connect-param.js]

View File

@ -0,0 +1,44 @@
/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
/**
* Tests that AudioNodeActor#connectNode() and AudioNodeActor#disconnect() work.
* Uses the editor front as the actors do not retain connect state.
*/
function spawnTest() {
let { target, panel } = yield initWebAudioEditor(SIMPLE_CONTEXT_URL);
let { panelWin } = panel;
let { gFront, $, $$, EVENTS, gAudioNodes } = panelWin;
reload(target);
let [actors] = yield Promise.all([
get3(gFront, "create-node"),
waitForGraphRendered(panelWin, 3, 2)
]);
let [dest, osc, gain] = actors;
info("Disconnecting oscillator...");
osc.disconnect();
yield Promise.all([
waitForGraphRendered(panelWin, 3, 1),
once(gAudioNodes, "disconnect")
]);
ok(true, "Oscillator disconnected, event emitted.");
info("Reconnecting oscillator...");
osc.connectNode(gain);
yield Promise.all([
waitForGraphRendered(panelWin, 3, 2),
once(gAudioNodes, "connect")
]);
ok(true, "Oscillator reconnected.");
yield teardown(panel);
finish();
}

View File

@ -38,10 +38,13 @@
<!ENTITY community.creditsLink "global community">
<!ENTITY community.end3 " working together to keep the Web open, public and accessible to all.">
<!ENTITY contribute.start "Sound interesting? ">
<!-- LOCALIZATION NOTE (contribute.getInvolvedLink): This is a link title that links to http://www.mozilla.org/contribute/. -->
<!ENTITY contribute.getInvolvedLink "Get involved!">
<!ENTITY contribute.end "">
<!ENTITY helpus.start "Want to help? ">
<!-- LOCALIZATION NOTE (helpus.donateLink): This is a link title that links to https://sendto.mozilla.org/page/contribute/Give-Now?source=mozillaorg_default_footer&ref=firefox_about&utm_campaign=firefox_about&utm_source=firefox&utm_medium=referral&utm_content=20140929_FireFoxAbout. -->
<!ENTITY helpus.donateLink "Make a donation">
<!ENTITY helpus.middle " or ">
<!-- LOCALIZATION NOTE (helpus.getInvolvedLink): This is a link title that links to http://www.mozilla.org/contribute/. -->
<!ENTITY helpus.getInvolvedLink "get involved!">
<!ENTITY helpus.end "">
<!-- LOCALIZATION NOTE (bottomLinks.license): This is a link title that links to about:license. -->
<!ENTITY bottomLinks.license "Licensing Information">

View File

@ -97,7 +97,9 @@ quit-button.tooltiptext.linux2 = Quit %1$S (%2$S)
# %2$S is the keyboard shortcut
quit-button.tooltiptext.mac = Quit %1$S (%2$S)
loop-call-button2.label = Start a conversation
# LOCALIZATION NOTE(loop-call-button2.label2): This is a brand name, request
# approval before you change it.
loop-call-button3.label = Hello
loop-call-button2.tooltiptext = Start a conversation
social-share-button.label = Share This Page

View File

@ -19,7 +19,8 @@ this.E10SUtils = {
if (aURL.startsWith("about:") &&
aURL.toLowerCase() != "about:home" &&
aURL.toLowerCase() != "about:blank" &&
!aURL.toLowerCase().startsWith("about:neterror")) {
!aURL.toLowerCase().startsWith("about:neterror") &&
!aURL.toLowerCase().startsWith("about:certerror")) {
return false;
}

View File

@ -26,6 +26,7 @@ XPCOMUtils.defineLazyModuleGetter(this, "BrowserUITelemetry",
const UITOUR_PERMISSION = "uitour";
const PREF_TEST_WHITELIST = "browser.uitour.testingOrigins";
const PREF_SEENPAGEIDS = "browser.uitour.seenPageIDs";
const MAX_BUTTONS = 4;
@ -620,6 +621,25 @@ this.UITour = {
.wrappedJSObject;
},
isTestingOrigin: function(aURI) {
if (Services.prefs.getPrefType(PREF_TEST_WHITELIST) != Services.prefs.PREF_STRING) {
return false;
}
// Add any testing origins (comma-seperated) to the whitelist for the session.
for (let origin of Services.prefs.getCharPref(PREF_TEST_WHITELIST).split(",")) {
try {
let testingURI = Services.io.newURI(origin, null, null);
if (aURI.prePath == testingURI.prePath) {
return true;
}
} catch (ex) {
Cu.reportError(ex);
}
}
return false;
},
ensureTrustedOrigin: function(aDocument) {
if (aDocument.defaultView.top != aDocument.defaultView)
return false;
@ -633,7 +653,10 @@ this.UITour = {
return false;
let permission = Services.perms.testPermission(uri, UITOUR_PERMISSION);
return permission == Services.perms.ALLOW_ACTION;
if (permission == Services.perms.ALLOW_ACTION)
return true;
return this.isTestingOrigin(uri);
},
isSafeScheme: function(aURI) {

View File

@ -25,6 +25,23 @@ let tests = [
done();
}, "http://mochi.test:8888/");
},
function test_testing_host(done) {
// Add two testing origins intentionally surrounded by whitespace to be ignored.
Services.prefs.setCharPref("browser.uitour.testingOrigins",
"https://test1.example.com, https://test2.example.com:443 ");
registerCleanupFunction(() => {
Services.prefs.clearUserPref("browser.uitour.testingOrigins");
});
function callback(result) {
ok(result, "Callback should be called on a testing origin");
done();
}
loadUITourTestPage(function() {
gContentAPI.getConfiguration("appinfo", callback);
}, "https://test2.example.com/");
},
function test_unsecure_host(done) {
loadUITourTestPage(function() {
let bookmarksMenu = document.getElementById("bookmarks-menu-button");

View File

@ -0,0 +1,5 @@
/* 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/. */
%include ../../shared/devtools/performance.inc.css

View File

@ -252,6 +252,7 @@ browser.jar:
skin/classic/browser/devtools/eyedropper.css (../shared/devtools/eyedropper.css)
* skin/classic/browser/devtools/netmonitor.css (devtools/netmonitor.css)
* skin/classic/browser/devtools/profiler.css (devtools/profiler.css)
* skin/classic/browser/devtools/performance.css (devtools/performance.css)
* skin/classic/browser/devtools/timeline.css (devtools/timeline.css)
* skin/classic/browser/devtools/scratchpad.css (devtools/scratchpad.css)
* skin/classic/browser/devtools/shadereditor.css (devtools/shadereditor.css)

View File

@ -0,0 +1,6 @@
/* 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/. */
%include ../shared.inc
%include ../../shared/devtools/performance.inc.css

View File

@ -382,6 +382,7 @@ browser.jar:
skin/classic/browser/devtools/eyedropper.css (../shared/devtools/eyedropper.css)
* skin/classic/browser/devtools/netmonitor.css (devtools/netmonitor.css)
* skin/classic/browser/devtools/profiler.css (devtools/profiler.css)
* skin/classic/browser/devtools/performance.css (devtools/performance.css)
* skin/classic/browser/devtools/timeline.css (devtools/timeline.css)
* skin/classic/browser/devtools/scratchpad.css (devtools/scratchpad.css)
* skin/classic/browser/devtools/shadereditor.css (devtools/shadereditor.css)

View File

@ -0,0 +1,34 @@
/* vim:set ts=2 sw=2 sts=2 et: */
/* 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/. */
/* Toolbar */
#performance-toolbar {
-moz-border-end: 1px solid;
}
.theme-dark #performance-toolbar > tabs,
.theme-dark #performance-toolbar {
-moz-border-end-color: #000; /* Splitters */
}
.theme-light #performance-toolbar > tabs,
.theme-light #performance-toolbar {
-moz-border-end-color: #aaa; /* Splitters */
}
/* Overview Panel */
#record-button {
list-style-image: url(profiler-stopwatch.svg);
}
#record-button[checked] {
list-style-image: url(profiler-stopwatch-checked.svg);
}
#record-button[locked] {
pointer-events: none;
}

View File

@ -0,0 +1,5 @@
/* 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/. */
%include ../../shared/devtools/performance.inc.css

View File

@ -289,6 +289,7 @@ browser.jar:
* skin/classic/browser/devtools/debugger.css (devtools/debugger.css)
* skin/classic/browser/devtools/netmonitor.css (devtools/netmonitor.css)
* skin/classic/browser/devtools/profiler.css (devtools/profiler.css)
* skin/classic/browser/devtools/performance.css (devtools/performance.css)
* skin/classic/browser/devtools/timeline.css (devtools/timeline.css)
* skin/classic/browser/devtools/scratchpad.css (devtools/scratchpad.css)
* skin/classic/browser/devtools/shadereditor.css (devtools/shadereditor.css)

View File

@ -7710,6 +7710,19 @@ if test "$MOZ_CHROME_FILE_FORMAT" != "jar" &&
AC_MSG_ERROR([--enable-chrome-format must be set to either jar, flat, or omni])
fi
dnl =========================================================
dnl Enable support for revamped devtools Performance Tools
dnl =========================================================
MOZ_ARG_ENABLE_BOOL(devtools-perf,
[ --enable-devtools-perf Set compile flags necessary for compiling devtools perftools],
MOZ_DEVTOOLS_PERFTOOLS=1,
MOZ_DEVTOOLS_PERFTOOLS= )
if test -n "$MOZ_DEVTOOLS_PERFTOOLS"; then
AC_DEFINE(MOZ_DEVTOOLS_PERFTOOLS)
fi
AC_SUBST(MOZ_DEVTOOLS_PERFTOOLS)
dnl =========================================================
dnl Omnijar packaging (bug 552121)
dnl =========================================================

View File

@ -21,7 +21,9 @@
#include "mozilla/WeakPtr.h"
#include "mozilla/TimeStamp.h"
#include "GeckoProfiler.h"
#ifdef MOZ_ENABLE_PROFILER_SPS
#include "ProfilerMarkers.h"
#endif
// Helper Classes
#include "nsCOMPtr.h"
@ -951,6 +953,8 @@ private:
// Storing profile timeline markers and if/when recording started
mozilla::TimeStamp mProfileTimelineStartTime;
#ifdef MOZ_ENABLE_PROFILER_SPS
struct InternalProfileTimelineMarker
{
InternalProfileTimelineMarker(const char* aName,
@ -971,6 +975,7 @@ private:
float mTime;
};
nsTArray<InternalProfileTimelineMarker*> mProfileTimelineMarkers;
#endif
// Get the elapsed time (in millis) since the profile timeline recording
// started

View File

@ -1215,16 +1215,18 @@ CreateDependentString(MacroAssembler &masm, const JSAtomState &names,
Label notInline;
int32_t maxInlineLength =
latin1 ? JSFatInlineString::MAX_LENGTH_LATIN1 : JSFatInlineString::MAX_LENGTH_TWO_BYTE;
int32_t maxInlineLength = latin1
? (int32_t) JSFatInlineString::MAX_LENGTH_LATIN1
: (int32_t) JSFatInlineString::MAX_LENGTH_TWO_BYTE;
masm.branch32(Assembler::Above, temp1, Imm32(maxInlineLength), &notInline);
{
// Make a normal or fat inline string.
Label stringAllocated, fatInline;
int32_t maxNormalInlineLength =
latin1 ? JSInlineString::MAX_LENGTH_LATIN1 : JSInlineString::MAX_LENGTH_TWO_BYTE;
int32_t maxNormalInlineLength = latin1
? (int32_t) JSInlineString::MAX_LENGTH_LATIN1
: (int32_t) JSInlineString::MAX_LENGTH_TWO_BYTE;
masm.branch32(Assembler::Above, temp1, Imm32(maxNormalInlineLength), &fatInline);
int32_t normalFlags = (latin1 ? JSString::LATIN1_CHARS_BIT : 0) | JSString::INIT_INLINE_FLAGS;

View File

@ -37,7 +37,7 @@ import android.util.Log;
class ChromeCast implements GeckoMediaPlayer {
private static final boolean SHOW_DEBUG = false;
static final String MIRROR_RECIEVER_APP_ID = "5F72F863";
static final String MIRROR_RECEIVER_APP_ID = "5F72F863";
private final Context context;
private final RouteInfo route;
@ -147,7 +147,7 @@ class ChromeCast implements GeckoMediaPlayer {
this.context = context;
this.route = route;
this.canMirror = route.supportsControlCategory(CastMediaControlIntent.categoryForCast(MIRROR_RECIEVER_APP_ID));
this.canMirror = route.supportsControlCategory(CastMediaControlIntent.categoryForCast(MIRROR_RECEIVER_APP_ID));
}
// This dumps everything we can find about the device into JSON. This will hopefully make it
@ -453,7 +453,7 @@ class ChromeCast implements GeckoMediaPlayer {
// Launch the media player app and launch this url once its loaded
try {
Cast.CastApi.launchApplication(apiClient, MIRROR_RECIEVER_APP_ID, true)
Cast.CastApi.launchApplication(apiClient, MIRROR_RECEIVER_APP_ID, true)
.setResultCallback(new MirrorCallback(callback));
} catch (Exception e) {
debug("Failed to launch application", e);

View File

@ -120,7 +120,7 @@ public class ContactService implements GeckoEventListener {
@Override
public void handleMessage(final String event, final JSONObject message) {
// If the account chooser dialog needs shown to the user, the message handling becomes
// asychronous so it needs posted to a background thread from the UI thread when the
// asynchronous so it needs posted to a background thread from the UI thread when the
// account chooser dialog is dismissed by the user.
Runnable handleMessage = new Runnable() {
@Override
@ -1024,7 +1024,7 @@ public class ContactService implements GeckoEventListener {
// row from the contacts data table that belongs to the contact, and insert the new
// fields. But then why not just delete all the data from the data in one go and
// insert the new data in another? Because if all the data relating to a contact is
// deleted, Android will "conviently" remove the ID making it impossible to insert data
// deleted, Android will "conveniently" remove the ID making it impossible to insert data
// under the old ID. To work around this, we put a Mozilla contact flag in the database
ContentProviderOperation removeOptions = ContentProviderOperation.newDelete(Data.CONTENT_URI)
@ -1968,9 +1968,9 @@ public class ContactService implements GeckoEventListener {
mEmailTypesMap.put("work", Email.TYPE_WORK);
}
private int getWebsiteType(String webisteType) {
private int getWebsiteType(String websiteType) {
initWebsiteTypesMap();
Integer type = mWebsiteTypesMap.get(webisteType.toLowerCase());
Integer type = mWebsiteTypesMap.get(websiteType.toLowerCase());
return type != null ? type : Website.TYPE_CUSTOM;
}

View File

@ -184,7 +184,7 @@ public class DoorHangerPopup extends ArrowPopup
mDoorHangers.add(newDoorHanger);
mContent.addView(newDoorHanger);
// Only update the popup if we're adding a notifcation to the selected tab
// Only update the popup if we're adding a notification to the selected tab
if (tabId == Tabs.getInstance().getSelectedTab().getId())
updatePopup();
}

View File

@ -54,10 +54,10 @@ public class EditBookmarkDialog {
/**
* This text watcher to enable or disable the OK button if the dialog contains
* valid information. This class is overridden to do data checking diffferent fields.
* valid information. This class is overridden to do data checking on different fields.
* By itself, it always enables the button.
*
* Callers can also assing a paired partner to the TextWatcher, and callers will check
* Callers can also assign a paired partner to the TextWatcher, and callers will check
* that both are enabled before enabling the ok button.
*/
private class EditBookmarkTextWatcher implements TextWatcher {

View File

@ -100,7 +100,7 @@ public class FilePicker implements GeckoEventListener {
private List<Intent> getIntentsForFilePicker(final String mimeType,
final FilePickerResultHandler fileHandler) {
// The base intent to use for the file picker. Even if this is an implicit intent, Android will
// still show a list of Activitiees that match this action/type.
// still show a list of Activities that match this action/type.
Intent baseIntent;
// A HashMap of Activities the base intent will show in the chooser. This is used
// to filter activities from other intents so that we don't show duplicates.

View File

@ -84,7 +84,7 @@ public class GeckoBatteryManager extends BroadcastReceiver {
// NOTE: it might not be common (in 2012) but technically, Android can run
// on a device that has no battery so we want to make sure it's not the case
// before bothering checking for battery state.
// However, the Galaxy Nexus phone advertizes itself as battery-less which
// However, the Galaxy Nexus phone advertises itself as battery-less which
// force us to special-case the logic.
// See the Google bug: https://code.google.com/p/android/issues/detail?id=22035
if (intent.getBooleanExtra(BatteryManager.EXTRA_PRESENT, false) ||

View File

@ -258,9 +258,9 @@ final class GeckoEditable
KeyCharacterMap.VIRTUAL_KEYBOARD);
}
} catch (Exception e) {
// KeyCharacterMap.UnavailableExcepton is not found on Gingerbread;
// KeyCharacterMap.UnavailableException is not found on Gingerbread;
// besides, it seems like HC and ICS will throw something other than
// KeyCharacterMap.UnavailableExcepton; so use a generic Exception here
// KeyCharacterMap.UnavailableException; so use a generic Exception here
return null;
}
KeyEvent [] keyEvents = mKeyMap.getEvents(cs.toString().toCharArray());

View File

@ -290,7 +290,7 @@ public class GeckoScreenOrientation {
}
/*
* Retrieve the scren orientation from a string.
* Retrieve the screen orientation from a string.
*
* @param aStr
* String hopefully containing a screen orientation name.

View File

@ -470,7 +470,7 @@ public class GeckoSmsManager
envelope.setMessageId(id);
envelope.setMessageTimestamp(timestamp);
Log.i("GeckoSmsManager", "SMS sending was successfull!");
Log.i("GeckoSmsManager", "SMS sending was successful!");
} else {
notifySmsDelivery(envelope.getMessageId(),
kDeliveryStatusSuccess,

View File

@ -661,10 +661,10 @@ public class GeckoView extends LayerView
* A Browser has finished loading content from the network.
* @param view The GeckoView that initiated the callback.
* @param browser The Browser that was loading the content.
* @param success Whether the page loaded successfully or an error occured.
* @param success Whether the page loaded successfully or an error occurred.
*/
public void onPageStop(GeckoView view, GeckoView.Browser browser, boolean success);
/**
* A Browser is displaying content. This page could have been loaded via
* network or from the session history.
@ -672,7 +672,7 @@ public class GeckoView extends LayerView
* @param browser The Browser that is showing the content.
*/
public void onPageShow(GeckoView view, GeckoView.Browser browser);
/**
* A page title was discovered in the content or updated after the content
* loaded.
@ -681,7 +681,7 @@ public class GeckoView extends LayerView
* @param title The title sent from the content.
*/
public void onReceivedTitle(GeckoView view, GeckoView.Browser browser, String title);
/**
* A link element was discovered in the content or updated after the content
* loaded that specifies a favicon.

View File

@ -19,7 +19,7 @@ public class GeckoViewContent implements GeckoView.ContentDelegate {
* A Browser has finished loading content from the network.
* @param view The GeckoView that initiated the callback.
* @param browser The Browser that was loading the content.
* @param success Whether the page loaded successfully or an error occured.
* @param success Whether the page loaded successfully or an error occurred.
*/
@Override
public void onPageStop(GeckoView view, GeckoView.Browser browser, boolean success) {}

View File

@ -39,7 +39,7 @@ import java.util.Map;
* addon code can be compiled against the android.jar provided in the Android
* SDK, rather than having to be compiled against Fennec source code.
*
* The Handler.Callback instances provided (as described above) are inovked with
* The Handler.Callback instances provided (as described above) are invoked with
* Message objects when the corresponding events are dispatched. The Bundle
* object attached to the Message will contain the "primitive" values from the
* JSON of the event. ("primitive" includes bool/int/long/double/String). If

View File

@ -240,7 +240,7 @@ class MediaPlayerManager implements NativeEventListener,
MediaRouteSelector selectorBuilder = new MediaRouteSelector.Builder()
.addControlCategory(MediaControlIntent.CATEGORY_LIVE_VIDEO)
.addControlCategory(MediaControlIntent.CATEGORY_REMOTE_PLAYBACK)
.addControlCategory(CastMediaControlIntent.categoryForCast(ChromeCast.MIRROR_RECIEVER_APP_ID))
.addControlCategory(CastMediaControlIntent.categoryForCast(ChromeCast.MIRROR_RECEIVER_APP_ID))
.build();
mediaRouter.addCallback(selectorBuilder, callback, MediaRouter.CALLBACK_FLAG_REQUEST_DISCOVERY);
}

View File

@ -224,7 +224,7 @@ public final class SharedPreferencesHelper
msg.put("profileName", this.profileName);
msg.put("key", key);
// Truly, this is awful, but the API impedence is strong: there
// Truly, this is awful, but the API impedance is strong: there
// is no way to get a single untyped value from a
// SharedPreferences instance.
msg.put("value", sharedPreferences.getAll().get(key));

View File

@ -52,8 +52,8 @@ class TextSelection extends Layer implements GeckoEventListener {
private TextSelectionActionModeCallback mCallback;
// These timers are used to avoid flicker caused by selection handles showing/hiding quickly. For isntance
// when moving between single handle caret mode and two handle selection mode.
// These timers are used to avoid flicker caused by selection handles showing/hiding quickly.
// For instance when moving between single handle caret mode and two handle selection mode.
private final Timer mActionModeTimer = new Timer("actionMode");
private class ActionModeTimerTask extends TimerTask {
@Override

View File

@ -43,7 +43,7 @@ public class Rotate3DAnimation extends Animation {
/**
* Creates a new 3D rotation on the Y axis. The rotation is defined by its
* start angle and its end angle. Both angles are in degrees. The rotation
* is performed around a center point on the 2D space, definied by a pair
* is performed around a center point on the 2D space, defined by a pair
* of X and Y coordinates, called centerX and centerY. When the animation
* starts, a translation on the Z axis (depth) is performed. The length
* of the translation can be specified, as well as whether the translation

View File

@ -113,7 +113,7 @@ public class FxAccountUtils {
try {
return NativeCrypto.pbkdf2SHA256(passwordUTF8, S, NUMBER_OF_QUICK_STRETCH_ROUNDS, 32);
} catch (final LinkageError e) {
// This will throw UnsatisifiedLinkError (missing mozglue) the first time it is called, and
// This will throw UnsatisfiedLinkError (missing mozglue) the first time it is called, and
// ClassNotDefFoundError, for the uninitialized NativeCrypto class, each subsequent time this
// is called; LinkageError is their common ancestor.
Logger.warn(LOG_TAG, "Got throwable stretching password using native pbkdf2SHA256 " +

View File

@ -108,7 +108,7 @@ public class HealthReportBroadcastService extends BackgroundService {
// The same intent can be handled by multiple methods so do not short-circuit evaluate.
boolean handled = attemptHandleIntentForUpload(intent);
handled = attemptHandleIntentForPrune(intent) ? true : handled;
handled = attemptHandleIntentForPrune(intent) || handled;
if (!handled) {
Logger.warn(LOG_TAG, "Unhandled intent with action " + intent.getAction() + ".");

View File

@ -202,7 +202,7 @@ public interface HealthReportStorage {
* version.
*
* @param measurement
* a measurement name, such as "org.mozila.appInfo.appInfo".
* a measurement name, such as "org.mozilla.appInfo.appInfo".
* @param version
* a version number, such as '3'.
* @param fields

View File

@ -41,7 +41,7 @@ public class PrunePolicy {
try {
try {
boolean pruned = attemptPruneBySize(time);
pruned = attemptExpiration(time) ? true : pruned;
pruned = attemptExpiration(time) || pruned;
// We only need to cleanup after a large pruning.
if (pruned) {
attemptStorageCleanup(time);

View File

@ -305,7 +305,7 @@ final class BrowserDatabaseHelper extends SQLiteOpenHelper {
// History with and without bookmark.
" SELECT " + qualifyColumn(TABLE_BOOKMARKS, Bookmarks._ID) + " AS " + Combined.BOOKMARK_ID + ", " +
qualifyColumn(TABLE_HISTORY, History.URL) + " AS " + Combined.URL + ", " +
// Prioritze bookmark titles over history titles, since the user may have
// Prioritize bookmark titles over history titles, since the user may have
// customized the title for a bookmark.
"COALESCE(" + qualifyColumn(TABLE_BOOKMARKS, Bookmarks.TITLE) + ", " +
qualifyColumn(TABLE_HISTORY, History.TITLE) +")" + " AS " + Combined.TITLE + ", " +
@ -360,7 +360,7 @@ final class BrowserDatabaseHelper extends SQLiteOpenHelper {
// History with and without bookmark.
" SELECT " + qualifyColumn(TABLE_BOOKMARKS, Bookmarks._ID) + " AS " + Combined.BOOKMARK_ID + ", " +
qualifyColumn(TABLE_HISTORY, History.URL) + " AS " + Combined.URL + ", " +
// Prioritze bookmark titles over history titles, since the user may have
// Prioritize bookmark titles over history titles, since the user may have
// customized the title for a bookmark.
"COALESCE(" + qualifyColumn(TABLE_BOOKMARKS, Bookmarks.TITLE) + ", " +
qualifyColumn(TABLE_HISTORY, History.TITLE) +")" + " AS " + Combined.TITLE + ", " +
@ -419,7 +419,7 @@ final class BrowserDatabaseHelper extends SQLiteOpenHelper {
" SELECT " + "CASE " + qualifyColumn(TABLE_BOOKMARKS, Bookmarks.IS_DELETED) + " WHEN 0 THEN " +
qualifyColumn(TABLE_BOOKMARKS, Bookmarks._ID) + " ELSE NULL END AS " + Combined.BOOKMARK_ID + ", " +
qualifyColumn(TABLE_HISTORY, History.URL) + " AS " + Combined.URL + ", " +
// Prioritze bookmark titles over history titles, since the user may have
// Prioritize bookmark titles over history titles, since the user may have
// customized the title for a bookmark.
"COALESCE(" + qualifyColumn(TABLE_BOOKMARKS, Bookmarks.TITLE) + ", " +
qualifyColumn(TABLE_HISTORY, History.TITLE) +")" + " AS " + Combined.TITLE + ", " +
@ -478,7 +478,7 @@ final class BrowserDatabaseHelper extends SQLiteOpenHelper {
" SELECT " + "CASE " + qualifyColumn(TABLE_BOOKMARKS, Bookmarks.IS_DELETED) + " WHEN 0 THEN " +
qualifyColumn(TABLE_BOOKMARKS, Bookmarks._ID) + " ELSE NULL END AS " + Combined.BOOKMARK_ID + ", " +
qualifyColumn(TABLE_HISTORY, History.URL) + " AS " + Combined.URL + ", " +
// Prioritze bookmark titles over history titles, since the user may have
// Prioritize bookmark titles over history titles, since the user may have
// customized the title for a bookmark.
"COALESCE(" + qualifyColumn(TABLE_BOOKMARKS, Bookmarks.TITLE) + ", " +
qualifyColumn(TABLE_HISTORY, History.TITLE) +")" + " AS " + Combined.TITLE + ", " +

View File

@ -66,7 +66,7 @@ public class TopSitesCursorWrapper implements Cursor {
// The cursor for the pinned sites query
private final Cursor pinnedCursor;
// The cursor for the sugested sites query
// The cursor for the suggested sites query
private final Cursor suggestedCursor;
// Associates pinned sites and their respective positions

View File

@ -22,7 +22,7 @@ The question, then, is when to do so.
Locale events
=============
One might imagine that we need only set the locale when our Application is instantiated, and when a new locale is set. Alas, that's not the case: whenever there's a configuration change (*e.g.*, screen rotation), when a new activity is started, and at other apparently random times, Android will supply our activities with a configuration that's been reset to the sytem locale.
One might imagine that we need only set the locale when our Application is instantiated, and when a new locale is set. Alas, that's not the case: whenever there's a configuration change (*e.g.*, screen rotation), when a new activity is started, and at other apparently random times, Android will supply our activities with a configuration that's been reset to the system locale.
For this reason, each starting activity must ask ``BrowserLocaleManager`` to fix its locale.

View File

@ -141,7 +141,7 @@ public class FxAccountConfirmAccountActivity extends FxAccountAbstractActivity i
case None:
default:
// We're not in the right place! Redirect to status.
Logger.warn(LOG_TAG, "No need to verifiy Firefox Account that needs action " + neededAction.toString() +
Logger.warn(LOG_TAG, "No need to verify Firefox Account that needs action " + neededAction.toString() +
" (in state " + state.getStateLabel() + ").");
setResult(RESULT_CANCELED);
this.redirectToActivity(FxAccountStatusActivity.class);

View File

@ -676,7 +676,7 @@ public class FxAccountStatusFragment
}
/**
* Iterate through debug buttons, adding a special deubg preference click
* Iterate through debug buttons, adding a special debug preference click
* listener to each of them.
*/
protected void connectDebugButtons() {

View File

@ -96,7 +96,7 @@ public class AndroidFxAccount {
* {@link AccountPickler#pickle}, and is identical to calling it directly.
* <p>
* Note that pickling is different from bundling, which involves operations on a
* {@link android.os.Bundle Bundle} object of miscellaenous data associated with the account.
* {@link android.os.Bundle Bundle} object of miscellaneous data associated with the account.
* See {@link #persistBundle} and {@link #unbundle} for more.
*/
public void pickle(final String filename) {

View File

@ -184,8 +184,8 @@ public class GLController {
// Only try to create the compositor if we have a valid surface and gecko is up. When these
// two conditions are satisfied, we can be relatively sure that the compositor creation will
// happen without needing to block anyhwere. Do it with a sync gecko event so that the
// android doesn't have a chance to destroy our surface in between.
// happen without needing to block anywhere. Do it with a synchronous Gecko event so that the
// Android doesn't have a chance to destroy our surface in between.
if (GeckoThread.checkLaunchState(GeckoThread.LaunchState.GeckoRunning)) {
GeckoAppShell.sendEventToGeckoSync(GeckoEvent.createCompositorCreateEvent(mWidth, mHeight));
}
@ -208,7 +208,7 @@ public class GLController {
// This join() should not be necessary, but makes this code a bit easier to think about.
// The EGLPreloadingThread should long be done by now, and even if it's not,
// it shouldn't be a problem to be initalizing EGL from two different threads.
// it shouldn't be a problem to be initializing EGL from two different threads.
// Still, having this join() here means that we don't have to wonder about what
// kind of caveats might exist with EGL initialization reentrancy on various drivers.
try {

View File

@ -81,8 +81,8 @@ class GeckoLayerClient implements LayerView.Listener, PanZoomTarget
* Specifically:
* 1) reading mViewportMetrics from any thread is fine without synchronization
* 2) writing to mViewportMetrics requires synchronizing on the layer controller object
* 3) whenver reading multiple fields from mViewportMetrics without synchronization (i.e. in
* case 1 above) you should always frist grab a local copy of the reference, and then use
* 3) whenever reading multiple fields from mViewportMetrics without synchronization (i.e. in
* case 1 above) you should always first grab a local copy of the reference, and then use
* that because mViewportMetrics might get reassigned in between reading the different
* fields. */
private volatile ImmutableViewportMetrics mViewportMetrics;
@ -651,7 +651,7 @@ class GeckoLayerClient implements LayerView.Listener, PanZoomTarget
* on every frame, it needs to be ultra-fast.
* It avoids taking any locks or allocating any objects. We keep around a
* mCurrentViewTransform so we don't need to allocate a new ViewTransform
* everytime we're called. NOTE: we might be able to return a ImmutableViewportMetrics
* every time we're called. NOTE: we might be able to return a ImmutableViewportMetrics
* which would avoid the copy into mCurrentViewTransform.
*/
@WrapElementForJNI(allowMultithread = true)

View File

@ -396,7 +396,7 @@ class JavaPanZoomController
mSubscroller.cancel();
if (waitingForTouchListeners && (event.getAction() & MotionEvent.ACTION_MASK) == MotionEvent.ACTION_DOWN) {
// this is the first touch point going down, so we enter the pending state
// seting the state will kill any animations in progress, possibly leaving
// setting the state will kill any animations in progress, possibly leaving
// the page in overscroll
setState(PanZoomState.WAITING_LISTENERS);
}
@ -1198,7 +1198,7 @@ class JavaPanZoomController
mLastZoomFocus.set(detector.getFocusX(), detector.getFocusY());
ImmutableViewportMetrics target = getMetrics().scaleTo(zoomFactor, mLastZoomFocus);
// If overscroll is diabled, prevent zooming outside the normal document pans.
// If overscroll is disabled, prevent zooming outside the normal document pans.
if (mX.getOverScrollMode() == View.OVER_SCROLL_NEVER || mY.getOverScrollMode() == View.OVER_SCROLL_NEVER) {
target = getValidViewportMetrics(target);
}

View File

@ -45,7 +45,7 @@ public class LayerMarginsAnimator {
/* The distance that has been scrolled since either the first touch event,
* or since the margins were last fully hidden */
private final PointF mTouchTravelDistance;
/* The ID of the prefs listener for the show-marginss threshold */
/* The ID of the prefs listener for the show-margins threshold */
private Integer mPrefObserverId;
public LayerMarginsAnimator(GeckoLayerClient aTarget, LayerView aView) {

View File

@ -334,7 +334,7 @@ public class BrowserSearch extends HomeFragment
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
// Intialize the search adapter
// Initialize the search adapter
mAdapter = new SearchAdapter(getActivity());
mList.setAdapter(mAdapter);

View File

@ -1281,7 +1281,7 @@ public final class HomeConfig {
installed = true;
// Add an event to the queue if a new panel is sucessfully installed.
// Add an event to the queue if a new panel is successfully installed.
mEventQueue.add(GeckoEvent.createBroadcastEvent("HomePanels:Installed", panelConfig.getId()));
}
@ -1317,7 +1317,7 @@ public final class HomeConfig {
findNewDefault();
}
// Add an event to the queue if a panel is succesfully uninstalled.
// Add an event to the queue if a panel is successfully uninstalled.
mEventQueue.add(GeckoEvent.createBroadcastEvent("HomePanels:Uninstalled", panelId));
mHasChanged = true;

View File

@ -89,7 +89,7 @@ class PanelViewAdapter extends CursorAdapter {
}
private boolean isShowingBack() {
return (filterManager != null ? filterManager.canGoBack() : false);
return filterManager != null && filterManager.canGoBack();
}
private final Cursor getCursor(int position) {

View File

@ -235,7 +235,7 @@ public class RemoteTabsExpandableListFragment extends HomeFragment implements Re
// we can add/remove it at will.
mList.addFooterView(mFooterView, null, true);
// Intialize adapter
// Initialize adapter
mAdapter = new RemoteTabsExpandableListAdapter(R.layout.home_remote_tabs_group, R.layout.home_remote_tabs_child, null);
mList.setAdapter(mAdapter);

View File

@ -251,7 +251,7 @@ public class TwoLinePageRow extends LinearLayout
mFavicon.clearImage();
Favicons.cancelFaviconLoad(mLoadFaviconJobId);
// Displayed RecentTabsPanel urls may refer to pages openned in readermode, so we
// Displayed RecentTabsPanel URLs may refer to pages opened in reader mode, so we
// remove the about:reader prefix to ensure the Favicon loads properly.
final String pageURL = AboutPages.isAboutReader(url) ?
ReaderModeUtils.getUrlFromAboutReader(url) : url;

View File

@ -542,7 +542,7 @@ just addresses the organization to follow, e.g. "This site is run by " -->
<!ENTITY colon ":">
<!-- These are only used for accessiblity for the done and overflow-menu buttons in the actionbar.
<!-- These are only used for accessibility for the done and overflow-menu buttons in the actionbar.
They are never shown to users -->
<!ENTITY actionbar_menu "Menu">
<!ENTITY actionbar_done "Done">

View File

@ -8,13 +8,10 @@ package org.mozilla.gecko.overlays.service;
import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.os.IBinder;
import android.os.Parcelable;
import android.util.Log;
import android.view.View;
import org.mozilla.gecko.Assert;
import org.mozilla.gecko.overlays.OverlayConstants;
import org.mozilla.gecko.overlays.service.sharemethods.AddBookmark;
import org.mozilla.gecko.overlays.service.sharemethods.AddToReadingList;
import org.mozilla.gecko.overlays.service.sharemethods.SendTab;
@ -27,7 +24,6 @@ import java.util.Map;
import static org.mozilla.gecko.overlays.OverlayConstants.ACTION_PREPARE_SHARE;
import static org.mozilla.gecko.overlays.OverlayConstants.ACTION_SHARE;
import static org.mozilla.gecko.overlays.OverlayConstants.EXTRA_SHARE_METHOD;
/**
* A service to receive requests from overlays to perform actions.
@ -120,7 +116,7 @@ public class OverlayActionService extends Service {
switch (result) {
case SUCCESS:
// \o/
OverlayToastHelper.showSuccessToast(getApplicationContext(), shareMethod.getSuccessMesssage());
OverlayToastHelper.showSuccessToast(getApplicationContext(), shareMethod.getSuccessMessage());
break;
case TRANSIENT_FAILURE:
// An OnClickListener to do this share again.

View File

@ -25,7 +25,7 @@ public class AddBookmark extends ShareMethod {
}
@Override
public String getSuccessMesssage() {
public String getSuccessMessage() {
return context.getResources().getString(R.string.bookmark_added);
}

View File

@ -40,7 +40,7 @@ public class AddToReadingList extends ShareMethod {
}
@Override
public String getSuccessMesssage() {
public String getSuccessMessage() {
return context.getResources().getString(R.string.reading_list_added);
}

View File

@ -58,7 +58,7 @@ public class SendTab extends ShareMethod {
public static final String EXTRA_CLIENT_RECORDS = "RECORDS";
// The intent we should dispatch when the button for this ShareMethod is tapped, instead of
// taking the normal action (eg. "Set up sync!")
// taking the normal action (e.g., "Set up Sync!")
public static final String OVERRIDE_INTENT = "OVERRIDE_INTENT";
private Set<String> validGUIDs;
@ -289,7 +289,7 @@ public class SendTab extends ShareMethod {
}
@Override
public String getSuccessMesssage() {
public String getSuccessMessage() {
return context.getResources().getString(R.string.sync_text_tab_sent);
}

View File

@ -33,7 +33,7 @@ public abstract class ShareMethod {
*/
public abstract Result handle(ShareData shareData);
public abstract String getSuccessMesssage();
public abstract String getSuccessMessage();
public abstract String getFailureMessage();
/**

View File

@ -42,7 +42,7 @@ public class OverlayDialogButton extends LinearLayout {
private Drawable disabledIcon;
// Click listeners used when enabled/disabled. Currently, disabledOnClickListener is set
// intenally to something that causes the icon to pulse.
// internally to something that causes the icon to pulse.
private OnClickListener enabledOnClickListener;
private OnClickListener disabledOnClickListener;

View File

@ -4,22 +4,24 @@
package org.mozilla.gecko.overlays.ui;
import android.app.AlertDialog;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;
import java.util.Collection;
import org.mozilla.gecko.AppConstants;
import org.mozilla.gecko.Assert;
import org.mozilla.gecko.R;
import org.mozilla.gecko.overlays.service.sharemethods.ParcelableClientRecord;
import org.mozilla.gecko.overlays.ui.SendTabList.State;
import java.util.Collection;
import static org.mozilla.gecko.overlays.ui.SendTabList.*;
import android.app.AlertDialog;
import android.content.Context;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;
public class SendTabDeviceListArrayAdapter extends ArrayAdapter<ParcelableClientRecord> {
@SuppressWarnings("unused")
private static final String LOGTAG = "GeckoSendTabAdapter";
private State currentState;

View File

@ -4,25 +4,25 @@
package org.mozilla.gecko.overlays.ui;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.util.AttributeSet;
import android.util.Log;
import android.view.MotionEvent;
import android.widget.ListAdapter;
import android.widget.ListView;
import org.mozilla.gecko.Assert;
import org.mozilla.gecko.R;
import org.mozilla.gecko.overlays.service.sharemethods.ParcelableClientRecord;
import java.util.Arrays;
import static org.mozilla.gecko.overlays.ui.SendTabList.State.LIST;
import static org.mozilla.gecko.overlays.ui.SendTabList.State.LOADING;
import static org.mozilla.gecko.overlays.ui.SendTabList.State.NONE;
import static org.mozilla.gecko.overlays.ui.SendTabList.State.SHOW_DEVICES;
import java.util.Arrays;
import org.mozilla.gecko.Assert;
import org.mozilla.gecko.R;
import org.mozilla.gecko.overlays.service.sharemethods.ParcelableClientRecord;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.widget.ListAdapter;
import android.widget.ListView;
/**
* The SendTab button has a few different states depending on the available devices (and whether
* we've loaded them yet...)
@ -44,7 +44,8 @@ import static org.mozilla.gecko.overlays.ui.SendTabList.State.SHOW_DEVICES;
* devices.
*/
public class SendTabList extends ListView {
private static final String LOGTAG = "SendTabList";
@SuppressWarnings("unused")
private static final String LOGTAG = "GeckoSendTabList";
// The maximum number of target devices to show in the main list. Further devices are available
// from a secondary menu.
@ -107,14 +108,12 @@ public class SendTabList extends ListView {
}
}
public void setSyncClients(ParcelableClientRecord[] clients) {
if (clients == null) {
clients = new ParcelableClientRecord[0];
}
public void setSyncClients(final ParcelableClientRecord[] c) {
final ParcelableClientRecord[] clients = c == null ? new ParcelableClientRecord[0] : c;
int size = clients.length;
if (size == 0) {
// Just show a button to set up sync (or whatever).
// Just show a button to set up Sync (or whatever).
switchState(NONE);
return;
}
@ -122,12 +121,12 @@ public class SendTabList extends ListView {
clientListAdapter.setClientRecordList(Arrays.asList(clients));
if (size <= MAXIMUM_INLINE_ELEMENTS) {
// Show the list of devices inline.
// Show the list of devices in-line.
switchState(LIST);
return;
}
// Just show a button to launch the list of devices to choose one from.
// Just show a button to launch the list of devices to choose from.
switchState(SHOW_DEVICES);
}

View File

@ -8,7 +8,6 @@ import org.mozilla.gecko.GeckoAppShell;
import org.mozilla.gecko.util.ThreadUtils;
import org.mozilla.gecko.widget.GeckoActionProvider;
import android.app.Activity;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
@ -117,7 +116,7 @@ public class IntentChooserPrompt {
// Add any intents from the provider.
final PackageManager packageManager = context.getPackageManager();
final ArrayList<ResolveInfo> infos = provider.getSortedActivites();
final ArrayList<ResolveInfo> infos = provider.getSortedActivities();
for (final ResolveInfo info : infos) {
items.add(getItemForResolveInfo(info, packageManager, provider.getIntent()));

View File

@ -376,9 +376,9 @@ public class Prompt implements OnClickListener, OnCancelListener, OnItemClickLis
*
* @param builder
* the alert builder currently building this dialog.
* @return
* @return
* return true if the inputs were added successfully. This may fail
* if the requested input is compatible with this Android verison
* if the requested input is compatible with this Android version.
*/
private boolean addInputs(AlertDialog.Builder builder) {
int length = mInputs == null ? 0 : mInputs.length;
@ -388,7 +388,7 @@ public class Prompt implements OnClickListener, OnCancelListener, OnItemClickLis
try {
View root = null;
boolean scrollable = false; // If any of the innuts are scrollable, we won't wrap this in a ScrollView
boolean scrollable = false; // If any of the inputs are scrollable, we won't wrap this in a ScrollView
if (length == 1) {
root = wrapInput(mInputs[0]);

View File

@ -371,7 +371,7 @@ public class ConfigurationMigrator {
upgrade0to1(context, accountManager, account, product, username, serverURL, profile);
} else if (currentVersion == 1 && desiredVersion == 0) {
Logger.info(LOG_TAG, "Upgrading from version 0 to version 1.");
upgrade0to1(context, accountManager, account, product, username, serverURL, profile);
downgrade1to0(context, accountManager, account, product, username, serverURL, profile);
} else {
Logger.warn(LOG_TAG, "Don't know how to migrate from version " + currentVersion + " to " + desiredVersion + ".");
}

View File

@ -114,7 +114,7 @@ public class TabsLayoutItemView extends LinearLayout
mThumbnail.setImageDrawable(thumbnail);
}
public void setCloseVisibile(boolean visible) {
public void setCloseVisible(boolean visible) {
mCloseButton.setVisibility(visible ? View.VISIBLE : View.INVISIBLE);
}
}

View File

@ -81,7 +81,7 @@ class TabsListLayout extends TwoWayView
public void onMovedToScrapHeap(View view) {
TabsLayoutItemView item = (TabsLayoutItemView) view;
item.setThumbnail(null);
item.setCloseVisibile(true);
item.setCloseVisible(true);
}
});
}
@ -397,7 +397,7 @@ class TabsListLayout extends TwoWayView
@Override
public void onPropertyAnimationEnd() {
TabsLayoutItemView tab = (TabsLayoutItemView) view;
tab.setCloseVisibile(true);
tab.setCloseVisible(true);
}
});
@ -582,7 +582,7 @@ class TabsListLayout extends TwoWayView
mSwiping = true;
TabsListLayout.this.requestDisallowInterceptTouchEvent(true);
((TabsLayoutItemView) mSwipeView).setCloseVisibile(false);
((TabsLayoutItemView) mSwipeView).setCloseVisible(false);
// Stops listview from highlighting the touched item
// in the list when swiping.

View File

@ -17,7 +17,7 @@ abstract class ContentContextMenuTest extends PixelTest {
DisplayMetrics dm = new DisplayMetrics();
getActivity().getWindowManager().getDefaultDisplay().getMetrics(dm);
// The web content we are trying to open the context menu for should be positioned at the top of the page, at least 60px heigh and aligned to the middle
// The web content we are trying to open the context menu for should be positioned at the top of the page, at least 60px high and aligned to the middle
float top = mDriver.getGeckoTop() + 30 * dm.density;
float left = mDriver.getGeckoLeft() + mDriver.getGeckoWidth() / 2;

View File

@ -93,7 +93,7 @@ public class GeckoViewComponent extends BaseComponent {
}
/**
* Returns whether an InputConnection is avaiable.
* Returns whether an InputConnection is available.
* An InputConnection is available when text input is being directed to the
* GeckoView, and a text field (input, textarea, contentEditable, etc.) is
* currently focused inside the GeckoView.

View File

@ -18,7 +18,7 @@ public final class AssertionHelper {
private static Assert sAsserter;
private AssertionHelper() { /* To disallow instantation. */ }
private AssertionHelper() { /* To disallow instantiation. */ }
protected static void init(final UITestContext context) {
sAsserter = context.getAsserter();

View File

@ -332,7 +332,7 @@ public class testBrowserProvider extends ContentProviderTest {
} catch (OperationApplicationException ex) {
seenException = true;
}
mAsserter.is(seenException, false, "Batch updating succeded");
mAsserter.is(seenException, false, "Batch updating succeeded");
mOperations.clear();
// Delete all visits

View File

@ -16,7 +16,7 @@ import android.database.Cursor;
/**
* Tests that local tabs are filtered prior to upload.
* - create a set of tabs and perists them through TabsAccessor.
* - create a set of tabs and persists them through TabsAccessor.
* - verifies that tabs are filtered by querying.
*/
public class testFilterOpenTab extends ContentProviderTest {

View File

@ -61,7 +61,7 @@ public class testHistory extends AboutHomeTest {
mSolo.clickOnView(mFirstChild);
// The first item here (since it was just visited) should be a "Switch to tab" item
// i.e. don't expect a DOMCOntentLoaded event
// i.e. don't expect a DOMContentLoaded event
verifyPageTitle(StringHelper.ROBOCOP_BLANK_PAGE_03_URL);
verifyUrl(url3);
}

View File

@ -47,7 +47,7 @@ public class testShareLink extends AboutHomeTest {
waitForText("Share via");
}
// Get list of current avaliable share activities and verify them
// Get list of current available share activities and verify them
shareOptions = getShareOptions();
ArrayList<String> displayedOptions = getShareOptionsList();
for (String option:shareOptions) {
@ -149,7 +149,7 @@ public class testShareLink extends AboutHomeTest {
/**
* Adding a wait for the page title to make sure the Awesomebar will be dismissed
* Because of Bug 712370 the Awesomescreen will be dismissed when the Share Menu is closed
* so there is no need for handeling this different depending on where the share menu was invoced from
* so there is no need for handling this different depending on where the share menu was invoked from
* TODO: Look more into why the delay is needed here now and it was working before
*/
waitForText(urlTitle);

View File

@ -20,12 +20,12 @@ public class testTitleBar extends PixelTest {
inputAndLoadUrl(blank1);
verifyPageTitle(title);
// Verifing the full URL is displayed in the URL Bar
// Ensure the full URL is displayed in the URL Bar
selectOption(StringHelper.SHOW_PAGE_ADDRESS_LABEL);
inputAndLoadUrl(blank1);
verifyUrl(blank1);
// Verifing the title is displayed in the URL Bar
// Ensure the title is displayed in the URL Bar
selectOption(StringHelper.SHOW_PAGE_TITLE_LABEL);
inputAndLoadUrl(blank1);
verifyPageTitle(title);

View File

@ -70,7 +70,7 @@ public class testVkbOverlap extends PixelTest {
// account for borders and such of the text input which might still be out of view.
int newCount = countGreenPixels(painted);
// if zooming is allowed, the number of green pixels visible should have increased substatially
// if zooming is allowed, the number of green pixels visible should have increased substantially
if (shouldZoom) {
mAsserter.ok(newCount > greenPixelCount * 1.5, "testVkbOverlap", "Found " + newCount + " green pixels after tapping; expected " + greenPixelCount);
} else {

Some files were not shown because too many files have changed in this diff Show More