Merge cedar into mozilla-central

This commit is contained in:
Ehsan Akhgari 2011-04-13 14:00:55 -04:00
commit dd5c804aa9
687 changed files with 21815 additions and 10216 deletions

View File

@ -61,3 +61,4 @@ b70744835d94e54eec97b8fd186c96da5708a506 PRE_MOBILE_MERGE
b70744835d94e54eec97b8fd186c96da5708a506 PRE_MOBILE_MERGE_20110406
a71bd564ebf5bf4f93d13e84114f759c263130b0 MOBILE_MERGE_DONE
a71bd564ebf5bf4f93d13e84114f759c263130b0 MOBILE_MERGE_DONE_20110406
a95d426422816513477e5863add1b00ac7041dcb AURORA_BASE_20110412

View File

@ -695,9 +695,6 @@ nsAccessible::IsVisible(PRBool* aIsOffscreen)
PRUint64
nsAccessible::NativeState()
{
if (IsDefunct())
return states::DEFUNCT;
PRUint64 state = 0;
nsEventStates intrinsicState = mContent->IntrinsicState();
@ -1527,10 +1524,10 @@ nsAccessible::GetState(PRUint32* aState, PRUint32* aExtraState)
PRUint64
nsAccessible::State()
{
PRUint64 state = NativeState();
if (state & states::DEFUNCT)
return state;
if (IsDefunct())
return states::DEFUNCT;
PRUint64 state = NativeState();
// Apply ARIA states to be sure accessible states will be overriden.
ApplyARIAState(&state);

View File

@ -144,7 +144,7 @@ nsApplicationAccessible::GetKeyboardShortcut(nsAString &aKeyboardShortcut)
PRUint64
nsApplicationAccessible::State()
{
return NativeState();
return IsDefunct() ? states::DEFUNCT : 0;
}
NS_IMETHODIMP
@ -375,7 +375,7 @@ nsApplicationAccessible::NativeRole()
PRUint64
nsApplicationAccessible::NativeState()
{
return IsDefunct() ? states::DEFUNCT : 0;
return 0;
}
void

View File

@ -294,10 +294,6 @@ nsDocAccessible::GetDescription(nsAString& aDescription)
PRUint64
nsDocAccessible::NativeState()
{
if (IsDefunct())
return states::DEFUNCT;
// The root content of the document might be removed so that mContent is
// out of date.
PRUint64 state = (mContent->GetCurrentDoc() == mDocument) ?

View File

@ -150,7 +150,7 @@ nsHTMLBRAccessible::NativeRole()
PRUint64
nsHTMLBRAccessible::NativeState()
{
return IsDefunct() ? states::DEFUNCT : states::READONLY;
return states::READONLY;
}
nsresult

View File

@ -77,10 +77,7 @@ nsHTMLWin32ObjectOwnerAccessible::NativeState()
{
// XXX: No HWND means this is windowless plugin which is not accessible in
// the meantime.
if (mHwnd)
return nsAccessibleWrap::NativeState();
return IsDefunct() ? states::DEFUNCT : states::UNAVAILABLE;
return mHwnd ? nsAccessibleWrap::NativeState() : states::UNAVAILABLE;
}
////////////////////////////////////////////////////////////////////////////////

View File

@ -153,10 +153,6 @@ nsXFormsAccessible::GetValue(nsAString& aValue)
PRUint64
nsXFormsAccessible::NativeState()
{
if (IsDefunct())
return states::DEFUNCT;
NS_ENSURE_TRUE(sXFormsService, 0);
nsCOMPtr<nsIDOMNode> DOMNode(do_QueryInterface(mContent));

View File

@ -60,10 +60,6 @@ nsXFormsDropmarkerWidgetAccessible::NativeRole()
PRUint64
nsXFormsDropmarkerWidgetAccessible::NativeState()
{
if (IsDefunct())
return states::DEFUNCT;
PRBool isOpen = PR_FALSE;
nsCOMPtr<nsIDOMNode> DOMNode(do_QueryInterface(mContent));
nsresult rv = sXFormsService->IsDropmarkerOpen(DOMNode, &isOpen);

View File

@ -330,10 +330,6 @@ nsXULDropmarkerAccessible::NativeRole()
PRUint64
nsXULDropmarkerAccessible::NativeState()
{
if (IsDefunct())
return states::DEFUNCT;
return DropmarkerOpen(PR_FALSE) ? states::PRESSED : 0;
}
@ -815,7 +811,7 @@ nsXULToolbarSeparatorAccessible::NativeRole()
PRUint64
nsXULToolbarSeparatorAccessible::NativeState()
{
return IsDefunct() ? states::DEFUNCT : 0;
return 0;
}
////////////////////////////////////////////////////////////////////////////////

View File

@ -67,7 +67,7 @@ nsXULColumnsAccessible::NativeRole()
PRUint64
nsXULColumnsAccessible::NativeState()
{
return IsDefunct() ? states::DEFUNCT : states::READONLY;
return states::READONLY;
}
@ -90,7 +90,7 @@ nsXULColumnItemAccessible::NativeRole()
PRUint64
nsXULColumnItemAccessible::NativeState()
{
return IsDefunct() ? states::DEFUNCT : states::READONLY;
return states::READONLY;
}
NS_IMETHODIMP
@ -906,12 +906,8 @@ nsXULListitemAccessible::NativeRole()
PRUint64
nsXULListitemAccessible::NativeState()
{
if (mIsCheckbox) {
if (mIsCheckbox)
return nsXULMenuitemAccessible::NativeState();
}
if (IsDefunct())
return states::DEFUNCT;
PRUint64 states = states::FOCUSABLE | states::SELECTABLE;

View File

@ -927,10 +927,6 @@ nsXULTreeItemAccessibleBase::GroupPosition(PRInt32 *aGroupLevel,
PRUint64
nsXULTreeItemAccessibleBase::NativeState()
{
if (IsDefunct())
return states::DEFUNCT;
// focusable and selectable states
PRUint64 state = states::FOCUSABLE | states::SELECTABLE;

View File

@ -1165,10 +1165,6 @@ nsXULTreeGridCellAccessible::NativeRole()
PRUint64
nsXULTreeGridCellAccessible::NativeState()
{
if (IsDefunct())
return states::DEFUNCT;
// selectable/selected state
PRUint64 states = states::SELECTABLE;

View File

@ -48,7 +48,7 @@ DIRS = {972ce4c6-7e08-4474-a285-3208198ce6fd}
include $(topsrcdir)/config/rules.mk
ifeq (beta,$(MOZ_UPDATE_CHANNEL))
ifneq (,$(filter aurora beta,$(MOZ_UPDATE_CHANNEL)))
EXTENSIONS = \
testpilot@labs.mozilla.com \
$(NULL)

View File

@ -1,6 +1,5 @@
<?xml version="1.0"?>
<?xml-stylesheet href="chrome://testpilot/content/browser.css" type="text/css"?>
<?xml-stylesheet href="chrome://testpilot-os/skin/feedback.css" type="text/css"?>
<!DOCTYPE overlay [
<!ENTITY % testpilotDTD SYSTEM "chrome://testpilot/locale/main.dtd">

View File

@ -57,16 +57,6 @@
image="chrome://testpilot-os/skin/feedback-frown-16x16.png"
label = "&testpilot.sad.label;"
oncommand="TestPilotWindowUtils.openFeedbackPage('sad');"/>
<menuitem id="feedback-menu-broken-button"
class="menuitem-iconic"
image="chrome://testpilot-os/skin/feedback-broken-website.png"
label = "&testpilot.broken.label;"
oncommand="TestPilotWindowUtils.openFeedbackPage('broken');"/>
<menuitem id="feedback-menu-idea-button"
class="menuitem-iconic"
image="chrome://testpilot-os/skin/feedback-idea.png"
label = "&testpilot.idea.label;"
oncommand="TestPilotWindowUtils.openFeedbackPage('idea');"/>
<menuseparator/>
<menuitem id="feedback-menu-show-studies"
label="&testpilot.allYourStudies.label;"

View File

@ -4,7 +4,7 @@
xmlns:em="http://www.mozilla.org/2004/em-rdf#">
<Description about="urn:mozilla:install-manifest">
<em:id>testpilot@labs.mozilla.com</em:id>
<em:version>1.0.6</em:version>
<em:version>1.0.9</em:version>
<em:type>2</em:type>
<!-- Target Application this extension can install into,
@ -13,7 +13,7 @@
<Description>
<em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
<em:minVersion>3.5</em:minVersion>
<em:maxVersion>4.0.*</em:maxVersion>
<em:maxVersion>5.0</em:maxVersion>
</Description>
</em:targetApplication>

View File

@ -119,14 +119,11 @@ ExperimentDataStore.prototype = {
for (i = 0; i < this._columns.length; i++) {
let datum = uiEvent[this._columns[i].property];
switch (this._columns[i].type) {
case TYPE_INT_32:
insStmt.bindInt32Parameter(i, datum);
break;
case TYPE_DOUBLE:
insStmt.bindDoubleParameter(i, datum);
case TYPE_INT_32: case TYPE_DOUBLE:
insStmt.params[i] = datum;
break;
case TYPE_STRING:
insStmt.bindUTF8StringParameter(i, sanitizeString(datum));
insStmt.params[i] = sanitizeString(datum);
break;
}
}

View File

@ -104,12 +104,18 @@ var FeedbackManager = {
*/
let ioService = Cc["@mozilla.org/network/io-service;1"]
.getService(Ci.nsIIOService);
let uri = ioService.newURI(url, null, null);
let path = uri.path;
if (uri.host == "input.mozilla.com") {
if (path.indexOf("feedback" > -1) || path.indexOf("happy" > -1) || path.indexOf("sad" > -1)) {
return true;
try {
let uri = ioService.newURI(url, null, null);
let path = uri.path;
if (uri.host == "input.mozilla.com") {
if (path.indexOf("feedback") > -1 || path.indexOf("happy") > -1 || path.indexOf("sad") > -1) {
return true;
}
}
} catch(e) {
/* newURI throws an exception if we try to parse urls like "about:config". (Bug 644582)
* Those are not the urls we're looking for anyway. */
return false;
}
return false;
},

View File

@ -94,22 +94,12 @@ var TestPilotUIBuilder = {
} catch (e) {
}
}
/* Show and hide Feedback menu items based on version -- if user is on beta channel in
* the final version, they get the 'broken' and 'idea' items. Otherwise they get
* 'happy' and 'sad'.*/
if (this.isBetaChannel() && this.appVersionIsFinal()) {
window.document.getElementById("feedback-menu-happy-button").setAttribute("hidden", "true");
window.document.getElementById("feedback-menu-sad-button").setAttribute("hidden", "true");
} else {
window.document.getElementById("feedback-menu-broken-button").setAttribute("hidden", "true");
window.document.getElementById("feedback-menu-idea-button").setAttribute("hidden", "true");
}
},
isBetaChannel: function() {
// Nightly channel is treated the same as default channel.
return (this._prefs.getCharPref(UPDATE_CHANNEL_PREF) == "beta");
// Beta and aurora channels use feedback interface; nightly and release channels don't.
let channel = this._prefs.getCharPref(UPDATE_CHANNEL_PREF);
return (channel == "beta") || (channel == "betatest") || (channel == "aurora");
},
appVersionIsFinal: function() {

View File

@ -47,6 +47,7 @@ const LOCALE_PREF = "general.useragent.locale";
const EXTENSION_ID = "testpilot@labs.mozilla.com";
const PREFIX_NS_EM = "http://www.mozilla.org/2004/em-rdf#";
const PREFIX_ITEM_URI = "urn:mozilla:item:";
const UPDATE_CHANNEL_PREF = "app.update.channel";
/* The following preference, if present, stores answers to the basic panel
* survey, which tell us user's general tech level, and so should be included
@ -116,6 +117,19 @@ let MetadataCollector = {
accessibilities.push({ name: prefName, value: prefValue });
}
/* Detect accessibility instantiation
* (David Bolter's code from bug 577694) */
let enabled;
try {
enabled = Components.manager.QueryInterface(Ci.nsIServiceManager)
.isServiceInstantiatedByContractID(
"@mozilla.org/accessibilityService;1",
Ci.nsISupports);
} catch (ex) {
enabled = false;
}
accessibilities.push({name: "isInstantiated", value: enabled});
return accessibilities;
},
@ -155,6 +169,10 @@ let MetadataCollector = {
}
},
getUpdateChannel: function MetadataCollector_getUpdateChannel() {
return Application.prefs.getValue(UPDATE_CHANNEL_PREF, "");
},
getMetadata: function MetadataCollector_getMetadata(callback) {
let self = this;
self.getTestPilotVersion(function(tpVersion) {
@ -165,7 +183,8 @@ let MetadataCollector = {
fxVersion: self.getVersion(),
operatingSystem: self.getOperatingSystem(),
tpVersion: tpVersion,
surveyAnswers: self.getSurveyAnswers()}
surveyAnswers: self.getSurveyAnswers(),
updateChannel: self.getUpdateChannel()}
);
});
});

View File

@ -185,15 +185,10 @@ let TestPilotSetup = {
return this.__obs;
},
_isFfx4BetaVersion: function TPS__isFfx4BetaVersion() {
let result = Cc["@mozilla.org/xpcom/version-comparator;1"]
.getService(Ci.nsIVersionComparator)
.compare("3.7a1pre", this._application.version);
if (result < 0) {
return true;
} else {
return false;
}
_isBetaChannel: function TPS__isBetaChannel() {
// Beta and aurora channels use feedback interface; nightly and release channels don't.
let channel = this._prefs.getValue(UPDATE_CHANNEL_PREF, "");
return (channel == "beta") || (channel == "betatest") || (channel == "aurora");
},
_setPrefDefaultsForVersion: function TPS__setPrefDefaultsForVersion() {
@ -205,7 +200,7 @@ let TestPilotSetup = {
let prefBranch = ps.getDefaultBranch("");
/* note we're setting default values, not current values -- these
* get overridden by any user set values. */
if (this._isFfx4BetaVersion()) {
if (this._isBetaChannel()) {
prefBranch.setBoolPref(POPUP_SHOW_ON_NEW, true);
prefBranch.setIntPref(POPUP_CHECK_INTERVAL, 600000);
} else {
@ -262,7 +257,7 @@ let TestPilotSetup = {
let currVersion = self._prefs.getValue(VERSION_PREF, "firstrun");
if (currVersion != self.version) {
if(!self._isFfx4BetaVersion()) {
if(!self._isBetaChannel()) {
self._prefs.setValue(VERSION_PREF, self.version);
let browser = self._getFrontBrowserWindow().getBrowser();
let url = self._prefs.getValue(FIRST_RUN_PREF, "");
@ -386,7 +381,7 @@ let TestPilotSetup = {
let popup = doc.getElementById("pilot-notification-popup");
let anchor;
if (this._isFfx4BetaVersion()) {
if (this._isBetaChannel()) {
/* If we're in the Ffx4Beta version, popups come down from feedback
* button, but if we're in the standalone extension version, they
* come up from status bar icon. */

View File

@ -552,6 +552,21 @@ TestPilotExperiment.prototype = {
}
},
getStudyMetadata: function TestPilotExperiment_getStudyMetadata() {
try {
if (this._handlers.getStudyMetadata) {
let metadata = this._handlers.getStudyMetadata();
if (metadata.length) {
// getStudyMetadata must return an array, otherwise it is invalid.
return metadata;
}
}
} catch(e) {
this._logger.warn("Error in getStudyMetadata: " + e);
}
return null;
},
_reschedule: function TestPilotExperiment_reschedule() {
// Schedule next run of test:
// add recurrence interval to start date and store!
@ -753,6 +768,15 @@ TestPilotExperiment.prototype = {
json.metadata = md;
json.metadata.task_guid = self.getGuid(self._id);
json.metadata.event_headers = self._dataStore.getPropertyNames();
let moreMd = self.getStudyMetadata();
if (moreMd) {
for (let i = 0; i < moreMd.length; i++) {
if (moreMd[i].name && moreMd[i].value) {
json.metadata[ moreMd[i].name ] = moreMd[i].value; // TODO sanitize strings?
// TODO handle case where name or value are something other than strings?
}
}
}
self._dataStore.getJSONRows(function(rows) {
json.events = rows;
callback( JSON.stringify(json) );

View File

@ -62,8 +62,7 @@ EXTRA_JS_MODULES = \
include $(topsrcdir)/config/rules.mk
PRE_RELEASE_SUFFIX := $(shell $(PYTHON) $(topsrcdir)/config/printprereleasesuffix.py \
$(shell cat $(srcdir)/../config/version.txt))
PRE_RELEASE_SUFFIX := ""
DEFINES += \
-DMOZ_APP_VERSION=$(MOZ_APP_VERSION) \

View File

@ -1,16 +1,28 @@
#aboutDialog {
padding-top: 0;
-moz-padding-end: 0;
padding-bottom: 10px;
-moz-padding-start: 0;
width: 620px;
}
/* Official branding has Firefox logo on the left side of the window.
Nightly/aurora branding has background image applied to entire window. */
%ifdef MOZ_OFFICIAL_BRANDING
#clientBox {
background-color: #F7F7F7;
color: #222222;
}
%else
#aboutDialogContainer {
background-image: url("chrome://branding/content/about-background.png");
background-repeat: no-repeat;
background-color: #000;
color: #fff;
}
.text-link {
color: #fff !important;
}
%endif
%ifdef MOZ_OFFICIAL_BRANDING
#leftBox {
background-image: url("chrome://branding/content/about-logo.png");
background-repeat: no-repeat;
@ -20,6 +32,7 @@
margin-top:20px;
-moz-margin-start: 30px;
}
%endif
#rightBox {
background-image: url("chrome://branding/content/about-wordmark.png");
@ -27,8 +40,14 @@
/* padding-top creates room for the wordmark */
padding-top: 38px;
margin-top:20px;
-moz-margin-end: 30px;
-moz-margin-start: 30px;
%ifdef MOZ_OFFICIAL_BRANDING
margin-left: 30px;
margin-right: 30px;
%else
/* this margin prevents text from overlapping the planet image */
margin-left: 280px;
margin-right: 20px;
%endif
}
#rightBox:-moz-locale-dir(rtl) {
@ -37,10 +56,13 @@
#bottomBox {
padding: 15px 10px 0;
%ifndef MOZ_OFFICIAL_BRANDING
background-color: rgba(0,0,0,.7);
%endif
}
#version {
margin-top: 5px;
margin-top: 10px;
-moz-margin-start: 0;
}
@ -89,12 +111,16 @@
margin: 0 40px;
}
/* we assume trademark text only appears in offical builds */
%ifdef MOZ_OFFICIAL_BRANDING
#trademark {
font-size: xx-small;
text-align: center;
color: #999999;
margin-top: 10px;
margin-bottom: 10px;
}
%endif
#currentChannel {
margin: 0;

View File

@ -70,7 +70,7 @@
<script type="application/javascript" src="chrome://browser/content/aboutDialog.js"/>
<vbox>
<vbox id="aboutDialogContainer">
<hbox id="clientBox">
<vbox id="leftBox" flex="1"/>
<vbox id="rightBox" flex="1">

View File

@ -356,7 +356,9 @@
<key id="key_quitApplication" key="&quitApplicationCmdMac.key;" command="cmd_quitApplication" modifiers="accel"/>
#endif
#ifdef FULL_BROWSER_WINDOW
<key id="key_undoCloseTab" command="History:UndoCloseTab" key="&tabCmd.commandkey;" modifiers="accel,shift"/>
#endif
<key id="key_undoCloseWindow" command="History:UndoCloseWindow" key="&newNavigatorCmd.key;" modifiers="accel,shift"/>
#ifdef XP_GNOME

View File

@ -107,7 +107,9 @@
# All sets except for popupsets (commands, keys, stringbundles and broadcasters) *must* go into the
# browser-sets.inc file for sharing with hiddenWindow.xul.
#define FULL_BROWSER_WINDOW
#include browser-sets.inc
#undef FULL_BROWSER_WINDOW
<popupset id="mainPopupSet">
<menupopup id="tabContextMenu"

View File

@ -47,3 +47,11 @@ tabpanels {
.tab-throbber[busy] + .tab-icon-image {
display: none;
}
.closing-tabs-spacer {
pointer-events: none;
}
.tabbrowser-tabs:not(:hover) > .tabbrowser-arrowscrollbox > .closing-tabs-spacer {
-moz-transition: width .15s ease-out;
}

View File

@ -33,6 +33,8 @@
- Dão Gottwald <dao@mozilla.com>
- Paul OShannessy <paul@oshannessy.com>
- Rob Arnold <tellrob@gmail.com>
- Frank Yan <fyan@mozilla.com>
- Patrick Walton <pcwalton@mozilla.com>
-
- Alternatively, the contents of this file may be used under the terms of
- either the GNU General Public License Version 2 or later (the "GPL"), or
@ -234,6 +236,7 @@
this.moveTabTo(aTab, this._numPinnedTabs);
aTab.setAttribute("pinned", "true");
this.tabContainer._unlockTabSizing();
this.tabContainer._positionPinnedTabs();
this.tabContainer.adjustTabstrip();
@ -258,6 +261,7 @@
aTab.setAttribute("fadein", "true");
aTab.removeAttribute("pinned");
aTab.style.MozMarginStart = "";
this.tabContainer._unlockTabSizing();
this.tabContainer._positionPinnedTabs();
this.tabContainer.adjustTabstrip();
@ -1204,6 +1208,8 @@
t.setAttribute("onerror", "this.removeAttribute('image');");
t.className = "tabbrowser-tab";
this.tabContainer._unlockTabSizing();
// When overflowing, new tabs are scrolled into view smoothly, which
// doesn't go well together with the width transition. So we skip the
// transition in that case.
@ -1435,8 +1441,10 @@
<parameter name="aParams"/>
<body>
<![CDATA[
if (aParams)
if (aParams) {
var animate = aParams.animate;
var byMouse = aParams.byMouse;
}
// Handle requests for synchronously removing an already
// asynchronously closing tab.
@ -1451,6 +1459,11 @@
if (!this._beginRemoveTab(aTab, false, null, true))
return;
if (!aTab.pinned && !aTab.hidden && aTab._fullyOpen && byMouse)
this.tabContainer._lockTabSizing(aTab);
else
this.tabContainer._unlockTabSizing();
if (!animate /* the caller didn't opt in */ ||
isLastTab ||
aTab.pinned ||
@ -1463,6 +1476,7 @@
}
this._blurTab(aTab);
aTab.style.maxWidth = ""; // ensure that fade-out transition happens
aTab.removeAttribute("fadein");
setTimeout(function (tab, tabbrowser) {
@ -1637,6 +1651,10 @@
// update tab close buttons state
this.tabContainer.adjustTabstrip();
setTimeout(function(tabs) {
tabs._lastTabClosedByMouse = false;
}, 0, this.tabContainer);
}
// update first-tab/last-tab/beforeselected/afterselected attributes
@ -2412,6 +2430,7 @@
this.mPanelContainer.childNodes[0].id = uniqueId;
this.mCurrentTab.linkedPanel = uniqueId;
this.mCurrentTab._tPos = 0;
this.mCurrentTab._fullyOpen = true;
this.mCurrentTab.linkedBrowser = this.mCurrentBrowser;
// set up the shared autoscroll popup
@ -2591,25 +2610,28 @@
</implementation>
<handlers>
<handler event="underflow"><![CDATA[
if (event.detail == 0)
return; // Ignore vertical events
<handler event="underflow" phase="capturing"><![CDATA[
if (event.detail == 0)
return; // Ignore vertical events
var tabs = document.getBindingParent(this);
tabs.removeAttribute("overflow");
var tabs = document.getBindingParent(this);
tabs.removeAttribute("overflow");
tabs.tabbrowser._removingTabs.forEach(tabs.tabbrowser.removeTab,
tabs.tabbrowser);
if (tabs._lastTabClosedByMouse)
tabs._expandSpacerBy(this._scrollButtonDown.clientWidth);
tabs._positionPinnedTabs();
tabs.tabbrowser._removingTabs.forEach(tabs.tabbrowser.removeTab,
tabs.tabbrowser);
tabs._positionPinnedTabs();
]]></handler>
<handler event="overflow"><![CDATA[
if (event.detail == 0)
return; // Ignore vertical events
if (event.detail == 0)
return; // Ignore vertical events
var tabs = document.getBindingParent(this);
tabs.setAttribute("overflow", "true");
tabs._positionPinnedTabs();
var tabs = document.getBindingParent(this);
tabs.setAttribute("overflow", "true");
tabs._positionPinnedTabs();
]]></handler>
</handlers>
</binding>
@ -2640,6 +2662,8 @@
command="cmd_newNavigatorTab"
onclick="checkForMiddleClick(this, event);"
tooltiptext="&newTabButton.tooltip;"/>
<xul:spacer class="closing-tabs-spacer" anonid="closing-tabs-spacer"
style="width: 0;"/>
</xul:arrowscrollbox>
</content>
@ -2811,6 +2835,104 @@
]]></body>
</method>
<field name="_closingTabsSpacer">
document.getAnonymousElementByAttribute(this, "anonid", "closing-tabs-spacer");
</field>
<field name="_tabDefaultMaxWidth">NaN</field>
<field name="_lastTabClosedByMouse">false</field>
<field name="_hasTabTempMaxWidth">false</field>
<field name="_usingClosingTabsSpacer">false</field>
<!-- Try to keep the active tab's close button under the mouse cursor -->
<method name="_lockTabSizing">
<parameter name="aTab"/>
<body><![CDATA[
var tabs = this.tabbrowser.visibleTabs;
if (!tabs.length)
return;
var isEndTab = (aTab._tPos > tabs[tabs.length-1]._tPos);
var tabWidth = aTab.getBoundingClientRect().width;
if (!this._tabDefaultMaxWidth)
this._tabDefaultMaxWidth =
parseFloat(window.getComputedStyle(aTab).maxWidth);
this._lastTabClosedByMouse = true;
if (this.getAttribute("overflow") == "true") {
// Don't need to do anything if we're in overflow mode and aren't scrolled
// all the way to the right, or if we're closing the last tab.
if (isEndTab || !this.mTabstrip._scrollButtonDown.disabled)
return;
// If the tab has an owner that will become the active tab, the owner will
// be to the left of it, so we actually want the left tab to slide over.
// This can't be done as easily in non-overflow mode, so we don't bother.
if (aTab.owner)
return;
this._expandSpacerBy(tabWidth);
} else { // non-overflow mode
// Locking is neither in effect nor needed, so let tabs expand normally.
if (isEndTab && !this._hasTabTempMaxWidth)
return;
let numPinned = this.tabbrowser._numPinnedTabs;
// Force tabs to stay the same width, unless we're closing the last tab,
// which case we need to let them expand just enough so that the overall
// tabbar width is the same.
if (isEndTab) {
let numNormalTabs = tabs.length - numPinned;
tabWidth = tabWidth * (numNormalTabs + 1) / numNormalTabs;
if (tabWidth > this._tabDefaultMaxWidth)
tabWidth = this._tabDefaultMaxWidth;
}
tabWidth += "px";
for (let i = numPinned; i < tabs.length; i++) {
let tab = tabs[i];
tab.style.maxWidth = tabWidth;
if (!isEndTab) { // keep tabs the same width
tab.style.MozTransition = "none";
tab.clientTop; // flush styles to skip animation; see bug 649247
tab.style.MozTransition = "";
}
}
this._hasTabTempMaxWidth = true;
this.tabbrowser.addEventListener("mousemove", this, false);
window.addEventListener("mouseout", this, false);
}
]]></body>
</method>
<method name="_expandSpacerBy">
<parameter name="pixels"/>
<body><![CDATA[
let spacer = this._closingTabsSpacer;
spacer.style.width = parseFloat(spacer.style.width) + pixels + "px";
this._usingClosingTabsSpacer = true;
this.tabbrowser.addEventListener("mousemove", this, false);
window.addEventListener("mouseout", this, false);
]]></body>
</method>
<method name="_unlockTabSizing">
<body><![CDATA[
this.tabbrowser.removeEventListener("mousemove", this, false);
window.removeEventListener("mouseout", this, false);
if (this._hasTabTempMaxWidth) {
this._hasTabTempMaxWidth = false;
let tabs = this.tabbrowser.visibleTabs;
for (let i = 0; i < tabs.length; i++)
tabs[i].style.maxWidth = "";
}
if (this._usingClosingTabsSpacer) {
this._usingClosingTabsSpacer = false;
this._closingTabsSpacer.style.width = 0;
}
]]></body>
</method>
<method name="_positionPinnedTabs">
<body><![CDATA[
var numPinned = this.tabbrowser._numPinnedTabs;
@ -2864,6 +2986,16 @@
}
this.tabbrowser.updateWindowResizers();
break;
case "mouseout":
// If the "related target" (the node to which the pointer went) is not
// a child of the current document, the mouse just left the window.
let relatedTarget = aEvent.relatedTarget;
if (relatedTarget && relatedTarget.ownerDocument == document)
break;
case "mousemove":
if (document.getElementById("tabContextMenu").state != "open")
this._unlockTabSizing();
break;
}
]]></body>
</method>
@ -2999,8 +3131,9 @@
<method name="_handleNewTab">
<parameter name="tab"/>
<body><![CDATA[
if (tab.parentNode != this)
if (tab.parentNode != this || tab._fullyOpen)
return;
tab._fullyOpen = true;
this.adjustTabstrip();
@ -3019,7 +3152,7 @@
this.mTabstrip._updateScrollButtonsDisabledState();
]]></body>
</method>
<method name="_canAdvanceToTab">
<parameter name="aTab"/>
<body>
@ -3073,7 +3206,7 @@
if (event.target.localName == "tab") {
if (this.childNodes.length > 1 || !this._closeWindowWithLastTab)
this.tabbrowser.removeTab(event.target, {animate: true});
this.tabbrowser.removeTab(event.target, {animate: true, byMouse: true});
} else if (event.originalTarget.localName == "box") {
BrowserOpenTab();
} else {
@ -3399,7 +3532,7 @@
// Reset the "ignored click" flag
this._ignoredClick = false;
tabContainer.tabbrowser.removeTab(bindingParent, {animate: true});
tabContainer.tabbrowser.removeTab(bindingParent, {animate: true, byMouse: true});
tabContainer._blockDblClick = true;
/* XXXmano hack (see bug 343628):
@ -3487,6 +3620,7 @@
<field name="mOverCloseButton">false</field>
<field name="mCorrespondingMenuitem">null</field>
<field name="_fullyOpen">false</field>
</implementation>
<handlers>

View File

@ -15,7 +15,7 @@ browser.jar:
% style chrome://global/content/customizeToolbar.xul chrome://browser/skin/
* content/browser/aboutDialog.xul (content/aboutDialog.xul)
* content/browser/aboutDialog.js (content/aboutDialog.js)
content/browser/aboutDialog.css (content/aboutDialog.css)
* content/browser/aboutDialog.css (content/aboutDialog.css)
* content/browser/aboutRobots.xhtml (content/aboutRobots.xhtml)
* content/browser/aboutHome.xhtml (content/aboutHome.xhtml)
* content/browser/aboutHome.js (content/aboutHome.js)

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -1,4 +1,3 @@
#
# ***** BEGIN LICENSE BLOCK *****
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
#
@ -12,14 +11,14 @@
# for the specific language governing rights and limitations under the
# License.
#
# The Original Code is mozilla.org code.
# The Original Code is the Mozilla Installer code.
#
# The Initial Developer of the Original Code is
# Netscape Communications Corporation.
# Portions created by the Initial Developer are Copyright (C) 1998
# The Initial Developer of the Original Code is Mozilla Foundation
# Portions created by the Initial Developer are Copyright (C) 2006
# the Initial Developer. All Rights Reserved.
#
# Contributor(s):
# Robert Strong <robert.bugzilla@gmail.com>
#
# Alternatively, the contents of this file may be used under the terms of
# either the GNU General Public License Version 2 or later (the "GPL"), or
@ -35,15 +34,13 @@
#
# ***** END LICENSE BLOCK *****
DEPTH = ../../../../..
topsrcdir = @top_srcdir@
srcdir = @srcdir@
VPATH = @srcdir@
relativesrcdir = testing/mochitest/tests/SimpleTest/tests
include $(DEPTH)/config/autoconf.mk
include $(topsrcdir)/config/rules.mk
_CHROME_FILES = test_synthesizeDragStart.xul \
test_synthesizeDrop.xul \
$(NULL)
libs:: $(_CHROME_FILES)
$(INSTALL) $(foreach f,$^,"$f") $(DEPTH)/_tests/testing/mochitest/chrome/$(relativesrcdir)
# NSIS branding defines for Aurora builds.
# The official release build branding.nsi is located in other-license/branding/firefox/
# The unofficial build branding.nsi is located in browser/branding/unofficial/
# BrandFullNameInternal is used for some registry and file system values
# instead of BrandFullName and typically should not be modified.
!define BrandFullNameInternal "Aurora"
!define CompanyName "mozilla.org"
!define URLInfoAbout "http://www.mozilla.org"
!define URLUpdateInfo "http://www.mozilla.org/projects/firefox"

View File

@ -0,0 +1 @@
MOZ_APP_DISPLAYNAME=Aurora

Binary file not shown.

After

Width:  |  Height:  |  Size: 151 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

View File

@ -0,0 +1,10 @@
browser.jar:
% content branding %content/branding/ contentaccessible=yes
content/branding/about.png (about.png)
content/branding/about-background.png (about-background.png)
content/branding/about-logo.png (about-logo.png)
content/branding/about-wordmark.png (about-wordmark.png)
content/branding/icon48.png (icon48.png)
content/branding/icon64.png (icon64.png)
content/branding/icon128.png (../mozicon128.png)
content/branding/icon16.png (../default16.png)

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 355 KiB

View File

@ -11,15 +11,14 @@
# for the specific language governing rights and limitations under the
# License.
#
# The Original Code is mozilla.org code.
# The Original Code is the Mozilla Browser code.
#
# The Initial Developer of the Original Code is
# Netscape Communications Corporation.
# Portions created by the Initial Developer are Copyright (C) 2001
# Benjamin Smedberg <benjamin@smedbergs.us>
# Portions created by the Initial Developer are Copyright (C) 2004
# the Initial Developer. All Rights Reserved.
#
# Contributor(s):
# Brian Ryner <bryner@brianryner.com>
#
# Alternatively, the contents of this file may be used under the terms of
# either the GNU General Public License Version 2 or later (the "GPL"), or
@ -35,12 +34,14 @@
#
# ***** END LICENSE BLOCK *****
DEPTH = ../../..
topsrcdir = @top_srcdir@
srcdir = @srcdir@
VPATH = @srcdir@
DEPTH = ../../../..
topsrcdir = @top_srcdir@
srcdir = @srcdir@
VPATH = @srcdir@
relativesrcdir = browser/branding/aurora/locales
include $(DEPTH)/config/autoconf.mk
include $(topsrcdir)/config/rules.mk
DEFINES += -DAB_CD=$(AB_CD) -DMOZ_DISTRIBUTION_ID_UNQUOTED=$(MOZ_DISTRIBUTION_ID)
include $(topsrcdir)/config/rules.mk

View File

@ -0,0 +1,4 @@
<!ENTITY brandShortName "Aurora">
<!ENTITY brandFullName "Aurora">
<!ENTITY vendorShortName "Mozilla">
<!ENTITY trademarkInfo.part1 " ">

View File

@ -0,0 +1,3 @@
brandShortName=Aurora
brandFullName=Aurora
vendorShortName=Mozilla

View File

@ -0,0 +1,8 @@
#filter substitution
@AB_CD@.jar:
% locale branding @AB_CD@ %locale/branding/
# Aurora branding only exists in en-US
locale/branding/brand.dtd (en-US/brand.dtd)
* locale/branding/brand.properties (en-US/brand.properties)
* locale/branding/browserconfig.properties (browserconfig.properties)

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

View File

@ -0,0 +1,25 @@
// We don't have pages ready for this, so leave these prefs empty for now (bug 648330)
pref("startup.homepage_override_url","");
pref("startup.homepage_welcome_url","");
// The time interval between checks for a new version (in seconds)
// nightly=8 hours, official=24 hours
pref("app.update.interval", 28800);
// The time interval between the downloading of mar file chunks in the
// background (in seconds)
pref("app.update.download.backgroundInterval", 60);
// URL user can browse to manually if for some reason all update installation
// attempts fail.
pref("app.update.url.manual", "http://nightly.mozilla.org/");
// A default value for the "More information about this update" link
// supplied in the "An update is available" page of the update wizard.
pref("app.update.url.details", "http://www.mozilla.org/projects/%APP%/");
// Release notes and vendor URLs
pref("app.releaseNotesURL", "http://www.mozilla.org/projects/%APP%/%VERSION%/releasenotes/");
pref("app.vendorURL", "http://www.mozilla.org/projects/%APP%/");
// Search codes belong only in builds with official branding
pref("browser.search.param.yahoo-fr", "");
pref("browser.search.param.yahoo-fr-cjkt", ""); // now unused
pref("browser.search.param.yahoo-fr-ja", "");
pref("browser.search.param.yahoo-f-CN", "");

Binary file not shown.

After

Width:  |  Height:  |  Size: 232 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 151 KiB

View File

@ -40,7 +40,7 @@
# BrandFullNameInternal is used for some registry and file system values
# instead of BrandFullName and typically should not be modified.
!define BrandFullNameInternal "Minefield"
!define BrandFullNameInternal "Nightly"
!define CompanyName "mozilla.org"
!define URLInfoAbout "http://www.mozilla.org"
!define URLUpdateInfo "http://www.mozilla.org/projects/firefox"

View File

@ -1 +1 @@
MOZ_APP_DISPLAYNAME=Minefield
MOZ_APP_DISPLAYNAME=Nightly

Binary file not shown.

After

Width:  |  Height:  |  Size: 146 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.4 KiB

After

Width:  |  Height:  |  Size: 8.7 KiB

View File

@ -1,6 +1,7 @@
browser.jar:
% content branding %content/branding/ contentaccessible=yes
content/branding/about.png (about.png)
content/branding/about-background.png (about-background.png)
content/branding/about-logo.png (about-logo.png)
content/branding/about-wordmark.png (about-wordmark.png)
content/branding/icon48.png (icon48.png)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 722 B

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 355 KiB

View File

@ -1,4 +1,4 @@
<!ENTITY brandShortName "Minefield">
<!ENTITY brandFullName "Minefield">
<!ENTITY brandShortName "Nightly">
<!ENTITY brandFullName "Nightly">
<!ENTITY vendorShortName "Mozilla">
<!ENTITY trademarkInfo.part1 " ">

View File

@ -1,3 +1,3 @@
brandShortName=Minefield
brandFullName=Minefield
brandShortName=Nightly
brandFullName=Nightly
vendorShortName=Mozilla

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 151 KiB

After

Width:  |  Height:  |  Size: 151 KiB

View File

@ -0,0 +1,101 @@
# ***** BEGIN LICENSE BLOCK *****
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
#
# The contents of this file are subject to the Mozilla Public License Version
# 1.1 (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.mozilla.org/MPL/
#
# Software distributed under the License is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
# for the specific language governing rights and limitations under the
# License.
#
# The Original Code is mozilla.org code.
#
# The Initial Developer of the Original Code is Mozilla Foundation.
# Portions created by the Initial Developer are Copyright (C) 2009
# the Initial Developer. All Rights Reserved.
#
# Contributor(s):
# Justin Dolske <dolske@mozilla.com> (original author)
#
# Alternatively, the contents of this file may be used under the terms of
# either the GNU General Public License Version 2 or later (the "GPL"), or
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
# in which case the provisions of the GPL or the LGPL are applicable instead
# of those above. If you wish to allow use of your version of this file only
# under the terms of either the GPL or the LGPL, and not to allow others to
# use your version of this file under the terms of the MPL, indicate your
# decision by deleting the provisions above and replace them with the notice
# and other provisions required by the GPL or the LGPL. If you do not delete
# the provisions above, a recipient may use your version of this file under
# the terms of any one of the MPL, the GPL or the LGPL.
#
# ***** END LICENSE BLOCK *****
DEPTH = ../../..
topsrcdir = @top_srcdir@
srcdir = @srcdir@
VPATH = @srcdir@
include $(DEPTH)/config/autoconf.mk
DIRS = \
content \
locales \
$(NULL)
PREF_JS_EXPORTS = $(srcdir)/pref/firefox-branding.js
include $(topsrcdir)/config/rules.mk
WINDOWS_BRANDING_FILES = \
firefox.ico \
document.ico \
branding.nsi \
wizHeader.bmp \
wizHeaderRTL.bmp \
wizWatermark.bmp \
$(NULL)
ifdef MOZ_SPLASHSCREEN
WINDOWS_BRANDING_FILES += splash.bmp
endif
OSX_BRANDING_FILES = \
background.png \
firefox.icns \
disk.icns \
document.icns \
dsstore \
$(NULL)
LINUX_BRANDING_FILES = \
default16.png \
default32.png \
default48.png \
document.png \
mozicon128.png \
$(NULL)
OS2_BRANDING_FILES = \
firefox-os2.ico \
document-os2.ico \
$(NULL)
export::
$(NSINSTALL) -D $(DIST)/branding
ifeq ($(MOZ_WIDGET_TOOLKIT),windows)
cp $(addprefix $(srcdir)/, $(WINDOWS_BRANDING_FILES)) $(DIST)/branding/
endif
ifeq ($(MOZ_WIDGET_TOOLKIT),cocoa)
cp $(addprefix $(srcdir)/, $(OSX_BRANDING_FILES)) $(DIST)/branding/
endif
ifeq ($(MOZ_WIDGET_TOOLKIT),gtk2)
cp $(addprefix $(srcdir)/, $(LINUX_BRANDING_FILES)) $(DIST)/branding/
$(NSINSTALL) -D $(DIST)/install
endif
ifeq ($(OS_ARCH),OS2)
cp $(addprefix $(srcdir)/, $(OS2_BRANDING_FILES)) $(DIST)/branding/
endif

View File

Before

Width:  |  Height:  |  Size: 90 KiB

After

Width:  |  Height:  |  Size: 90 KiB

View File

@ -0,0 +1,11 @@
# Branding Makefile
# - jars chrome artwork
DEPTH = ../../../..
topsrcdir = @top_srcdir@
srcdir = @srcdir@
VPATH = @srcdir@
include $(DEPTH)/config/autoconf.mk
include $(topsrcdir)/config/rules.mk

View File

Before

Width:  |  Height:  |  Size: 54 KiB

After

Width:  |  Height:  |  Size: 54 KiB

View File

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

View File

Before

Width:  |  Height:  |  Size: 48 KiB

After

Width:  |  Height:  |  Size: 48 KiB

View File

Before

Width:  |  Height:  |  Size: 5.5 KiB

After

Width:  |  Height:  |  Size: 5.5 KiB

View File

Before

Width:  |  Height:  |  Size: 9.2 KiB

After

Width:  |  Height:  |  Size: 9.2 KiB

View File

Before

Width:  |  Height:  |  Size: 972 B

After

Width:  |  Height:  |  Size: 972 B

View File

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

Before

Width:  |  Height:  |  Size: 75 KiB

After

Width:  |  Height:  |  Size: 75 KiB

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