Merge m-c to fx-team.

This commit is contained in:
Ryan VanderMeulen 2013-07-19 20:57:44 -04:00
commit a482c7520a
239 changed files with 3308 additions and 2764 deletions

View File

@ -112,7 +112,7 @@ static nsRoleMapEntry sWAIRoleMaps[] =
eNoLiveAttr,
eTableCell,
kNoReqStates,
eARIASelectable,
eARIASelectableIfDefined,
eARIAReadonlyOrEditableIfDefined
},
{ // combobox
@ -463,7 +463,7 @@ static nsRoleMapEntry sWAIRoleMaps[] =
eNoLiveAttr,
eTableCell,
kNoReqStates,
eARIASelectable,
eARIASelectableIfDefined,
eARIAReadonlyOrEditableIfDefined
},
{ // scrollbar

View File

@ -300,6 +300,16 @@ aria::MapToState(EStateRule aRule, dom::Element* aElement, uint64_t* aState)
return true;
}
case eARIASelectableIfDefined:
{
static const TokenTypeData data(
nsGkAtoms::aria_selected, eBoolType,
states::SELECTABLE, states::SELECTED);
MapTokenType(aElement, aState, data);
return true;
}
case eReadonlyUntilEditable:
{
if (!(*aState & states::EDITABLE))

View File

@ -42,6 +42,7 @@ enum EStateRule
eARIAReadonlyOrEditableIfDefined,
eARIARequired,
eARIASelectable,
eARIASelectableIfDefined,
eReadonlyUntilEditable,
eIndeterminateIfNoValue
};

View File

@ -465,8 +465,8 @@ ARIAGridAccessible::SetARIASelected(Accessible* aAccessible,
rv = content->SetAttr(kNameSpaceID_None, nsGkAtoms::aria_selected,
NS_LITERAL_STRING("true"), aNotify);
else
rv = content->UnsetAttr(kNameSpaceID_None,
nsGkAtoms::aria_selected, aNotify);
rv = content->SetAttr(kNameSpaceID_None, nsGkAtoms::aria_selected,
NS_LITERAL_STRING("false"), aNotify);
NS_ENSURE_SUCCESS(rv, rv);

View File

@ -361,7 +361,8 @@ function testTableSelection(aIdentifier, aCellsArray, aMsg)
for (var colIdx = 0; colIdx < colsCount; colIdx++) {
var isColSelected = true;
for (var rowIdx = 0; rowIdx < rowCount; rowIdx++) {
if (aCellsArray[rowIdx][colIdx] == false) {
if (aCellsArray[rowIdx][colIdx] == false ||
aCellsArray[rowIdx][colIdx] == undefined) {
isColSelected = false;
break;
}
@ -401,7 +402,8 @@ function testTableSelection(aIdentifier, aCellsArray, aMsg)
for (var rowIdx = 0; rowIdx < rowCount; rowIdx++) {
var isRowSelected = true;
for (var colIdx = 0; colIdx < colsCount; colIdx++) {
if (aCellsArray[rowIdx][colIdx] == false) {
if (aCellsArray[rowIdx][colIdx] == false ||
aCellsArray[rowIdx][colIdx] == undefined) {
isRowSelected = false;
break;
}
@ -442,7 +444,8 @@ function testTableSelection(aIdentifier, aCellsArray, aMsg)
if (aCellsArray[rowIdx][colIdx] & kSpanned)
continue;
is(acc.isCellSelected(rowIdx, colIdx), aCellsArray[rowIdx][colIdx],
var isSelected = aCellsArray[rowIdx][colIdx] == true;
is(acc.isCellSelected(rowIdx, colIdx), isSelected,
msg + "Wrong selection state of cell at " + rowIdx + " row and " +
colIdx + " column for " + prettyName(aIdentifier));
@ -496,7 +499,9 @@ function testTableSelection(aIdentifier, aCellsArray, aMsg)
var cell = acc.getCellAt(rowIdx, colIdx);
var isSel = aCellsArray[rowIdx][colIdx];
if (isSel)
if (isSel == undefined)
testStates(cell, 0, 0, STATE_SELECTABLE | STATE_SELECTED);
else if (isSel == true)
testStates(cell, STATE_SELECTED);
else
testStates(cell, STATE_SELECTABLE, 0, STATE_SELECTED);

View File

@ -54,6 +54,21 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=410052
testUnselectTableColumn("grid2", 0, cellsArray);
testUnselectTableRow("grid2", 0, cellsArray);
//////////////////////////////////////////////////////////////////////////
// ARIA grid (column and row headers)
cellsArray =
[
[ undefined, true, false],
[ undefined, true, false]
];
testTableSelection("grid3", cellsArray);
testSelectTableColumn("grid3", 0, cellsArray);
testSelectTableRow("grid3", 0, cellsArray);
testUnselectTableColumn("grid3", 0, cellsArray);
testUnselectTableRow("grid3", 0, cellsArray);
SimpleTest.finish();
}
@ -65,10 +80,13 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=410052
<a target="_blank"
title="implement nsIAccessibleTable selection methods for ARIA grids"
href="https://bugzilla.mozilla.org/show_bug.cgi?id=410052">Mozilla Bug 410052</a>
href="https://bugzilla.mozilla.org/show_bug.cgi?id=410052">Bug 410052</a>
<a target="_blank"
title="nsHTMLTableCellAccessible is used in dojo's crazy ARIA grid"
href="https://bugzilla.mozilla.org/show_bug.cgi?id=513848">Mozilla Bug 513848</a>
href="https://bugzilla.mozilla.org/show_bug.cgi?id=513848">Bug 513848</a>
<a target="_blank"
title="ARIA columnheader/rowheader shouldn't be selectable by default"
href="https://bugzilla.mozilla.org/show_bug.cgi?id=888247">Bug 888247</a>
<p id="display"></p>
<div id="content" style="display: none"></div>
@ -112,8 +130,8 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=410052
<div role="row">
<table role="presentation">
<tr>
<td role="columnheader">header1</td>
<td role="columnheader">header2</td>
<td role="columnheader" aria-selected="false">header1</td>
<td role="columnheader" aria-selected="false">header2</td>
</tr>
</table>
</div>
@ -127,5 +145,17 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=410052
</div>
</div>
<div role="grid" id="grid3">
<div role="row">
<div role="columnheader" id="colheader_default">col header1</div>
<div role="columnheader" id="colheader_selected" aria-selected="true">col header2</div>
<div role="columnheader" id="colheader_notselected" aria-selected="false">col header3</div>
</div>
<div role="row">
<div role="rowheader" id="rowheader_default">row header1</div>
<div role="rowheader" id="rowheader_selected" aria-selected="true">row header2</div>
<div role="rowheader" id="rowheader_notselected" aria-selected="false">row header3</div>
</div>
</div>
</body>
</html>

View File

@ -217,14 +217,21 @@ var gPluginHandler = {
},
handleEvent : function(event) {
let plugin = event.target;
let doc = plugin.ownerDocument;
// We're expecting the target to be a plugin.
if (!(plugin instanceof Ci.nsIObjectLoadingContent))
return;
let plugin;
let doc;
let eventType = event.type;
if (eventType === "PluginRemoved") {
doc = event.target;
}
else {
plugin = event.target;
doc = plugin.ownerDocument;
if (!(plugin instanceof Ci.nsIObjectLoadingContent))
return;
}
if (eventType == "PluginBindingAttached") {
// The plugin binding fires this event when it is created.
// As an untrusted event, ensure that this object actually has a binding
@ -243,6 +250,7 @@ var gPluginHandler = {
}
}
let shouldShowNotification = false;
let browser = gBrowser.getBrowserForDocument(doc.defaultView.top.document);
switch (eventType) {
@ -268,7 +276,7 @@ var gPluginHandler = {
case "PluginBlocklisted":
case "PluginOutdated":
this._showClickToPlayNotification(browser);
shouldShowNotification = true;
break;
case "PluginVulnerableUpdatable":
@ -290,7 +298,7 @@ var gPluginHandler = {
let vulnerabilityText = doc.getAnonymousElementByAttribute(plugin, "anonid", "vulnerabilityStatus");
vulnerabilityText.textContent = vulnerabilityString;
}
this._showClickToPlayNotification(browser);
shouldShowNotification = true;
break;
case "PluginPlayPreview":
@ -300,20 +308,27 @@ var gPluginHandler = {
case "PluginDisabled":
let manageLink = doc.getAnonymousElementByAttribute(plugin, "class", "managePluginsLink");
this.addLinkClickCallback(manageLink, "managePlugins");
this._showClickToPlayNotification(browser);
shouldShowNotification = true;
break;
case "PluginInstantiated":
this._showClickToPlayNotification(browser);
case "PluginRemoved":
shouldShowNotification = true;
break;
}
// Hide the in-content UI if it's too big. The crashed plugin handler already did this.
if (eventType != "PluginCrashed") {
if (eventType != "PluginCrashed" && eventType != "PluginRemoved") {
let overlay = doc.getAnonymousElementByAttribute(plugin, "class", "mainBox");
if (overlay != null && this.isTooSmall(plugin, overlay))
overlay.style.visibility = "hidden";
}
// Only show the notification after we've done the isTooSmall check, so
// that the notification can decide whether to show the "alert" icon
if (shouldShowNotification) {
this._showClickToPlayNotification(browser);
}
},
isKnownPlugin: function PH_isKnownPlugin(objLoadingContent) {
@ -686,18 +701,12 @@ var gPluginHandler = {
switch (aNewState) {
case "allownow":
if (aPluginInfo.fallbackType == Ci.nsIObjectLoadingContent.PLUGIN_ACTIVE) {
return;
}
permission = Ci.nsIPermissionManager.ALLOW_ACTION;
expireType = Ci.nsIPermissionManager.EXPIRE_SESSION;
expireTime = Date.now() + Services.prefs.getIntPref(this.PREF_SESSION_PERSIST_MINUTES) * 60 * 1000;
break;
case "allowalways":
if (aPluginInfo.fallbackType == Ci.nsIObjectLoadingContent.PLUGIN_ACTIVE) {
return;
}
permission = Ci.nsIPermissionManager.ALLOW_ACTION;
expireType = Ci.nsIPermissionManager.EXPIRE_TIME;
expireTime = Date.now() +
@ -705,25 +714,28 @@ var gPluginHandler = {
break;
case "block":
if (aPluginInfo.fallbackType != Ci.nsIObjectLoadingContent.PLUGIN_ACTIVE) {
return;
}
permission = Ci.nsIPermissionManager.PROMPT_ACTION;
expireType = Ci.nsIPermissionManager.EXPIRE_NEVER;
expireTime = 0;
break;
// In case a plugin has already been allowed in another tab, the "continue allowing" button
// shouldn't change any permissions but should run the plugin-enablement code below.
case "continue":
break;
default:
Cu.reportError(Error("Unexpected plugin state: " + aNewState));
return;
}
let browser = aNotification.browser;
Services.perms.add(browser.currentURI, aPluginInfo.permissionString,
permission, expireType, expireTime);
if (aNewState != "continue") {
Services.perms.add(browser.currentURI, aPluginInfo.permissionString,
permission, expireType, expireTime);
if (aNewState == "block") {
return;
if (aNewState == "block") {
return;
}
}
// Manually activate the plugins that would have been automatically
@ -749,6 +761,7 @@ var gPluginHandler = {
let notification = PopupNotifications.getNotification("click-to-play-plugins", aBrowser);
let contentWindow = aBrowser.contentWindow;
let contentDoc = aBrowser.contentDocument;
let cwu = contentWindow.QueryInterface(Ci.nsIInterfaceRequestor)
.getInterface(Ci.nsIDOMWindowUtils);
let plugins = cwu.plugins;
@ -759,15 +772,25 @@ var gPluginHandler = {
return;
}
let haveVulnerablePlugin = plugins.some(function(plugin) {
let icon = 'plugins-notification-icon';
for (let plugin of plugins) {
let fallbackType = plugin.pluginFallbackType;
return fallbackType == plugin.PLUGIN_VULNERABLE_UPDATABLE ||
fallbackType == plugin.PLUGIN_VULNERABLE_NO_UPDATE ||
fallbackType == plugin.PLUGIN_BLOCKLISTED;
});
if (fallbackType == plugin.PLUGIN_VULNERABLE_UPDATABLE ||
fallbackType == plugin.PLUGIN_VULNERABLE_NO_UPDATE ||
fallbackType == plugin.PLUGIN_BLOCKLISTED) {
icon = 'blocked-plugins-notification-icon';
break;
}
if (fallbackType == plugin.PLUGIN_CLICK_TO_PLAY) {
let overlay = contentDoc.getAnonymousElementByAttribute(plugin, "class", "mainBox");
if (!overlay || overlay.style.visibility == 'hidden') {
icon = 'alert-plugins-notification-icon';
}
}
}
let dismissed = notification ? notification.dismissed : true;
// Always show the doorhanger if the anchor is not available.
if (!isElementVisible(gURLBar) || aPrimaryPlugin)
if (aPrimaryPlugin)
dismissed = false;
let primaryPluginPermission = null;
@ -780,7 +803,6 @@ var gPluginHandler = {
eventCallback: this._clickToPlayNotificationEventCallback,
primaryPlugin: primaryPluginPermission
};
let icon = haveVulnerablePlugin ? "blocked-plugins-notification-icon" : "plugins-notification-icon";
PopupNotifications.show(aBrowser, "click-to-play-plugins",
"", icon,
null, null, options);

View File

@ -755,6 +755,7 @@ var gBrowserInit = {
gBrowser.addEventListener("PluginCrashed", gPluginHandler, true);
gBrowser.addEventListener("PluginOutdated", gPluginHandler, true);
gBrowser.addEventListener("PluginInstantiated", gPluginHandler, true);
gBrowser.addEventListener("PluginRemoved", gPluginHandler, true);
gBrowser.addEventListener("NewPluginInstalled", gPluginHandler.newPluginInstalled, true);

View File

@ -505,6 +505,7 @@
<image id="webapps-notification-icon" class="notification-anchor-icon" role="button"/>
<image id="plugins-notification-icon" class="notification-anchor-icon" role="button"/>
<image id="web-notifications-notification-icon" class="notification-anchor-icon" role="button"/>
<image id="alert-plugins-notification-icon" class="notification-anchor-icon" role="button"/>
<image id="blocked-plugins-notification-icon" class="notification-anchor-icon" role="button"/>
<image id="plugin-install-notification-icon" class="notification-anchor-icon" role="button"/>
<image id="mixed-content-blocked-notification-icon" class="notification-anchor-icon" role="button"/>

View File

@ -2098,8 +2098,9 @@
if (otherFindBar &&
otherFindBar.findMode == otherFindBar.FIND_NORMAL) {
let ourFindBar = this.getFindBar(aOurTab);
ourFindBar.hidden = otherFindBar.hidden;
ourFindBar._findField.value = otherFindBar._findField.value;
if (!otherFindBar.hidden)
ourFindBar.onFindCommand();
}
// Finish tearing down the tab that's going away.

View File

@ -98,6 +98,8 @@ function checkNewWindow() {
ok(!newWindow.gFindBar.hidden, "New window shows find bar!");
is(newWindow.gFindBar._findField.value, texts[1],
"New window find bar has correct find value!");
ok(!newWindow.gFindBar.getElement("find-next").disabled,
"New window findbar has enabled buttons!");
newWindow.close();
finish();
}

View File

@ -1574,12 +1574,19 @@
this.appendChild(item);
this._items.push(item);
}
if (this.notification.options.centerActions.length == 1) {
this._setState(this._states.SINGLE);
} else if (this.notification.options.primaryPlugin) {
this._setState(this._states.MULTI_COLLAPSED);
} else {
this._setState(this._states.MULTI_EXPANDED);
switch (this.notification.options.centerActions.length) {
case 0:
PopupNotifications._dismiss();
break;
case 1:
this._setState(this._states.SINGLE);
break;
default:
if (this.notification.options.primaryPlugin) {
this._setState(this._states.MULTI_COLLAPSED);
} else {
this._setState(this._states.MULTI_EXPANDED);
}
}
]]></constructor>
<method name="_setState">
@ -1645,7 +1652,7 @@
button2 = {
label: "pluginContinue.label",
accesskey: "pluginContinue.accesskey",
action: "_cancel",
action: "_singleContinue",
default: true
};
switch (action.blocklistState) {
@ -1819,6 +1826,14 @@
this._cancel();
]]></body>
</method>
<method name="_singleContinue">
<body><![CDATA[
gPluginHandler._updatePluginPermission(this.notification,
this.notification.options.centerActions[0],
"continue");
this._cancel();
]]></body>
</method>
<method name="_multiAccept">
<body><![CDATA[
for (let item of this._items) {

View File

@ -1285,11 +1285,33 @@ toolbar[iconsize="small"] #webrtc-status-button {
}
#plugins-notification-icon {
list-style-image: url(chrome://mozapps/skin/plugins/pluginGeneric-16.png);
list-style-image: url(chrome://browser/skin/notification-pluginNormal.png);
}
#alert-plugins-notification-icon {
list-style-image: url(chrome://browser/skin/notification-pluginAlert.png);
}
#blocked-plugins-notification-icon {
list-style-image: url(chrome://mozapps/skin/plugins/notifyPluginBlocked.png);
list-style-image: url(chrome://browser/skin/notification-pluginBlocked.png);
}
#plugins-notification-icon,
#alert-plugins-notification-icon,
#blocked-plugins-notification-icon {
-moz-image-region: rect(0, 16px, 16px, 0);
}
#plugins-notification-icon:hover,
#alert-plugins-notification-icon:hover,
#blocked-plugins-notification-icon:hover {
-moz-image-region: rect(0, 32px, 16px, 16px);
}
#plugins-notification-icon:active,
#alert-plugins-notification-icon:active,
#blocked-plugins-notification-icon:active {
-moz-image-region: rect(0, 48px, 16px, 32px);
}
#plugin-install-notification-icon {

View File

@ -235,3 +235,6 @@ browser.jar:
#endif
skin/classic/browser/webapps-16.png
skin/classic/browser/webapps-64.png
skin/classic/browser/notification-pluginNormal.png (../shared/plugins/notification-pluginNormal.png)
skin/classic/browser/notification-pluginAlert.png (../shared/plugins/notification-pluginAlert.png)
skin/classic/browser/notification-pluginBlocked.png (../shared/plugins/notification-pluginBlocked.png)

View File

@ -3144,16 +3144,64 @@ toolbarbutton.chevron > .toolbarbutton-menu-dropmarker {
}
#plugins-notification-icon {
list-style-image: url(chrome://mozapps/skin/plugins/pluginGeneric-16.png);
list-style-image: url(chrome://browser/skin/notification-pluginNormal.png);
}
#alert-plugins-notification-icon {
list-style-image: url(chrome://browser/skin/notification-pluginAlert.png);
}
#blocked-plugins-notification-icon {
list-style-image: url(chrome://mozapps/skin/plugins/notifyPluginBlocked.png);
list-style-image: url(chrome://browser/skin/notification-pluginBlocked.png);
}
#plugins-notification-icon,
#alert-plugins-notification-icon,
#blocked-plugins-notification-icon {
-moz-image-region: rect(0, 16px, 16px, 0);
}
#plugins-notification-icon:hover,
#alert-plugins-notification-icon:hover,
#blocked-plugins-notification-icon:hover {
-moz-image-region: rect(0, 32px, 16px, 16px);
}
#plugins-notification-icon:active,
#alert-plugins-notification-icon:active,
#blocked-plugins-notification-icon:active {
-moz-image-region: rect(0, 48px, 16px, 32px);
}
@media (min-resolution: 2dppx) {
#plugins-notification-icon {
list-style-image: url(chrome://browser/skin/notification-pluginNormal@2x.png);
}
#alert-plugins-notification-icon {
list-style-image: url(chrome://browser/skin/notification-pluginAlert@2x.png);
}
#blocked-plugins-notification-icon {
list-style-image: url(chrome://mozapps/skin/plugins/pluginBlocked.png);
list-style-image: url(chrome://browser/skin/notification-pluginBlocked@2x.png);
}
#plugins-notification-icon,
#alert-plugins-notification-icon,
#blocked-plugins-notification-icon {
-moz-image-region: rect(0, 32px, 32px, 0);
}
#plugins-notification-icon:hover,
#alert-plugins-notification-icon:hover,
#blocked-plugins-notification-icon:hover {
-moz-image-region: rect(0, 64px, 32px, 32px);
}
#plugins-notification-icon:active,
#alert-plugins-notification-icon:active,
#blocked-plugins-notification-icon:active {
-moz-image-region: rect(0, 96px, 32px, 64px);
}
}

View File

@ -331,6 +331,12 @@ browser.jar:
skin/classic/browser/webapps-16.png
skin/classic/browser/webapps-16@2x.png
skin/classic/browser/webapps-64.png
skin/classic/browser/notification-pluginNormal.png (../shared/plugins/notification-pluginNormal.png)
skin/classic/browser/notification-pluginAlert.png (../shared/plugins/notification-pluginAlert.png)
skin/classic/browser/notification-pluginBlocked.png (../shared/plugins/notification-pluginBlocked.png)
skin/classic/browser/notification-pluginNormal@2x.png (../shared/plugins/notification-pluginNormal@2x.png)
skin/classic/browser/notification-pluginAlert@2x.png (../shared/plugins/notification-pluginAlert@2x.png)
skin/classic/browser/notification-pluginBlocked@2x.png (../shared/plugins/notification-pluginBlocked@2x.png)
% override chrome://browser/skin/keyhole-circle.png chrome://browser/skin/lion/keyhole-circle.png os=Darwin osversion>=10.7
% override chrome://browser/skin/Toolbar.png chrome://browser/skin/lion/Toolbar.png os=Darwin osversion>=10.7

Binary file not shown.

After

Width:  |  Height:  |  Size: 648 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 968 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 340 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 469 B

View File

@ -2537,11 +2537,33 @@ toolbarbutton.bookmark-item[dragover="true"][open="true"] {
}
#plugins-notification-icon {
list-style-image: url(chrome://mozapps/skin/plugins/pluginGeneric-16.png);
list-style-image: url(chrome://browser/skin/notification-pluginNormal.png);
}
#alert-plugins-notification-icon {
list-style-image: url(chrome://browser/skin/notification-pluginAlert.png);
}
#blocked-plugins-notification-icon {
list-style-image: url(chrome://mozapps/skin/plugins/notifyPluginBlocked.png);
list-style-image: url(chrome://browser/skin/notification-pluginBlocked.png);
}
#plugins-notification-icon,
#alert-plugins-notification-icon,
#blocked-plugins-notification-icon {
-moz-image-region: rect(0, 16px, 16px, 0);
}
#plugins-notification-icon:hover,
#alert-plugins-notification-icon:hover,
#blocked-plugins-notification-icon:hover {
-moz-image-region: rect(0, 32px, 16px, 16px);
}
#plugins-notification-icon:active,
#alert-plugins-notification-icon:active,
#blocked-plugins-notification-icon:active {
-moz-image-region: rect(0, 48px, 16px, 32px);
}
#plugin-install-notification-icon {

View File

@ -72,6 +72,9 @@ browser.jar:
skin/classic/browser/urlbar-history-dropmarker.png
skin/classic/browser/webapps-16.png
skin/classic/browser/webapps-64.png
skin/classic/browser/notification-pluginNormal.png (../shared/plugins/notification-pluginNormal.png)
skin/classic/browser/notification-pluginAlert.png (../shared/plugins/notification-pluginAlert.png)
skin/classic/browser/notification-pluginBlocked.png (../shared/plugins/notification-pluginBlocked.png)
skin/classic/browser/webRTC-shareDevice-16.png
skin/classic/browser/webRTC-shareDevice-64.png
skin/classic/browser/webRTC-sharingDevice-16.png
@ -326,6 +329,9 @@ browser.jar:
skin/classic/aero/browser/urlbar-history-dropmarker.png
skin/classic/aero/browser/webapps-16.png
skin/classic/aero/browser/webapps-64.png
skin/classic/aero/browser/notification-pluginNormal.png (../shared/plugins/notification-pluginNormal.png)
skin/classic/aero/browser/notification-pluginAlert.png (../shared/plugins/notification-pluginAlert.png)
skin/classic/aero/browser/notification-pluginBlocked.png (../shared/plugins/notification-pluginBlocked.png)
skin/classic/aero/browser/webRTC-shareDevice-16.png
skin/classic/aero/browser/webRTC-shareDevice-64.png
skin/classic/aero/browser/webRTC-sharingDevice-16.png

View File

@ -31,7 +31,7 @@ AC_LANG_RESTORE
AC_MSG_RESULT($ac_have_gcc_pr39608)
if test "$ac_have_gcc_pr39608" = "yes"; then
echo This compiler would fail to build firefox, plase upgrade.
echo This compiler would fail to build firefox, please upgrade.
exit 1
fi
])

View File

@ -42,7 +42,7 @@ AC_LANG_RESTORE
if test "$ac_have_llvm_pr8927" = "yes"; then
AC_MSG_RESULT(yes)
echo This compiler would miscompile firefox, plase upgrade.
echo This compiler would miscompile firefox, please upgrade.
echo see http://developer.mozilla.org/en-US/docs/Developer_Guide/Build_Instructions/Mac_OS_X_Prerequisites
echo for more information.
exit 1

View File

@ -139,7 +139,7 @@ recommended.
=head1 LICENSE
MPL 1.1/GPL 2.0/LGPL 2.1. Your choice
MPL 2.
=head1 AUTHOR

View File

@ -225,7 +225,7 @@ later are recommended.
=head1 LICENSE
MPL 1.1/GPL 2.0/LGPL 2.1. Your choice.
MPL 2.
=head1 AUTHOR

View File

@ -38,43 +38,9 @@
var _sunSpiderStartDate = new Date();
/* ***** 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 XML-RPC Client component.
*
* The Initial Developer of the Original Code is
* Digital Creations 2, Inc.
* Portions created by the Initial Developer are Copyright (C) 2000
* the Initial Developer. All Rights Reserved.
*
* Contributor(s):
* Martijn Pieters <mj@digicool.com> (original author)
* Samuel Sieb <samuel@sieb.net>
*
* 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 ***** */
/* 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/. */
// From: http://lxr.mozilla.org/mozilla/source/extensions/xml-rpc/src/nsXmlRpcClient.js#956

View File

@ -196,26 +196,36 @@ CheckPluginStopEvent::Run()
*/
class nsSimplePluginEvent : public nsRunnable {
public:
nsSimplePluginEvent(nsIContent* aContent, const nsAString &aEvent)
: mContent(aContent),
mEvent(aEvent)
{}
nsSimplePluginEvent(nsIContent* aTarget, const nsAString &aEvent)
: mTarget(aTarget)
, mDocument(aTarget->GetCurrentDoc())
, mEvent(aEvent)
{
}
nsSimplePluginEvent(nsIDocument* aTarget, const nsAString& aEvent)
: mTarget(aTarget)
, mDocument(aTarget)
, mEvent(aEvent)
{
}
~nsSimplePluginEvent() {}
NS_IMETHOD Run();
private:
nsCOMPtr<nsIContent> mContent;
nsCOMPtr<nsISupports> mTarget;
nsCOMPtr<nsIDocument> mDocument;
nsString mEvent;
};
NS_IMETHODIMP
nsSimplePluginEvent::Run()
{
LOG(("OBJLC [%p]: nsSimplePluginEvent firing event \"%s\"", mContent.get(),
LOG(("OBJLC [%p]: nsSimplePluginEvent firing event \"%s\"", mTarget.get(),
mEvent.get()));
nsContentUtils::DispatchTrustedEvent(mContent->GetDocument(), mContent,
nsContentUtils::DispatchTrustedEvent(mDocument, mTarget,
mEvent, true, true);
return NS_OK;
}
@ -674,7 +684,9 @@ nsObjectLoadingContent::UnbindFromTree(bool aDeep, bool aNullParent)
/// would keep the docshell around, but trash the frameloader
UnloadObject();
}
nsCOMPtr<nsIRunnable> ev = new nsSimplePluginEvent(thisContent->GetCurrentDoc(),
NS_LITERAL_STRING("PluginRemoved"));
NS_DispatchToCurrentThread(ev);
}
nsObjectLoadingContent::nsObjectLoadingContent()

View File

@ -4,13 +4,7 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#include "nsIDOMWebGLRenderingContext.h"
#include "WebGL2Context.h"
#define DUMMY(func,rtype) nsresult func (rtype ** aResult) { return NS_ERROR_FAILURE; }
DUMMY(NS_NewCanvasRenderingContextWebGL, nsIDOMWebGLRenderingContext)
WebGL2Context * WebGL2Context::Create()
{
return nullptr;
}

View File

@ -31,7 +31,9 @@
#include "nsNetUtil.h"
#include "nsStreamUtils.h"
#ifdef MOZ_WEBGL
#include "../canvas/src/WebGL2Context.h"
#endif
using namespace mozilla::layers;
@ -684,8 +686,9 @@ HTMLCanvasElement::GetContextHelper(const nsAString& aContextId,
ctx.forget(aContext);
return NS_OK;
}
else if (WebGL2Context::IsSupported() &&
aContextId.EqualsLiteral("experimental-webgl2"))
#ifdef MOZ_WEBGL
if (WebGL2Context::IsSupported() &&
aContextId.EqualsLiteral("experimental-webgl2"))
{
Telemetry::Accumulate(Telemetry::CANVAS_WEBGL_USED, 1);
nsRefPtr<WebGL2Context> ctx = WebGL2Context::Create();
@ -698,6 +701,7 @@ HTMLCanvasElement::GetContextHelper(const nsAString& aContextId,
ctx.forget(aContext);
return NS_OK;
}
#endif
NS_ConvertUTF16toUTF8 ctxId(aContextId);

View File

@ -2097,8 +2097,6 @@ HTMLMediaElement::Play(ErrorResult& aRv)
}
}
SetPlaybackRate(mDefaultPlaybackRate);
mPaused = false;
mAutoplaying = false;
// We changed mPaused and mAutoplaying which can affect AddRemoveSelfReference

View File

@ -106,7 +106,6 @@ MOCHITEST_FILES = \
test_reactivate.html \
test_readyState.html \
test_replay_metadata.html \
test_seek.html \
test_seek2.html \
test_seek_out_of_range.html \
test_source.html \
@ -140,6 +139,7 @@ MOCHITEST_FILES = \
test_VideoPlaybackQuality.html \
test_VideoPlaybackQuality_disabled.html \
test_webvtt_disabled.html \
test_playback_rate_playpause.html \
$(NULL)
# Disabled on Windows for frequent intermittent failures
@ -154,14 +154,6 @@ $(filter disabled-on-windows-for-timeouts--bug-752796, test_streams_element_capt
$(filter disabled-on-windows-for-timeouts--bug-752796, test_streams_element_capture_reset.html)
endif
ifneq ($(MOZ_WIDGET_TOOLKIT),gtk2)
MOCHITEST_FILES += \
test_playback_rate.html \
$(NULL)
else
$(filter disabled-temporarily--bug-814533, test_playback_rate.html)
endif
# Don't run in suite
ifndef MOZ_SUITE
MOCHITEST_FILES += test_play_twice.html
@ -187,6 +179,10 @@ endif
# test_bug465498.html
# Bug 707777:
# test_bug493187.html
# Bug 832678, bug 795271, and bug 857424
# test_seek.html
# Bug 832768, bug 814533, bug 840742
# test_playback_rate.html
# sample files
MOCHITEST_FILES += \

View File

@ -38,7 +38,6 @@ var gProgressTests = [
// Used by test_played.html
var gPlayedTests = [
{ name:"big.wav", type:"audio/x-wav", duration:9.0 },
{ name:"sound.ogg", type:"audio/ogg", duration:4.0 },
{ name:"seek.ogv", type:"video/ogg", duration:3.966 },
{ name:"seek.webm", type:"video/webm", duration:3.966 },
{ name:"gizmo.mp4", type:"video/mp4", duration:5.56 },

View File

@ -113,40 +113,7 @@ function onended(e) {
ok(!t.muted, "The audio should be muted when playing at high speed, but should not appear as such.");
is(t.currentTime, t.duration, "Current time should be equal to the duration (not change by playback rate).");
}
test_defaultPlaybackRate(e);
}
function test_defaultPlaybackRate(e) {
var t = e.target;
t.currentTime = 0.0;
t.defaultPlaybackRate = SLOW_RATE;
t.addEventListener("timeupdate", ontimeupdate_defaultPlaybackRate);
t.startTimestamp = Date.now();
t.play();
}
function ontimeupdate_defaultPlaybackRate(e) {
var t = e.target;
if (t.currentTime > t.duration / 10) {
t.oldCurrentTime = t.currentTime;
t.timestamp = Date.now();
var delta = t.oldCurrentTime,
delta_wallclock = (t.timestamp - t.startTimestamp - t.bufferingTime) / 1000;
t.bufferingTime = 0;
is(t.playbackRate, SLOW_RATE,
"The playback rate shoud be "+SLOW_RATE+"." + t.token + '\n');
is(t.defaultPlaybackRate, SLOW_RATE,
"The default playback rate shoud be "+SLOW_RATE+"." + t.token);
ok(delta_wallclock > delta , "We are effectively slowing down playback. (" + delta_wallclock + ", " + delta + ")");
if (t.skippedFastPart) {
is(t.ratechangecount, 7, "We should have received 7 \"ratechange\" events.");
} else {
is(t.ratechangecount, 8, "We should have received 8 \"ratechange\" events.");
}
finish_test(t);
}
finish_test(t);
}
function onratechange(e) {
@ -207,7 +174,6 @@ function startTest(test, token) {
element.playbackRate = VERY_SLOW_RATE;
is(element.playbackRate, SLOW_RATE, "PlaybackRate should be clamped to " + SLOW_RATE + ".");
element.play();
is(element.playbackRate, 1.0, "playbackRate should be reset to 1.0 on play() call");
element.playbackRate = SLOW_RATE;
});
}

View File

@ -0,0 +1,73 @@
<!DOCTYPE HTML>
<html>
<head>
<title>Test that the playbackRate property is not reset when resuming the playback</title>
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
<script type="text/javascript" src="manifest.js"></script>
</head>
<body>
<pre id="test">
<script class="testbody" type='application/javascript;version=1.8'>
if (navigator.platform.startsWith("Win")) {
SimpleTest.expectAssertions(0, 1);
} else if (navigator.platform.startsWith("Mac")) {
SimpleTest.expectAssertions(0, 2);
}
let manager = new MediaTestManager;
function ontimeupdate(e) {
var t = e.target;
if (t.currentTime != 0.0) {
dump(t.token + " t.currentTime != 0.0.\n");
t.removeEventListener("timeupdate", ontimeupdate);
t.pause();
is(t.playbackRate, 0.5, "PlaybackRate should not have changed after pause.");
} else {
dump(t.token + " t.currentTime == 0.0.\n");
}
}
function onpaused(e) {
var t = e.target;
dump(t.token + " onpaused.\n");
t.play();
is(t.playbackRate, 0.5, "PlaybackRate should not have changed after resuming playback.");
finish_test(t);
}
function finish_test(element) {
dump(element.token + " finish_test.\n");
if (element.parentNode)
element.parentNode.removeChild(element);
element.src="";
manager.finished(element.token);
}
function startTest(test, token) {
let elemType = /^audio/.test(test.type) ? "audio" : "video";
let element = document.createElement(elemType);
element.src = test.name;
element.token = token;
element.controls = true;
element.playbackRate = 0.5;
element.addEventListener("timeupdate", ontimeupdate);
element.addEventListener("pause", onpaused);
element.addEventListener("loadedmetadata", function() {
dump(element.token + " loadedmetadata\n");
element.play();
});
document.body.appendChild(element);
manager.started(token);
}
manager.runTests(gPlayedTests, startTest);
</script>
</pre>
<div id="elements">
</div>
</body>
</html>

View File

@ -59,6 +59,9 @@ this.AppDownloadManager = {
*/
get: function app_dlMgr_get(aManifestURL) {
debug("Getting " + aManifestURL);
if (!this.downloads[aManifestURL]) {
return null;
}
return this.downloads[aManifestURL];
},

View File

@ -303,6 +303,9 @@ this.DOMApplicationRegistry = {
baseDir = FileUtils.getDir("coreAppsDir", ["webapps", aId], false);
if (!baseDir.exists()) {
return;
} else if (!baseDir.directoryEntries.hasMoreElements()) {
debug("Error: Core app in " + baseDir.path + " is empty");
return;
}
} catch(e) {
// In ENG builds, we don't have apps in coreAppsDir.
@ -339,7 +342,11 @@ this.DOMApplicationRegistry = {
filesToMove.forEach(function(aFile) {
let file = baseDir.clone();
file.append(aFile);
file.copyTo(destDir, aFile);
try {
file.copyTo(destDir, aFile);
} catch(e) {
debug("Error: Failed to copy " + file.path + " to " + destDir.path);
}
});
app.installState = "installed";
@ -2782,7 +2789,9 @@ this.DOMApplicationRegistry = {
this.broadcastMessage("Webapps:Uninstall:Broadcast:Return:OK", appClone);
// Catch exception on callback call to ensure notifying observers after
try {
aOnSuccess();
if (aOnSuccess) {
aOnSuccess();
}
} catch(ex) {
Cu.reportError("DOMApplicationRegistry: Exception on app uninstall: " +
ex + "\n" + ex.stack);

View File

@ -1,39 +1,7 @@
/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* ***** 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 the Mozilla Foundation.
* Portions created by the Initial Developer are Copyright (C) 2004
* the Initial Developer. All Rights Reserved.
*
* Contributor(s):
* John Daggett <jdaggett@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 ***** */
/* 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 "nsIDOMCSSRule.idl"

View File

@ -751,6 +751,7 @@ MobileMessageDatabaseService.prototype = {
}
threadRecord.lastMessageType = messageRecord.type;
cursor.update(threadRecord);
cursor.continue();
};
request.onerror = function onerror(event) {
@ -759,8 +760,8 @@ MobileMessageDatabaseService.prototype = {
debug("Caught error on transaction", event.target.errorCode);
}
}
cursor.continue();
};
cursor.continue();
};
},

View File

@ -1192,9 +1192,11 @@ PluginModuleParent::NP_Initialize(NPNetscapeFuncs* bFuncs, NPPluginFuncs* pFuncs
uint32_t flags = 0;
if (!CallNP_Initialize(flags, error)) {
mShutdown = true;
return NS_ERROR_FAILURE;
}
else if (*error != NPERR_NO_ERROR) {
mShutdown = true;
return NS_OK;
}
@ -1220,8 +1222,14 @@ PluginModuleParent::NP_Initialize(NPNetscapeFuncs* bFuncs, NPError* error)
flags |= kAllowAsyncDrawing;
#endif
if (!CallNP_Initialize(flags, error))
if (!CallNP_Initialize(flags, error)) {
mShutdown = true;
return NS_ERROR_FAILURE;
}
if (*error != NPERR_NO_ERROR) {
mShutdown = true;
return NS_OK;
}
#if defined XP_WIN
// Send the info needed to join the chrome process's audio session to the

View File

@ -89,7 +89,8 @@ function run_test() {
pluginFile.copyTo(null, "npblah235" + suffix);
let pluginCopy = pluginDir.clone();
pluginCopy.append("npblah235" + suffix);
pluginFile.moveTo(pluginDir.parent, null);
let tempDir = do_get_tempdir();
pluginFile.moveTo(tempDir, null);
test_expected_permission_string("plugin:npblah");
pluginCopy.moveTo(null, "npasdf-3.2.2" + suffix);

View File

@ -50,7 +50,7 @@ function run_test() {
do_throw("Plugin library not found");
const pluginDir = file.parent;
const parentDir = pluginDir.parent;
const tempDir = do_get_tempdir();
const suffix = get_platform_specific_plugin_suffix();
const pluginName = file.leafName.substring(0, file.leafName.length - suffix.length).toLowerCase();
const pluginHost = Cc["@mozilla.org/plugin/host;1"].getService(Ci.nsIPluginHost);
@ -90,7 +90,7 @@ function run_test() {
file.copyTo(null, "nptestcopy" + suffix);
let copy = pluginDir.clone();
copy.append("nptestcopy" + suffix);
file.moveTo(parentDir, null);
file.moveTo(tempDir, null);
// test that the settings persist through a few variations of test-plugin names
let testNames = [
@ -109,7 +109,7 @@ function run_test() {
});
// check that the state persists even if the plugin is not always present
copy.moveTo(parentDir, null);
copy.moveTo(tempDir, null);
pluginHost.reloadPlugins(false);
copy.moveTo(pluginDir, null);
pluginHost.reloadPlugins(false);

View File

@ -235,6 +235,8 @@ NetworkManager.prototype = {
network.type == Ci.nsINetworkInterface.NETWORK_TYPE_MOBILE_SUPL) {
this.addHostRoute(network);
}
// Add extra host route. For example, mms proxy or mmsc.
this.setExtraHostRoute(network);
// Remove pre-created default route and let setAndConfigureActive()
// to set default route only on preferred network
this.removeDefaultRoute(network.name);
@ -256,9 +258,13 @@ NetworkManager.prototype = {
network.type == Ci.nsINetworkInterface.NETWORK_TYPE_MOBILE_SUPL) {
this.removeHostRoute(network);
}
// Remove extra host route. For example, mms proxy or mmsc.
this.removeExtraHostRoute(network);
// Remove routing table in /proc/net/route
if (network.type == Ci.nsINetworkInterface.NETWORK_TYPE_WIFI) {
this.resetRoutingTable(network);
} else if (network.type == Ci.nsINetworkInterface.NETWORK_TYPE_MOBILE) {
this.removeDefaultRoute(network.name);
}
// Abort ongoing captive portal detection on the wifi interface
CaptivePortalDetectionHelper.notify(CaptivePortalDetectionHelper.EVENT_DISCONNECT, network);
@ -272,25 +278,13 @@ NetworkManager.prototype = {
break;
case TOPIC_INTERFACE_REGISTERED:
let regNetwork = subject.QueryInterface(Ci.nsINetworkInterface);
if (regNetwork.type == Ci.nsINetworkInterface.NETWORK_TYPE_MOBILE_MMS) {
debug("Network '" + regNetwork.name + "' registered, adding mmsproxy and/or mmsc route");
let mmsHosts = this.resolveHostname(
[ Services.prefs.getCharPref("ril.mms.mmsproxy"),
Services.prefs.getCharPref("ril.mms.mmsc") ]
);
this.addHostRouteWithResolve(regNetwork, mmsHosts);
}
// Add extra host route. For example, mms proxy or mmsc.
this.setExtraHostRoute(regNetwork);
break;
case TOPIC_INTERFACE_UNREGISTERED:
let unregNetwork = subject.QueryInterface(Ci.nsINetworkInterface);
if (unregNetwork.type == Ci.nsINetworkInterface.NETWORK_TYPE_MOBILE_MMS) {
debug("Network '" + unregNetwork.name + "' unregistered, removing mmsproxy and/or mmsc route");
let mmsHosts = this.resolveHostname(
[ Services.prefs.getCharPref("ril.mms.mmsproxy"),
Services.prefs.getCharPref("ril.mms.mmsc") ]
);
this.removeHostRouteWithResolve(unregNetwork, mmsHosts);
}
// Remove extra host route. For example, mms proxy or mmsc.
this.removeExtraHostRoute(unregNetwork);
break;
case TOPIC_MOZSETTINGS_CHANGED:
let setting = JSON.parse(data);
@ -400,9 +394,7 @@ NetworkManager.prototype = {
},
set preferredNetworkType(val) {
if ([Ci.nsINetworkInterface.NETWORK_TYPE_WIFI,
Ci.nsINetworkInterface.NETWORK_TYPE_MOBILE,
Ci.nsINetworkInterface.NETWORK_TYPE_MOBILE_MMS,
Ci.nsINetworkInterface.NETWORK_TYPE_MOBILE_SUPL].indexOf(val) == -1) {
Ci.nsINetworkInterface.NETWORK_TYPE_MOBILE].indexOf(val) == -1) {
throw "Invalid network type";
}
this._preferredNetworkType = val;
@ -415,6 +407,10 @@ NetworkManager.prototype = {
_activeInfo: null,
overrideActive: function overrideActive(network) {
if (network.type == Ci.nsINetworkInterface.NETWORK_TYPE_MOBILE_MMS ||
network.type == Ci.nsINetworkInterface.NETWORK_TYPE_MOBILE_SUPL) {
throw "Invalid network type";
}
this._overriddenActive = network;
this.setAndConfigureActive();
},
@ -463,6 +459,26 @@ NetworkManager.prototype = {
}
},
setExtraHostRoute: function setExtraHostRoute(network) {
if (network.type == Ci.nsINetworkInterface.NETWORK_TYPE_MOBILE_MMS) {
debug("Network '" + network.name + "' registered, adding mmsproxy and/or mmsc route");
let mmsHosts = this.resolveHostname(
[Services.prefs.getCharPref("ril.mms.mmsproxy"),
Services.prefs.getCharPref("ril.mms.mmsc")]);
this.addHostRouteWithResolve(network, mmsHosts);
}
},
removeExtraHostRoute: function removeExtraHostRoute(network) {
if (network.type == Ci.nsINetworkInterface.NETWORK_TYPE_MOBILE_MMS) {
debug("Network '" + network.name + "' unregistered, removing mmsproxy and/or mmsc route");
let mmsHosts = this.resolveHostname(
[Services.prefs.getCharPref("ril.mms.mmsproxy"),
Services.prefs.getCharPref("ril.mms.mmsc")]);
this.removeHostRouteWithResolve(network, mmsHosts);
}
},
/**
* Determine the active interface and configure it.
*/
@ -519,7 +535,13 @@ NetworkManager.prototype = {
this.active.type != this.preferredNetworkType) {
this.active = defaultDataNetwork;
}
this.setDefaultRouteAndDNS(oldActive);
// Don't set default route on secondary APN
if (this.active.type == Ci.nsINetworkInterface.NETWORK_TYPE_MOBILE_MMS ||
this.active.type == Ci.nsINetworkInterface.NETWORK_TYPE_MOBILE_SUPL) {
this.setDNS(this.active);
} else {
this.setDefaultRouteAndDNS(oldActive);
}
if (this.active != oldActive) {
Services.obs.notifyObservers(this.active, TOPIC_ACTIVE_CHANGED, null);
}
@ -540,6 +562,17 @@ NetworkManager.prototype = {
this.worker.postMessage(options);
},
setDNS: function setDNS(networkInterface) {
debug("Going DNS to " + networkInterface.name);
let options = {
cmd: "setDNS",
ifname: networkInterface.name,
dns1_str: networkInterface.dns1,
dns2_str: networkInterface.dns2
};
this.worker.postMessage(options);
},
setDefaultRouteAndDNS: function setDefaultRouteAndDNS(oldInterface) {
debug("Going to change route and DNS to " + this.active.name);
let options = {

View File

@ -197,6 +197,20 @@ self.onmessage = function onmessage(event) {
}
};
/**
* Set DNS servers for given network interface.
*/
function setDNS(options) {
let ifprops = getIFProperties(options.ifname);
let dns1_str = options.dns1_str || ifprops.dns1_str;
let dns2_str = options.dns2_str || ifprops.dns2_str;
libcutils.property_set("net.dns1", dns1_str);
libcutils.property_set("net.dns2", dns2_str);
// Bump the DNS change property.
let dnschange = libcutils.property_get("net.dnschange", "0");
libcutils.property_set("net.dnschange", (parseInt(dnschange, 10) + 1).toString());
}
/**
* Set default route and DNS servers for given network interface.
*/

View File

@ -1,38 +1,6 @@
/* ***** 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 Foundation code.
*
* The Initial Developer of the Original Code is the Mozilla Foundation
* Portions created by the Initial Developer are Copyright (C) 2011
* the Initial Developer. All Rights Reserved.
*
* Contributor(s):
* Edwin Flores <eflores@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
* 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 ***** */
/* 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 "gfxSVGGlyphs.h"

View File

@ -1,38 +1,6 @@
/* ***** 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 Foundation code.
*
* The Initial Developer of the Original Code is the Mozilla Foundation
* Portions created by the Initial Developer are Copyright (C) 2011
* the Initial Developer. All Rights Reserved.
*
* Contributor(s):
* Edwin Flores <eflores@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
* 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 ***** */
/* 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/. */
#ifndef GFX_SVG_GLYPHS_WRAPPER_H
#define GFX_SVG_GLYPHS_WRAPPER_H

View File

@ -1,40 +1,8 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* ***** 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) 2012
* the Initial Developer. All Rights Reserved.
*
* Contributor(s):
* Kyle Huey <me@kylehuey.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 ***** */
* 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 "nsISupports.idl"

View File

@ -3,42 +3,9 @@ License information for hyph_af.dic:
This file is based on the TeX hyphenation patterns distributed under the
LaTeX Project Public License (LPPL) as part of the hyph-utf8 package.
***** 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 hyphenation service.
The Initial Developer of the Original Code is
Mozilla Foundation.
Portions created by the Initial Developer are Copyright (C) 2011
the Initial Developer. All Rights Reserved.
Contributor(s):
Jonathan Kew <jfkthame@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
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 *****
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/.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

View File

@ -3,42 +3,9 @@ License information for hyph_bg.dic:
This file is based on the TeX hyphenation patterns distributed under the
LaTeX Project Public License (LPPL) as part of the hyph-utf8 package.
***** 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 hyphenation service.
The Initial Developer of the Original Code is
Mozilla Foundation.
Portions created by the Initial Developer are Copyright (C) 2011
the Initial Developer. All Rights Reserved.
Contributor(s):
Jonathan Kew <jfkthame@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
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 *****
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/.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

View File

@ -3,42 +3,9 @@ License information for hyph_ca.dic:
This file is based on the TeX hyphenation patterns distributed under the
LaTeX Project Public License (LPPL) as part of the hyph-utf8 package.
***** 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 hyphenation service.
The Initial Developer of the Original Code is
Mozilla Foundation.
Portions created by the Initial Developer are Copyright (C) 2011
the Initial Developer. All Rights Reserved.
Contributor(s):
Jonathan Kew <jfkthame@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
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 *****
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/.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

View File

@ -3,42 +3,9 @@ License information for hyph_cy.dic:
This file is based on the TeX hyphenation patterns distributed under the
LaTeX Project Public License (LPPL) as part of the hyph-utf8 package.
***** 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 hyphenation service.
The Initial Developer of the Original Code is
Mozilla Foundation.
Portions created by the Initial Developer are Copyright (C) 2011
the Initial Developer. All Rights Reserved.
Contributor(s):
Jonathan Kew <jfkthame@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
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 *****
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/.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

View File

@ -3,42 +3,9 @@ License information for hyph_da.dic:
This file is based on the TeX hyphenation patterns distributed under the
LaTeX Project Public License (LPPL) as part of the hyph-utf8 package.
***** 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 hyphenation service.
The Initial Developer of the Original Code is
Mozilla Foundation.
Portions created by the Initial Developer are Copyright (C) 2011
the Initial Developer. All Rights Reserved.
Contributor(s):
Jonathan Kew <jfkthame@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
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 *****
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/.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

View File

@ -3,42 +3,9 @@ License information for hyph_de-1901.dic:
This file is based on the TeX hyphenation patterns distributed under the
LaTeX Project Public License (LPPL) as part of the hyph-utf8 package.
***** 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 hyphenation service.
The Initial Developer of the Original Code is
Mozilla Foundation.
Portions created by the Initial Developer are Copyright (C) 2011
the Initial Developer. All Rights Reserved.
Contributor(s):
Jonathan Kew <jfkthame@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
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 *****
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/.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

View File

@ -3,42 +3,10 @@ License information for hyph_de-1996.dic:
This file is based on the TeX hyphenation patterns distributed under the
LaTeX Project Public License (LPPL) as part of the hyph-utf8 package.
***** 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 hyphenation service.
The Initial Developer of the Original Code is
Mozilla Foundation.
Portions created by the Initial Developer are Copyright (C) 2011
the Initial Developer. All Rights Reserved.
Contributor(s):
Jonathan Kew <jfkthame@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
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 *****
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/.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

View File

@ -3,42 +3,9 @@ License information for hyph_de-CH.dic:
This file is based on the TeX hyphenation patterns distributed under the
LaTeX Project Public License (LPPL) as part of the hyph-utf8 package.
***** 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 hyphenation service.
The Initial Developer of the Original Code is
Mozilla Foundation.
Portions created by the Initial Developer are Copyright (C) 2011
the Initial Developer. All Rights Reserved.
Contributor(s):
Jonathan Kew <jfkthame@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
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 *****
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/.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

View File

@ -3,42 +3,9 @@ License information for hyph_eo.dic:
This file is based on the TeX hyphenation patterns distributed under the
LaTeX Project Public License (LPPL) as part of the hyph-utf8 package.
***** 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 hyphenation service.
The Initial Developer of the Original Code is
Mozilla Foundation.
Portions created by the Initial Developer are Copyright (C) 2011
the Initial Developer. All Rights Reserved.
Contributor(s):
Jonathan Kew <jfkthame@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
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 *****
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/.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

View File

@ -3,42 +3,9 @@ License information for hyph_es.dic:
This file is based on the TeX hyphenation patterns distributed under the
LaTeX Project Public License (LPPL) as part of the hyph-utf8 package.
***** 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 hyphenation service.
The Initial Developer of the Original Code is
Mozilla Foundation.
Portions created by the Initial Developer are Copyright (C) 2011
the Initial Developer. All Rights Reserved.
Contributor(s):
Jonathan Kew <jfkthame@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
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 *****
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/.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

View File

@ -3,42 +3,9 @@ License information for hyph_et.dic:
This file is based on the TeX hyphenation patterns distributed under the
LaTeX Project Public License (LPPL) as part of the hyph-utf8 package.
***** 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 hyphenation service.
The Initial Developer of the Original Code is
Mozilla Foundation.
Portions created by the Initial Developer are Copyright (C) 2011
the Initial Developer. All Rights Reserved.
Contributor(s):
Jonathan Kew <jfkthame@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
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 *****
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/.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

View File

@ -3,42 +3,9 @@ License information for hyph_gl.dic:
This file is based on the TeX hyphenation patterns distributed under the
LaTeX Project Public License (LPPL) as part of the hyph-utf8 package.
***** 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 hyphenation service.
The Initial Developer of the Original Code is
Mozilla Foundation.
Portions created by the Initial Developer are Copyright (C) 2011
the Initial Developer. All Rights Reserved.
Contributor(s):
Jonathan Kew <jfkthame@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
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 *****
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/.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

View File

@ -3,42 +3,9 @@ License information for hyph_hr.dic:
This file is based on the TeX hyphenation patterns distributed under the
LaTeX Project Public License (LPPL) as part of the hyph-utf8 package.
***** 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 hyphenation service.
The Initial Developer of the Original Code is
Mozilla Foundation.
Portions created by the Initial Developer are Copyright (C) 2011
the Initial Developer. All Rights Reserved.
Contributor(s):
Jonathan Kew <jfkthame@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
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 *****
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/.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

View File

@ -3,42 +3,9 @@ License information for hyph_hsb.dic:
This file is based on the TeX hyphenation patterns distributed under the
LaTeX Project Public License (LPPL) as part of the hyph-utf8 package.
***** 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 hyphenation service.
The Initial Developer of the Original Code is
Mozilla Foundation.
Portions created by the Initial Developer are Copyright (C) 2011
the Initial Developer. All Rights Reserved.
Contributor(s):
Jonathan Kew <jfkthame@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
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 *****
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/.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

View File

@ -5,40 +5,7 @@ by processing the TeX hyphenation patterns with substrings.pl.
% Huhyphn - hungarian hyphenation patterns v20110815
%
% ***** 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 the Huhyphn - hungarian hyphenation patterns.
%
% The Initial Developer of the Original Code is
% Bence Nagy.
% Portions created by the Initial Developer are Copyright (C) 2003
% the Initial Developer. All Rights Reserved.
%
% Contributor(s):
% Bence Nagy <bence.nagy@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
% 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 *****
% 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/.
%

View File

@ -3,42 +3,9 @@ License information for hyph_ia.dic:
This file is based on the TeX hyphenation patterns distributed under the
LaTeX Project Public License (LPPL) as part of the hyph-utf8 package.
***** 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 hyphenation service.
The Initial Developer of the Original Code is
Mozilla Foundation.
Portions created by the Initial Developer are Copyright (C) 2011
the Initial Developer. All Rights Reserved.
Contributor(s):
Jonathan Kew <jfkthame@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
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 *****
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/.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

View File

@ -3,48 +3,10 @@ License information for hyph_is.dic:
This file is based on the TeX hyphenation patterns distributed under the
LaTeX Project Public License (LPPL) as part of the hyph-utf8 package.
***** 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 hyphenation service.
The Initial Developer of the Original Code is
Mozilla Foundation.
Portions created by the Initial Developer are Copyright (C) 2011
the Initial Developer. All Rights Reserved.
Contributor(s):
Jonathan Kew <jfkthame@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
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 *****
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
At the time this file was first modified, a complete, unmodified copy of
the LPPL Work was available from:
http://tug.org/svn/texhyphen/trunk/hyph-utf8/tex/generic/hyph-utf8/patterns/?pathrev=580
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/.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

View File

@ -3,42 +3,9 @@ License information for hyph_it.dic:
This file is based on the TeX hyphenation patterns distributed under the
LaTeX Project Public License (LPPL) as part of the hyph-utf8 package.
***** 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 hyphenation service.
The Initial Developer of the Original Code is
Mozilla Foundation.
Portions created by the Initial Developer are Copyright (C) 2011
the Initial Developer. All Rights Reserved.
Contributor(s):
Jonathan Kew <jfkthame@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
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 *****
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/.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

View File

@ -3,42 +3,9 @@ License information for hyph_kmr.dic:
This file is based on the TeX hyphenation patterns distributed under the
LaTeX Project Public License (LPPL) as part of the hyph-utf8 package.
***** 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 hyphenation service.
The Initial Developer of the Original Code is
Mozilla Foundation.
Portions created by the Initial Developer are Copyright (C) 2011
the Initial Developer. All Rights Reserved.
Contributor(s):
Jonathan Kew <jfkthame@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
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 *****
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/.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

View File

@ -3,42 +3,10 @@ License information for hyph_la.dic:
This file is based on the TeX hyphenation patterns distributed under the
LaTeX Project Public License (LPPL) as part of the hyph-utf8 package.
***** 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 hyphenation service.
The Initial Developer of the Original Code is
Mozilla Foundation.
Portions created by the Initial Developer are Copyright (C) 2011
the Initial Developer. All Rights Reserved.
Contributor(s):
Jonathan Kew <jfkthame@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
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 *****
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/.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

View File

@ -3,42 +3,10 @@ License information for hyph_lt.dic:
This file is based on the TeX hyphenation patterns distributed under the
LaTeX Project Public License (LPPL) as part of the hyph-utf8 package.
***** 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 hyphenation service.
The Initial Developer of the Original Code is
Mozilla Foundation.
Portions created by the Initial Developer are Copyright (C) 2011
the Initial Developer. All Rights Reserved.
Contributor(s):
Jonathan Kew <jfkthame@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
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 *****
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/.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

View File

@ -3,42 +3,9 @@ License information for hyph_mn.dic:
This file is based on the TeX hyphenation patterns distributed under the
LaTeX Project Public License (LPPL) as part of the hyph-utf8 package.
***** 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 hyphenation service.
The Initial Developer of the Original Code is
Mozilla Foundation.
Portions created by the Initial Developer are Copyright (C) 2011
the Initial Developer. All Rights Reserved.
Contributor(s):
Jonathan Kew <jfkthame@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
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 *****
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/.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

View File

@ -3,42 +3,9 @@ License information for hyph_nl.dic:
This file is based on the TeX hyphenation patterns distributed under the
LaTeX Project Public License (LPPL) as part of the hyph-utf8 package.
***** 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 hyphenation service.
The Initial Developer of the Original Code is
Mozilla Foundation.
Portions created by the Initial Developer are Copyright (C) 2011
the Initial Developer. All Rights Reserved.
Contributor(s):
Jonathan Kew <jfkthame@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
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 *****
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/.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

View File

@ -3,42 +3,10 @@ License information for hyph_pt.dic:
This file is based on the TeX hyphenation patterns distributed under the
LaTeX Project Public License (LPPL) as part of the hyph-utf8 package.
***** 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 hyphenation service.
The Initial Developer of the Original Code is
Mozilla Foundation.
Portions created by the Initial Developer are Copyright (C) 2011
the Initial Developer. All Rights Reserved.
Contributor(s):
Jonathan Kew <jfkthame@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
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 *****
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/.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

View File

@ -3,42 +3,10 @@ License information for hyph_ru.dic:
This file is based on the TeX hyphenation patterns distributed under the
LaTeX Project Public License (LPPL) as part of the hyph-utf8 package.
***** 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 hyphenation service.
The Initial Developer of the Original Code is
Mozilla Foundation.
Portions created by the Initial Developer are Copyright (C) 2011
the Initial Developer. All Rights Reserved.
Contributor(s):
Jonathan Kew <jfkthame@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
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 *****
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/.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

View File

@ -3,42 +3,9 @@ License information for hyph_sh.dic:
This file is based on the TeX hyphenation patterns distributed under the
LaTeX Project Public License (LPPL) as part of the hyph-utf8 package.
***** 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 hyphenation service.
The Initial Developer of the Original Code is
Mozilla Foundation.
Portions created by the Initial Developer are Copyright (C) 2011
the Initial Developer. All Rights Reserved.
Contributor(s):
Jonathan Kew <jfkthame@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
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 *****
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/.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

View File

@ -3,42 +3,9 @@ License information for hyph_sl.dic:
This file is based on the TeX hyphenation patterns distributed under the
LaTeX Project Public License (LPPL) as part of the hyph-utf8 package.
***** 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 hyphenation service.
The Initial Developer of the Original Code is
Mozilla Foundation.
Portions created by the Initial Developer are Copyright (C) 2011
the Initial Developer. All Rights Reserved.
Contributor(s):
Jonathan Kew <jfkthame@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
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 *****
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/.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

View File

@ -3,42 +3,9 @@ License information for hyph_sv.dic:
This file is based on the TeX hyphenation patterns distributed under the
LaTeX Project Public License (LPPL) as part of the hyph-utf8 package.
***** 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 hyphenation service.
The Initial Developer of the Original Code is
Mozilla Foundation.
Portions created by the Initial Developer are Copyright (C) 2011
the Initial Developer. All Rights Reserved.
Contributor(s):
Jonathan Kew <jfkthame@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
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 *****
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/.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

View File

@ -3,42 +3,10 @@ License information for hyph_tr.dic:
This file is based on the TeX hyphenation patterns distributed under the
LaTeX Project Public License (LPPL) as part of the hyph-utf8 package.
***** 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 hyphenation service.
The Initial Developer of the Original Code is
Mozilla Foundation.
Portions created by the Initial Developer are Copyright (C) 2011
the Initial Developer. All Rights Reserved.
Contributor(s):
Jonathan Kew <jfkthame@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
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 *****
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/.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

View File

@ -3,42 +3,9 @@ License information for hyph_uk.dic:
This file is based on the TeX hyphenation patterns distributed under the
LaTeX Project Public License (LPPL) as part of the hyph-utf8 package.
***** 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 hyphenation service.
The Initial Developer of the Original Code is
Mozilla Foundation.
Portions created by the Initial Developer are Copyright (C) 2011
the Initial Developer. All Rights Reserved.
Contributor(s):
Jonathan Kew <jfkthame@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
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 *****
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/.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

View File

@ -642,6 +642,8 @@ selfhosting_srcs := \
$(srcdir)/builtin/Number.js \
$(srcdir)/builtin/ParallelArray.js \
$(srcdir)/builtin/String.js \
$(srcdir)/builtin/Set.js \
$(srcdir)/builtin/Map.js \
$(NULL)
selfhosted_out_h_deps := \

View File

@ -24,7 +24,7 @@ using namespace js;
#if defined(__i386__)
static __inline__ uint64_t
js::rdtsc(void)
rdtsc(void)
{
uint64_t x;
__asm__ volatile (".byte 0x0f, 0x31" : "=A" (x));
@ -32,7 +32,7 @@ js::rdtsc(void)
}
#elif defined(__x86_64__)
static __inline__ uint64_t
js::rdtsc(void)
rdtsc(void)
{
unsigned hi, lo;
__asm__ __volatile__ ("rdtsc" : "=a"(lo), "=d"(hi));
@ -40,7 +40,7 @@ js::rdtsc(void)
}
#elif defined(__powerpc__)
static __inline__ uint64_t
js::rdtsc(void)
rdtsc(void)
{
uint64_t result=0;
uint32_t upper, lower,tmp;
@ -62,26 +62,19 @@ js::rdtsc(void)
#endif
const char* const TraceLogging::type_name[] = {
"start,script",
"stop,script",
"start,ion_compile",
"stop,ion_compile",
"start,ion_cannon",
"stop,ion_cannon",
"stop,ion_cannon_bailout",
"start,ion_side_cannon",
"stop,ion_side_cannon",
"stop,ion_side_cannon_bailout",
"start,yarr_jit_execute",
"stop,yarr_jit_execute",
"start,jm_safepoint",
"stop,jm_safepoint",
"start,jm_normal",
"stop,jm_normal",
"start,jm_compile",
"stop,jm_compile",
"start,gc",
"stop,gc",
"start,interpreter",
"stop,interpreter"
"start,minor_gc",
"stop,minor_gc",
"info,engine,interpreter",
"info,engine,baseline",
"info,engine,ionmonkey"
};
TraceLogging* TraceLogging::_defaultLogger = NULL;
@ -157,7 +150,7 @@ TraceLogging::log(Type type, const char* file, unsigned int lineno)
void
TraceLogging::log(Type type, JSScript* script)
{
this->log(type, script->filename, script->lineno);
this->log(type, script->filename(), script->lineno);
}
void

View File

@ -15,26 +15,19 @@ class TraceLogging
{
public:
enum Type {
SCRIPT_START,
SCRIPT_STOP,
ION_COMPILE_START,
ION_COMPILE_STOP,
ION_CANNON_START,
ION_CANNON_STOP,
ION_CANNON_BAIL,
ION_SIDE_CANNON_START,
ION_SIDE_CANNON_STOP,
ION_SIDE_CANNON_BAIL,
YARR_JIT_START,
YARR_JIT_STOP,
JM_SAFEPOINT_START,
JM_SAFEPOINT_STOP,
JM_START,
JM_STOP,
JM_COMPILE_START,
JM_COMPILE_STOP,
GC_START,
GC_STOP,
INTERPRETER_START,
INTERPRETER_STOP,
MINOR_GC_START,
MINOR_GC_STOP,
INFO_ENGINE_INTERPRETER,
INFO_ENGINE_BASELINE,
INFO_ENGINE_IONMONKEY,
INFO
};

View File

@ -31,7 +31,7 @@ AC_LANG_RESTORE
AC_MSG_RESULT($ac_have_gcc_pr39608)
if test "$ac_have_gcc_pr39608" = "yes"; then
echo This compiler would fail to build firefox, plase upgrade.
echo This compiler would fail to build firefox, please upgrade.
exit 1
fi
])

View File

@ -42,7 +42,7 @@ AC_LANG_RESTORE
if test "$ac_have_llvm_pr8927" = "yes"; then
AC_MSG_RESULT(yes)
echo This compiler would miscompile firefox, plase upgrade.
echo This compiler would miscompile firefox, please upgrade.
echo see http://developer.mozilla.org/en-US/docs/Developer_Guide/Build_Instructions/Mac_OS_X_Prerequisites
echo for more information.
exit 1

View File

@ -316,7 +316,8 @@ EvalKernel(JSContext *cx, const CallArgs &args, EvalType evalType, AbstractFrame
.setNoScriptRval(false)
.setPrincipals(principals)
.setOriginPrincipals(originPrincipals);
JSScript *compiled = frontend::CompileScript(cx, scopeobj, callerScript, options,
JSScript *compiled = frontend::CompileScript(cx, &cx->tempLifoAlloc(),
scopeobj, callerScript, options,
chars.get(), length, stableStr, staticLevel);
if (!compiled)
return false;
@ -380,7 +381,8 @@ js::DirectEvalFromIon(JSContext *cx,
.setNoScriptRval(false)
.setPrincipals(principals)
.setOriginPrincipals(originPrincipals);
JSScript *compiled = frontend::CompileScript(cx, scopeobj, callerScript, options,
JSScript *compiled = frontend::CompileScript(cx, &cx->tempLifoAlloc(),
scopeobj, callerScript, options,
chars.get(), length, stableStr, staticLevel);
if (!compiled)
return false;

36
js/src/builtin/Map.js Normal file
View File

@ -0,0 +1,36 @@
/* 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/. */
/* ES6 20121122 draft 15.14.4.4. */
function MapForEach(callbackfn, thisArg = undefined) {
/* Step 1-2. */
var M = this;
if (!IsObject(M))
ThrowError(JSMSG_BAD_TYPE, typeof M);
/* Step 3-4. */
try {
std_Map_has.call(M);
} catch (e) {
ThrowError(JSMSG_BAD_TYPE, typeof M);
}
/* Step 5. */
if (!IsCallable(callbackfn))
ThrowError(JSMSG_NOT_FUNCTION, DecompileArg(0, callbackfn));
/* Step 6-8. */
var entries = std_Map_iterator.call(M);
while (true) {
try {
var entry = std_Map_iterator_next.call(entries);
} catch (err) {
if (err instanceof StopIteration)
break;
throw err;
}
callFunction(callbackfn, thisArg, entry[1], entry[0], M);
}
}

View File

@ -1036,6 +1036,7 @@ const JSFunctionSpec MapObject::methods[] = {
JS_FN("keys", keys, 0, 0),
JS_FN("values", values, 0, 0),
JS_FN("clear", clear, 0, 0),
{"forEach", {NULL, NULL}, 2, 0, "MapForEach"},
JS_FS_END
};
@ -1592,6 +1593,7 @@ const JSFunctionSpec SetObject::methods[] = {
JS_FN("delete", delete_, 1, 0),
JS_FN("entries", entries, 0, 0),
JS_FN("clear", clear, 0, 0),
{"forEach", {NULL, NULL}, 2, 0, "SetForEach"},
JS_FS_END
};

36
js/src/builtin/Set.js Normal file
View File

@ -0,0 +1,36 @@
/* 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/. */
/* ES6 20121122 draft 15.16.4.6. */
function SetForEach(callbackfn, thisArg = undefined) {
/* Step 1-2. */
var S = this;
if (!IsObject(S))
ThrowError(JSMSG_BAD_TYPE, typeof S);
/* Step 3-4. */
try {
std_Set_has.call(S);
} catch (e) {
ThrowError(JSMSG_BAD_TYPE, typeof S);
}
/* Step 5-6. */
if (!IsCallable(callbackfn))
ThrowError(JSMSG_NOT_FUNCTION, DecompileArg(0, callbackfn));
/* Step 7-8. */
var values = std_Set_iterator.call(S);
while (true) {
try {
var entry = std_Set_iterator_next.call(values);
} catch (err) {
if (err instanceof StopIteration)
break;
throw err;
}
callFunction(callbackfn, thisArg, entry, entry, S);
}
}

View File

@ -73,7 +73,12 @@ var std_String_toUpperCase = String.prototype.toUpperCase;
var std_WeakMap_get = WeakMap.prototype.get;
var std_WeakMap_has = WeakMap.prototype.has;
var std_WeakMap_set = WeakMap.prototype.set;
var std_Map_has = Map.prototype.has;
var std_Set_has = Set.prototype.has;
var std_Map_iterator = Map().iterator;
var std_Set_iterator = Set().iterator;
var std_Map_iterator_next = Object.getPrototypeOf(Map().iterator()).next;
var std_Set_iterator_next = Object.getPrototypeOf(Set().iterator()).next;
/********** List specification type **********/

View File

@ -94,10 +94,6 @@ function ignoreEdgeUse(edge, variable)
var name = callee.Variable.Name[0];
if (/~Anchor/.test(name))
return true;
if (/::Unrooted\(\)/.test(name))
return true;
if (/::~Unrooted\(\)/.test(name))
return true;
if (/~DebugOnly/.test(name))
return true;
}

View File

@ -94,6 +94,7 @@ addGCType('JSString');
addGCType('js::Shape');
addGCType('js::BaseShape');
addGCType('JSScript');
addGCType('js::LazyScript');
addGCType('js::ion::IonCode');
addGCPointer('JS::Value');
addGCPointer('jsid');

View File

@ -24,20 +24,21 @@ using namespace js::frontend;
using mozilla::Maybe;
static bool
CheckLength(JSContext *cx, size_t length)
CheckLength(ExclusiveContext *cx, size_t length)
{
// Note this limit is simply so we can store sourceStart and sourceEnd in
// JSScript as 32-bits. It could be lifted fairly easily, since the compiler
// is using size_t internally already.
if (length > UINT32_MAX) {
JS_ReportErrorNumber(cx, js_GetErrorMessage, NULL, JSMSG_SOURCE_TOO_LONG);
if (cx->isJSContext())
JS_ReportErrorNumber(cx->asJSContext(), js_GetErrorMessage, NULL, JSMSG_SOURCE_TOO_LONG);
return false;
}
return true;
}
static bool
SetSourceMap(JSContext *cx, TokenStream &tokenStream, ScriptSource *ss)
SetSourceMap(ExclusiveContext *cx, TokenStream &tokenStream, ScriptSource *ss)
{
if (tokenStream.hasSourceMap()) {
if (!ss->setSourceMap(cx, tokenStream.releaseSourceMap()))
@ -74,13 +75,16 @@ CheckArgumentsWithinEval(JSContext *cx, Parser<FullParseHandler> &parser, Handle
}
static bool
MaybeCheckEvalFreeVariables(JSContext *cx, HandleScript evalCaller, HandleObject scopeChain,
MaybeCheckEvalFreeVariables(ExclusiveContext *cxArg, HandleScript evalCaller, HandleObject scopeChain,
Parser<FullParseHandler> &parser,
ParseContext<FullParseHandler> &pc)
{
if (!evalCaller || !evalCaller->functionOrCallerFunction())
return true;
// Eval scripts are only compiled on the main thread.
JSContext *cx = cxArg->asJSContext();
// Watch for uses of 'arguments' within the evaluated script, both as
// free variables and as variables redeclared with 'var'.
RootedFunction fun(cx, evalCaller->functionOrCallerFunction());
@ -120,17 +124,18 @@ MaybeCheckEvalFreeVariables(JSContext *cx, HandleScript evalCaller, HandleObject
}
inline bool
CanLazilyParse(JSContext *cx, const CompileOptions &options)
CanLazilyParse(ExclusiveContext *cx, const CompileOptions &options)
{
return options.canLazilyParse &&
options.compileAndGo &&
options.sourcePolicy == CompileOptions::SAVE_SOURCE &&
!cx->compartment()->debugMode();
cx->isJSContext() &&
!cx->asJSContext()->compartment()->debugMode();
}
inline void
MaybeCallSourceHandler(JSContext *cx, const CompileOptions &options,
const jschar *chars, size_t length)
void
frontend::MaybeCallSourceHandler(JSContext *cx, const CompileOptions &options,
const jschar *chars, size_t length)
{
JSSourceHandler listener = cx->runtime()->debugHooks.sourceHandler;
void *listenerData = cx->runtime()->debugHooks.sourceHandlerData;
@ -143,7 +148,7 @@ MaybeCallSourceHandler(JSContext *cx, const CompileOptions &options,
}
JSScript *
frontend::CompileScript(JSContext *cx, HandleObject scopeChain,
frontend::CompileScript(ExclusiveContext *cx, LifoAlloc *alloc, HandleObject scopeChain,
HandleScript evalCaller,
const CompileOptions &options,
const jschar *chars, size_t length,
@ -154,7 +159,8 @@ frontend::CompileScript(JSContext *cx, HandleObject scopeChain,
RootedString source(cx, source_);
SkipRoot skip(cx, &chars);
MaybeCallSourceHandler(cx, options, chars, length);
if (cx->isJSContext())
MaybeCallSourceHandler(cx->asJSContext(), options, chars, length);
/*
* The scripted callerFrame can only be given for compile-and-go scripts
@ -176,11 +182,20 @@ frontend::CompileScript(JSContext *cx, HandleObject scopeChain,
JS::RootedScriptSource sourceObject(cx, ScriptSourceObject::create(cx, ss));
if (!sourceObject)
return NULL;
SourceCompressionToken mysct(cx);
SourceCompressionToken *sct = (extraSct) ? extraSct : &mysct;
// Saving source is not yet supported when parsing off thread.
JS_ASSERT_IF(!cx->isJSContext(), !extraSct && options.sourcePolicy == CompileOptions::NO_SOURCE);
SourceCompressionToken *sct = extraSct;
Maybe<SourceCompressionToken> mysct;
if (cx->isJSContext() && !sct) {
mysct.construct(cx->asJSContext());
sct = mysct.addr();
}
switch (options.sourcePolicy) {
case CompileOptions::SAVE_SOURCE:
if (!ss->setSourceCopy(cx, chars, length, false, sct))
if (!ss->setSourceCopy(cx->asJSContext(), chars, length, false, sct))
return NULL;
break;
case CompileOptions::LAZY_SOURCE:
@ -194,14 +209,12 @@ frontend::CompileScript(JSContext *cx, HandleObject scopeChain,
Maybe<Parser<SyntaxParseHandler> > syntaxParser;
if (canLazilyParse) {
syntaxParser.construct(cx, &cx->tempLifoAlloc(),
options, chars, length, /* foldConstants = */ false,
syntaxParser.construct(cx, alloc, options, chars, length, /* foldConstants = */ false,
(Parser<SyntaxParseHandler> *) NULL,
(LazyScript *) NULL);
}
Parser<FullParseHandler> parser(cx, &cx->tempLifoAlloc(),
options, chars, length, /* foldConstants = */ true,
Parser<FullParseHandler> parser(cx, alloc, options, chars, length, /* foldConstants = */ true,
canLazilyParse ? &syntaxParser.ref() : NULL, NULL);
parser.sct = sct;
parser.ss = ss;
@ -327,7 +340,10 @@ frontend::CompileScript(JSContext *cx, HandleObject scopeChain,
if (!FoldConstants(cx, &pn, &parser))
return NULL;
if (!NameFunctions(cx, pn))
// Inferring names for functions in compiled scripts is currently only
// supported while on the main thread. See bug 895395.
if (cx->isJSContext() && !NameFunctions(cx->asJSContext(), pn))
return NULL;
if (!EmitTree(cx, &bce, pn))
@ -354,7 +370,7 @@ frontend::CompileScript(JSContext *cx, HandleObject scopeChain,
bce.tellDebuggerAboutCompiledScript(cx);
if (sct == &mysct && !sct->complete())
if (sct && !extraSct && !sct->complete())
return NULL;
return script;

View File

@ -15,12 +15,14 @@ namespace js {
class AutoNameVector;
class LazyScript;
class LifoAlloc;
struct SourceCompressionToken;
namespace frontend {
JSScript *
CompileScript(JSContext *cx, HandleObject scopeChain, HandleScript evalCaller,
CompileScript(ExclusiveContext *cx, LifoAlloc *alloc,
HandleObject scopeChain, HandleScript evalCaller,
const CompileOptions &options, const jschar *chars, size_t length,
JSString *source_ = NULL, unsigned staticLevel = 0,
SourceCompressionToken *extraSct = NULL);
@ -32,6 +34,14 @@ bool
CompileFunctionBody(JSContext *cx, MutableHandleFunction fun, CompileOptions options,
const AutoNameVector &formals, const jschar *chars, size_t length);
/*
* This should be called while still on the main thread if compilation will
* occur on a worker thread.
*/
void
MaybeCallSourceHandler(JSContext *cx, const CompileOptions &options,
const jschar *chars, size_t length);
/*
* True if str consists of an IdentifierStart character, followed by one or
* more IdentifierPart characters, i.e. it matches the IdentifierName production

View File

@ -4461,6 +4461,8 @@ EmitFor(ExclusiveContext *cx, BytecodeEmitter *bce, ParseNode *pn, ptrdiff_t top
static JS_NEVER_INLINE bool
EmitFunc(ExclusiveContext *cx, BytecodeEmitter *bce, ParseNode *pn)
{
cx->maybePause();
FunctionBox *funbox = pn->pn_funbox;
RootedFunction fun(cx, funbox->function());
JS_ASSERT_IF(fun->isInterpretedLazy(), fun->lazyScript());
@ -4523,9 +4525,6 @@ EmitFunc(ExclusiveContext *cx, BytecodeEmitter *bce, ParseNode *pn)
.setForEval(false)
.setVersion(parent->getVersion());
if (!cx->shouldBeJSContext())
return false;
Rooted<JSObject*> enclosingScope(cx, EnclosingStaticScope(bce));
Rooted<ScriptSourceObject *> sourceObject(cx, bce->script->sourceObject());
Rooted<JSScript*> script(cx, JSScript::Create(cx, enclosingScope, false, options,

View File

@ -20,6 +20,8 @@ AtomThingMapPtr<Map>::ensureMap(ExclusiveContext *cx)
{
if (map_)
return true;
AutoLockForExclusiveAccess lock(cx);
map_ = cx->parseMapPool().acquire<Map>();
return !!map_;
}
@ -30,6 +32,8 @@ AtomThingMapPtr<Map>::releaseMap(ExclusiveContext *cx)
{
if (!map_)
return;
AutoLockForExclusiveAccess lock(cx);
cx->parseMapPool().release(map_);
map_ = NULL;
}
@ -38,6 +42,7 @@ template <typename ParseHandler>
inline bool
AtomDecls<ParseHandler>::init()
{
AutoLockForExclusiveAccess lock(cx);
map = cx->parseMapPool().acquire<AtomDefnListMap>();
return map;
}
@ -46,8 +51,10 @@ template <typename ParseHandler>
inline
AtomDecls<ParseHandler>::~AtomDecls()
{
if (map)
if (map) {
AutoLockForExclusiveAccess lock(cx);
cx->parseMapPool().release(map);
}
}
} /* namespace frontend */

View File

@ -2223,6 +2223,8 @@ Parser<ParseHandler>::functionArgsAndBodyGeneric(Node pn, HandleFunction fun, Fu
// function without concern for conversion to strict mode, use of lazy
// parsing and such.
context->maybePause();
Node prelude = null();
bool hasRest;
if (!functionArguments(kind, &prelude, pn, hasRest))

View File

@ -8,6 +8,7 @@
#define gc_GCInternals_h
#include "jsapi.h"
#include "jsworkers.h"
#include "vm/Runtime.h"
@ -50,6 +51,7 @@ class AutoTraceSession {
void operator=(const AutoTraceSession&) MOZ_DELETE;
js::HeapState prevState;
AutoPauseWorkersForGC pause;
};
struct AutoPrepareForTracing

View File

@ -32,6 +32,7 @@ JS::Zone::Zone(JSRuntime *rt)
gcTriggerBytes(0),
gcHeapGrowthFactor(3.0),
isSystem(false),
usedByExclusiveThread(false),
scheduledForDestruction(false),
maybeAlive(true),
gcMallocBytes(0),

View File

@ -186,7 +186,10 @@ struct Zone : private JS::shadow::Zone,
void scheduleGC() {
JS_ASSERT(!rt->isHeapBusy());
gcScheduled = true;
/* Note: zones cannot be collected while in use by other threads. */
if (!usedByExclusiveThread)
gcScheduled = true;
}
void unscheduleGC() {
@ -235,6 +238,9 @@ struct Zone : private JS::shadow::Zone,
bool isSystem;
/* Whether this zone is being used by a thread with an ExclusiveContext. */
bool usedByExclusiveThread;
/*
* These flags help us to discover if a compartment that shouldn't be alive
* manages to outlive a GC.

View File

@ -1452,14 +1452,14 @@ class MOZ_STACK_CLASS ModuleCompiler
#ifdef JS_ION_PERF
bool trackPerfProfiledFunction(const Func &func, unsigned endCodeOffset) {
unsigned lineno = 0U, columnIndex = 0U;
tokenStream_.srcCoords.lineNumAndColumnIndex(func.srcOffset(), &lineno, &columnIndex);
parser().tokenStream.srcCoords.lineNumAndColumnIndex(func.srcOffset(), &lineno, &columnIndex);
unsigned startCodeOffset = func.codeLabel()->offset();
unsigned startCodeOffset = func.code()->offset();
return module_->trackPerfProfiledFunction(func.name(), startCodeOffset, endCodeOffset, lineno, columnIndex);
}
bool trackPerfProfiledBlocks(AsmJSPerfSpewer &perfSpewer, const Func &func, unsigned endCodeOffset) {
unsigned startCodeOffset = func.codeLabel()->offset();
unsigned startCodeOffset = func.code()->offset();
perfSpewer.noteBlocksOffsets(masm_);
return module_->trackPerfProfiledBlocks(func.name(), startCodeOffset, endCodeOffset, perfSpewer.basicBlocks());
}
@ -4788,7 +4788,7 @@ GenerateCode(ModuleCompiler &m, ModuleCompiler::Func &func, MIRGenerator &mir, L
#ifdef JS_ION_PERF
if (PerfBlockEnabled()) {
if (!m.trackPerfProfiledBlocks(mirGen.perfSpewer(), func, m.masm().size()))
if (!m.trackPerfProfiledBlocks(mir.perfSpewer(), func, m.masm().size()))
return false;
} else if (PerfFuncEnabled()) {
if (!m.trackPerfProfiledFunction(func, m.masm().size()))
@ -4871,7 +4871,7 @@ CheckFunctionsSequential(ModuleCompiler &m)
return true;
}
#ifdef JS_PARALLEL_COMPILATION
#ifdef JS_WORKER_THREADS
// State of compilation as tracked and updated by the main thread.
struct ParallelGroupState
{
@ -5063,7 +5063,7 @@ CheckFunctionsParallel(ModuleCompiler &m)
}
return true;
}
#endif // JS_PARALLEL_COMPILATION
#endif // JS_WORKER_THREADS
static bool
CheckFuncPtrTable(ModuleCompiler &m, ParseNode *var)
@ -6311,7 +6311,7 @@ CheckModule(JSContext *cx, AsmJSParser &parser, ParseNode *stmtList,
if (!CheckModuleGlobals(m))
return false;
#ifdef JS_PARALLEL_COMPILATION
#ifdef JS_WORKER_THREADS
if (OffThreadCompilationEnabled(cx)) {
if (!CheckFunctionsParallel(m))
return false;
@ -6369,9 +6369,9 @@ js::CompileAsmJS(JSContext *cx, AsmJSParser &parser, ParseNode *stmtList, bool *
if (!EnsureAsmJSSignalHandlersInstalled(cx->runtime()))
return Warn(cx, JSMSG_USE_ASM_TYPE_FAIL, "Platform missing signal handler support");
# ifdef JS_PARALLEL_COMPILATION
# ifdef JS_WORKER_THREADS
if (OffThreadCompilationEnabled(cx)) {
if (!EnsureParallelCompilationInitialized(cx->runtime()))
if (!EnsureWorkerThreadsInitialized(cx->runtime()))
return Warn(cx, JSMSG_USE_ASM_TYPE_FAIL, "Failed compilation thread initialization");
}
# endif

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