This commit is contained in:
Ryan VanderMeulen 2013-07-19 20:51:11 -04:00
Родитель 569e063c11 d5c67ff5d1
Коммит 8de760cfd1
232 изменённых файлов: 3178 добавлений и 2730 удалений

Просмотреть файл

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

Просмотреть файл

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

Просмотреть файл

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

Просмотреть файл

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

Просмотреть файл

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

Просмотреть файл

@ -54,6 +54,21 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=410052
testUnselectTableColumn("grid2", 0, cellsArray); testUnselectTableColumn("grid2", 0, cellsArray);
testUnselectTableRow("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(); SimpleTest.finish();
} }
@ -65,10 +80,13 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=410052
<a target="_blank" <a target="_blank"
title="implement nsIAccessibleTable selection methods for ARIA grids" 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" <a target="_blank"
title="nsHTMLTableCellAccessible is used in dojo's crazy ARIA grid" 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> <p id="display"></p>
<div id="content" style="display: none"></div> <div id="content" style="display: none"></div>
@ -112,8 +130,8 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=410052
<div role="row"> <div role="row">
<table role="presentation"> <table role="presentation">
<tr> <tr>
<td role="columnheader">header1</td> <td role="columnheader" aria-selected="false">header1</td>
<td role="columnheader">header2</td> <td role="columnheader" aria-selected="false">header2</td>
</tr> </tr>
</table> </table>
</div> </div>
@ -127,5 +145,17 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=410052
</div> </div>
</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> </body>
</html> </html>

Просмотреть файл

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

Просмотреть файл

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

Просмотреть файл

@ -505,6 +505,7 @@
<image id="webapps-notification-icon" class="notification-anchor-icon" role="button"/> <image id="webapps-notification-icon" class="notification-anchor-icon" role="button"/>
<image id="plugins-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="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="blocked-plugins-notification-icon" class="notification-anchor-icon" role="button"/>
<image id="plugin-install-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"/> <image id="mixed-content-blocked-notification-icon" class="notification-anchor-icon" role="button"/>

Просмотреть файл

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

Просмотреть файл

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

Просмотреть файл

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

Просмотреть файл

@ -1285,11 +1285,33 @@ toolbar[iconsize="small"] #webrtc-status-button {
} }
#plugins-notification-icon { #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 { #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 { #plugin-install-notification-icon {

Просмотреть файл

@ -235,3 +235,6 @@ browser.jar:
#endif #endif
skin/classic/browser/webapps-16.png skin/classic/browser/webapps-16.png
skin/classic/browser/webapps-64.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)

Просмотреть файл

@ -3144,16 +3144,64 @@ toolbarbutton.chevron > .toolbarbutton-menu-dropmarker {
} }
#plugins-notification-icon { #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 { #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) { @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 { #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);
} }
} }

Просмотреть файл

@ -331,6 +331,12 @@ browser.jar:
skin/classic/browser/webapps-16.png skin/classic/browser/webapps-16.png
skin/classic/browser/webapps-16@2x.png skin/classic/browser/webapps-16@2x.png
skin/classic/browser/webapps-64.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/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 % override chrome://browser/skin/Toolbar.png chrome://browser/skin/lion/Toolbar.png os=Darwin osversion>=10.7

Двоичные данные
browser/themes/shared/plugins/notification-pluginAlert.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 648 B

Двоичные данные
browser/themes/shared/plugins/notification-pluginAlert@2x.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 1.2 KiB

Двоичные данные
browser/themes/shared/plugins/notification-pluginBlocked.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 968 B

Двоичные данные
browser/themes/shared/plugins/notification-pluginBlocked@2x.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 2.0 KiB

Двоичные данные
browser/themes/shared/plugins/notification-pluginNormal.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 340 B

Двоичные данные
browser/themes/shared/plugins/notification-pluginNormal@2x.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 469 B

Просмотреть файл

@ -2537,11 +2537,33 @@ toolbarbutton.bookmark-item[dragover="true"][open="true"] {
} }
#plugins-notification-icon { #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 { #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 { #plugin-install-notification-icon {

Просмотреть файл

@ -72,6 +72,9 @@ browser.jar:
skin/classic/browser/urlbar-history-dropmarker.png skin/classic/browser/urlbar-history-dropmarker.png
skin/classic/browser/webapps-16.png skin/classic/browser/webapps-16.png
skin/classic/browser/webapps-64.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-16.png
skin/classic/browser/webRTC-shareDevice-64.png skin/classic/browser/webRTC-shareDevice-64.png
skin/classic/browser/webRTC-sharingDevice-16.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/urlbar-history-dropmarker.png
skin/classic/aero/browser/webapps-16.png skin/classic/aero/browser/webapps-16.png
skin/classic/aero/browser/webapps-64.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-16.png
skin/classic/aero/browser/webRTC-shareDevice-64.png skin/classic/aero/browser/webRTC-shareDevice-64.png
skin/classic/aero/browser/webRTC-sharingDevice-16.png skin/classic/aero/browser/webRTC-sharingDevice-16.png

Просмотреть файл

@ -31,7 +31,7 @@ AC_LANG_RESTORE
AC_MSG_RESULT($ac_have_gcc_pr39608) AC_MSG_RESULT($ac_have_gcc_pr39608)
if test "$ac_have_gcc_pr39608" = "yes"; then 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 exit 1
fi fi
]) ])

Просмотреть файл

@ -42,7 +42,7 @@ AC_LANG_RESTORE
if test "$ac_have_llvm_pr8927" = "yes"; then if test "$ac_have_llvm_pr8927" = "yes"; then
AC_MSG_RESULT(yes) 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 see http://developer.mozilla.org/en-US/docs/Developer_Guide/Build_Instructions/Mac_OS_X_Prerequisites
echo for more information. echo for more information.
exit 1 exit 1

Просмотреть файл

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

Просмотреть файл

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

Просмотреть файл

@ -38,43 +38,9 @@
var _sunSpiderStartDate = new Date(); var _sunSpiderStartDate = new Date();
/* ***** BEGIN LICENSE BLOCK ***** /* This Source Code Form is subject to the terms of the Mozilla Public
* Version: MPL 1.1/GPL 2.0/LGPL 2.1 * 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/. */
* 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 ***** */
// From: http://lxr.mozilla.org/mozilla/source/extensions/xml-rpc/src/nsXmlRpcClient.js#956 // From: http://lxr.mozilla.org/mozilla/source/extensions/xml-rpc/src/nsXmlRpcClient.js#956

Просмотреть файл

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

Просмотреть файл

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

Просмотреть файл

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

Просмотреть файл

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

Просмотреть файл

@ -106,7 +106,6 @@ MOCHITEST_FILES = \
test_reactivate.html \ test_reactivate.html \
test_readyState.html \ test_readyState.html \
test_replay_metadata.html \ test_replay_metadata.html \
test_seek.html \
test_seek2.html \ test_seek2.html \
test_seek_out_of_range.html \ test_seek_out_of_range.html \
test_source.html \ test_source.html \
@ -140,6 +139,7 @@ MOCHITEST_FILES = \
test_VideoPlaybackQuality.html \ test_VideoPlaybackQuality.html \
test_VideoPlaybackQuality_disabled.html \ test_VideoPlaybackQuality_disabled.html \
test_webvtt_disabled.html \ test_webvtt_disabled.html \
test_playback_rate_playpause.html \
$(NULL) $(NULL)
# Disabled on Windows for frequent intermittent failures # 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) $(filter disabled-on-windows-for-timeouts--bug-752796, test_streams_element_capture_reset.html)
endif 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 # Don't run in suite
ifndef MOZ_SUITE ifndef MOZ_SUITE
MOCHITEST_FILES += test_play_twice.html MOCHITEST_FILES += test_play_twice.html
@ -187,6 +179,10 @@ endif
# test_bug465498.html # test_bug465498.html
# Bug 707777: # Bug 707777:
# test_bug493187.html # 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 # sample files
MOCHITEST_FILES += \ MOCHITEST_FILES += \

Просмотреть файл

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

Просмотреть файл

@ -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."); 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)."); is(t.currentTime, t.duration, "Current time should be equal to the duration (not change by playback rate).");
} }
test_defaultPlaybackRate(e); finish_test(t);
}
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);
}
} }
function onratechange(e) { function onratechange(e) {
@ -207,7 +174,6 @@ function startTest(test, token) {
element.playbackRate = VERY_SLOW_RATE; element.playbackRate = VERY_SLOW_RATE;
is(element.playbackRate, SLOW_RATE, "PlaybackRate should be clamped to " + SLOW_RATE + "."); is(element.playbackRate, SLOW_RATE, "PlaybackRate should be clamped to " + SLOW_RATE + ".");
element.play(); element.play();
is(element.playbackRate, 1.0, "playbackRate should be reset to 1.0 on play() call");
element.playbackRate = SLOW_RATE; element.playbackRate = SLOW_RATE;
}); });
} }

Просмотреть файл

@ -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>

Просмотреть файл

@ -1,39 +1,7 @@
/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* ***** BEGIN LICENSE BLOCK ***** /* This Source Code Form is subject to the terms of the Mozilla Public
* Version: MPL 1.1/GPL 2.0/LGPL 2.1 * 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/. */
* 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 ***** */
#include "nsIDOMCSSRule.idl" #include "nsIDOMCSSRule.idl"

Просмотреть файл

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

Просмотреть файл

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

Просмотреть файл

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

Просмотреть файл

@ -1,38 +1,6 @@
/* ***** BEGIN LICENSE BLOCK ***** /* This Source Code Form is subject to the terms of the Mozilla Public
* Version: MPL 1.1/GPL 2.0/LGPL 2.1 * 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/. */
* 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 ***** */
#include "gfxSVGGlyphs.h" #include "gfxSVGGlyphs.h"

Просмотреть файл

@ -1,38 +1,6 @@
/* ***** BEGIN LICENSE BLOCK ***** /* This Source Code Form is subject to the terms of the Mozilla Public
* Version: MPL 1.1/GPL 2.0/LGPL 2.1 * 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/. */
* 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 ***** */
#ifndef GFX_SVG_GLYPHS_WRAPPER_H #ifndef GFX_SVG_GLYPHS_WRAPPER_H
#define GFX_SVG_GLYPHS_WRAPPER_H #define GFX_SVG_GLYPHS_WRAPPER_H

Просмотреть файл

@ -1,40 +1,8 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
* *
* ***** BEGIN LICENSE BLOCK ***** * This Source Code Form is subject to the terms of the Mozilla Public
* Version: MPL 1.1/GPL 2.0/LGPL 2.1 * 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/. */
* 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 ***** */
#include "nsISupports.idl" #include "nsISupports.idl"

Просмотреть файл

@ -3,42 +3,9 @@ License information for hyph_af.dic:
This file is based on the TeX hyphenation patterns distributed under the This file is based on the TeX hyphenation patterns distributed under the
LaTeX Project Public License (LPPL) as part of the hyph-utf8 package. LaTeX Project Public License (LPPL) as part of the hyph-utf8 package.
***** BEGIN LICENSE BLOCK ***** This Source Code Form is subject to the terms of the Mozilla Public
Version: MPL 1.1/GPL 2.0/LGPL 2.1 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/.
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 *****
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Просмотреть файл

@ -3,42 +3,9 @@ License information for hyph_bg.dic:
This file is based on the TeX hyphenation patterns distributed under the This file is based on the TeX hyphenation patterns distributed under the
LaTeX Project Public License (LPPL) as part of the hyph-utf8 package. LaTeX Project Public License (LPPL) as part of the hyph-utf8 package.
***** BEGIN LICENSE BLOCK ***** This Source Code Form is subject to the terms of the Mozilla Public
Version: MPL 1.1/GPL 2.0/LGPL 2.1 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/.
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 *****
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Просмотреть файл

@ -3,42 +3,9 @@ License information for hyph_ca.dic:
This file is based on the TeX hyphenation patterns distributed under the This file is based on the TeX hyphenation patterns distributed under the
LaTeX Project Public License (LPPL) as part of the hyph-utf8 package. LaTeX Project Public License (LPPL) as part of the hyph-utf8 package.
***** BEGIN LICENSE BLOCK ***** This Source Code Form is subject to the terms of the Mozilla Public
Version: MPL 1.1/GPL 2.0/LGPL 2.1 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/.
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 *****
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Просмотреть файл

@ -3,42 +3,9 @@ License information for hyph_cy.dic:
This file is based on the TeX hyphenation patterns distributed under the This file is based on the TeX hyphenation patterns distributed under the
LaTeX Project Public License (LPPL) as part of the hyph-utf8 package. LaTeX Project Public License (LPPL) as part of the hyph-utf8 package.
***** BEGIN LICENSE BLOCK ***** This Source Code Form is subject to the terms of the Mozilla Public
Version: MPL 1.1/GPL 2.0/LGPL 2.1 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/.
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 *****
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Просмотреть файл

@ -3,42 +3,9 @@ License information for hyph_da.dic:
This file is based on the TeX hyphenation patterns distributed under the This file is based on the TeX hyphenation patterns distributed under the
LaTeX Project Public License (LPPL) as part of the hyph-utf8 package. LaTeX Project Public License (LPPL) as part of the hyph-utf8 package.
***** BEGIN LICENSE BLOCK ***** This Source Code Form is subject to the terms of the Mozilla Public
Version: MPL 1.1/GPL 2.0/LGPL 2.1 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/.
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 *****
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Просмотреть файл

@ -3,42 +3,9 @@ License information for hyph_de-1901.dic:
This file is based on the TeX hyphenation patterns distributed under the This file is based on the TeX hyphenation patterns distributed under the
LaTeX Project Public License (LPPL) as part of the hyph-utf8 package. LaTeX Project Public License (LPPL) as part of the hyph-utf8 package.
***** BEGIN LICENSE BLOCK ***** This Source Code Form is subject to the terms of the Mozilla Public
Version: MPL 1.1/GPL 2.0/LGPL 2.1 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/.
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 *****
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Просмотреть файл

@ -3,42 +3,10 @@ License information for hyph_de-1996.dic:
This file is based on the TeX hyphenation patterns distributed under the This file is based on the TeX hyphenation patterns distributed under the
LaTeX Project Public License (LPPL) as part of the hyph-utf8 package. 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 This Source Code Form is subject to the terms of the Mozilla Public
1.1 (the "License"); you may not use this file except in compliance with License, v. 2.0. If a copy of the MPL was not distributed with this
the License. You may obtain a copy of the License at file, You can obtain one at http://mozilla.org/MPL/2.0/.
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 *****
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Просмотреть файл

@ -3,42 +3,9 @@ License information for hyph_de-CH.dic:
This file is based on the TeX hyphenation patterns distributed under the This file is based on the TeX hyphenation patterns distributed under the
LaTeX Project Public License (LPPL) as part of the hyph-utf8 package. LaTeX Project Public License (LPPL) as part of the hyph-utf8 package.
***** BEGIN LICENSE BLOCK ***** This Source Code Form is subject to the terms of the Mozilla Public
Version: MPL 1.1/GPL 2.0/LGPL 2.1 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/.
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 *****
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Просмотреть файл

@ -3,42 +3,9 @@ License information for hyph_eo.dic:
This file is based on the TeX hyphenation patterns distributed under the This file is based on the TeX hyphenation patterns distributed under the
LaTeX Project Public License (LPPL) as part of the hyph-utf8 package. LaTeX Project Public License (LPPL) as part of the hyph-utf8 package.
***** BEGIN LICENSE BLOCK ***** This Source Code Form is subject to the terms of the Mozilla Public
Version: MPL 1.1/GPL 2.0/LGPL 2.1 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/.
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 *****
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Просмотреть файл

@ -3,42 +3,9 @@ License information for hyph_es.dic:
This file is based on the TeX hyphenation patterns distributed under the This file is based on the TeX hyphenation patterns distributed under the
LaTeX Project Public License (LPPL) as part of the hyph-utf8 package. LaTeX Project Public License (LPPL) as part of the hyph-utf8 package.
***** BEGIN LICENSE BLOCK ***** This Source Code Form is subject to the terms of the Mozilla Public
Version: MPL 1.1/GPL 2.0/LGPL 2.1 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/.
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 *****
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Просмотреть файл

@ -3,42 +3,9 @@ License information for hyph_et.dic:
This file is based on the TeX hyphenation patterns distributed under the This file is based on the TeX hyphenation patterns distributed under the
LaTeX Project Public License (LPPL) as part of the hyph-utf8 package. LaTeX Project Public License (LPPL) as part of the hyph-utf8 package.
***** BEGIN LICENSE BLOCK ***** This Source Code Form is subject to the terms of the Mozilla Public
Version: MPL 1.1/GPL 2.0/LGPL 2.1 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/.
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 *****
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Просмотреть файл

@ -3,42 +3,9 @@ License information for hyph_gl.dic:
This file is based on the TeX hyphenation patterns distributed under the This file is based on the TeX hyphenation patterns distributed under the
LaTeX Project Public License (LPPL) as part of the hyph-utf8 package. LaTeX Project Public License (LPPL) as part of the hyph-utf8 package.
***** BEGIN LICENSE BLOCK ***** This Source Code Form is subject to the terms of the Mozilla Public
Version: MPL 1.1/GPL 2.0/LGPL 2.1 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/.
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 *****
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Просмотреть файл

@ -3,42 +3,9 @@ License information for hyph_hr.dic:
This file is based on the TeX hyphenation patterns distributed under the This file is based on the TeX hyphenation patterns distributed under the
LaTeX Project Public License (LPPL) as part of the hyph-utf8 package. LaTeX Project Public License (LPPL) as part of the hyph-utf8 package.
***** BEGIN LICENSE BLOCK ***** This Source Code Form is subject to the terms of the Mozilla Public
Version: MPL 1.1/GPL 2.0/LGPL 2.1 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/.
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 *****
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Просмотреть файл

@ -3,42 +3,9 @@ License information for hyph_hsb.dic:
This file is based on the TeX hyphenation patterns distributed under the This file is based on the TeX hyphenation patterns distributed under the
LaTeX Project Public License (LPPL) as part of the hyph-utf8 package. LaTeX Project Public License (LPPL) as part of the hyph-utf8 package.
***** BEGIN LICENSE BLOCK ***** This Source Code Form is subject to the terms of the Mozilla Public
Version: MPL 1.1/GPL 2.0/LGPL 2.1 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/.
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 *****
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Просмотреть файл

@ -5,40 +5,7 @@ by processing the TeX hyphenation patterns with substrings.pl.
% Huhyphn - hungarian hyphenation patterns v20110815 % Huhyphn - hungarian hyphenation patterns v20110815
% %
% ***** BEGIN LICENSE BLOCK ***** % This Source Code Form is subject to the terms of the Mozilla Public
% Version: MPL 1.1/GPL 2.0/LGPL 2.1 % 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/.
% 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 *****
% %

Просмотреть файл

@ -3,42 +3,9 @@ License information for hyph_ia.dic:
This file is based on the TeX hyphenation patterns distributed under the This file is based on the TeX hyphenation patterns distributed under the
LaTeX Project Public License (LPPL) as part of the hyph-utf8 package. LaTeX Project Public License (LPPL) as part of the hyph-utf8 package.
***** BEGIN LICENSE BLOCK ***** This Source Code Form is subject to the terms of the Mozilla Public
Version: MPL 1.1/GPL 2.0/LGPL 2.1 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/.
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 *****
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Просмотреть файл

@ -3,48 +3,10 @@ License information for hyph_is.dic:
This file is based on the TeX hyphenation patterns distributed under the This file is based on the TeX hyphenation patterns distributed under the
LaTeX Project Public License (LPPL) as part of the hyph-utf8 package. 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 This Source Code Form is subject to the terms of the Mozilla Public
1.1 (the "License"); you may not use this file except in compliance with License, v. 2.0. If a copy of the MPL was not distributed with this
the License. You may obtain a copy of the License at file, You can obtain one at http://mozilla.org/MPL/2.0/.
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
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Просмотреть файл

@ -3,42 +3,9 @@ License information for hyph_it.dic:
This file is based on the TeX hyphenation patterns distributed under the This file is based on the TeX hyphenation patterns distributed under the
LaTeX Project Public License (LPPL) as part of the hyph-utf8 package. LaTeX Project Public License (LPPL) as part of the hyph-utf8 package.
***** BEGIN LICENSE BLOCK ***** This Source Code Form is subject to the terms of the Mozilla Public
Version: MPL 1.1/GPL 2.0/LGPL 2.1 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/.
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 *****
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Просмотреть файл

@ -3,42 +3,9 @@ License information for hyph_kmr.dic:
This file is based on the TeX hyphenation patterns distributed under the This file is based on the TeX hyphenation patterns distributed under the
LaTeX Project Public License (LPPL) as part of the hyph-utf8 package. LaTeX Project Public License (LPPL) as part of the hyph-utf8 package.
***** BEGIN LICENSE BLOCK ***** This Source Code Form is subject to the terms of the Mozilla Public
Version: MPL 1.1/GPL 2.0/LGPL 2.1 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/.
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 *****
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Просмотреть файл

@ -3,42 +3,10 @@ License information for hyph_la.dic:
This file is based on the TeX hyphenation patterns distributed under the This file is based on the TeX hyphenation patterns distributed under the
LaTeX Project Public License (LPPL) as part of the hyph-utf8 package. 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 This Source Code Form is subject to the terms of the Mozilla Public
1.1 (the "License"); you may not use this file except in compliance with License, v. 2.0. If a copy of the MPL was not distributed with this
the License. You may obtain a copy of the License at file, You can obtain one at http://mozilla.org/MPL/2.0/.
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 *****
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Просмотреть файл

@ -3,42 +3,10 @@ License information for hyph_lt.dic:
This file is based on the TeX hyphenation patterns distributed under the This file is based on the TeX hyphenation patterns distributed under the
LaTeX Project Public License (LPPL) as part of the hyph-utf8 package. 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 This Source Code Form is subject to the terms of the Mozilla Public
1.1 (the "License"); you may not use this file except in compliance with License, v. 2.0. If a copy of the MPL was not distributed with this
the License. You may obtain a copy of the License at file, You can obtain one at http://mozilla.org/MPL/2.0/.
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 *****
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Просмотреть файл

@ -3,42 +3,9 @@ License information for hyph_mn.dic:
This file is based on the TeX hyphenation patterns distributed under the This file is based on the TeX hyphenation patterns distributed under the
LaTeX Project Public License (LPPL) as part of the hyph-utf8 package. LaTeX Project Public License (LPPL) as part of the hyph-utf8 package.
***** BEGIN LICENSE BLOCK ***** This Source Code Form is subject to the terms of the Mozilla Public
Version: MPL 1.1/GPL 2.0/LGPL 2.1 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/.
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 *****
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Просмотреть файл

@ -3,42 +3,9 @@ License information for hyph_nl.dic:
This file is based on the TeX hyphenation patterns distributed under the This file is based on the TeX hyphenation patterns distributed under the
LaTeX Project Public License (LPPL) as part of the hyph-utf8 package. LaTeX Project Public License (LPPL) as part of the hyph-utf8 package.
***** BEGIN LICENSE BLOCK ***** This Source Code Form is subject to the terms of the Mozilla Public
Version: MPL 1.1/GPL 2.0/LGPL 2.1 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/.
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 *****
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Просмотреть файл

@ -3,42 +3,10 @@ License information for hyph_pt.dic:
This file is based on the TeX hyphenation patterns distributed under the This file is based on the TeX hyphenation patterns distributed under the
LaTeX Project Public License (LPPL) as part of the hyph-utf8 package. 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 This Source Code Form is subject to the terms of the Mozilla Public
1.1 (the "License"); you may not use this file except in compliance with License, v. 2.0. If a copy of the MPL was not distributed with this
the License. You may obtain a copy of the License at file, You can obtain one at http://mozilla.org/MPL/2.0/.
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 *****
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Просмотреть файл

@ -3,42 +3,10 @@ License information for hyph_ru.dic:
This file is based on the TeX hyphenation patterns distributed under the This file is based on the TeX hyphenation patterns distributed under the
LaTeX Project Public License (LPPL) as part of the hyph-utf8 package. 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 This Source Code Form is subject to the terms of the Mozilla Public
1.1 (the "License"); you may not use this file except in compliance with License, v. 2.0. If a copy of the MPL was not distributed with this
the License. You may obtain a copy of the License at file, You can obtain one at http://mozilla.org/MPL/2.0/.
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 *****
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Просмотреть файл

@ -3,42 +3,9 @@ License information for hyph_sh.dic:
This file is based on the TeX hyphenation patterns distributed under the This file is based on the TeX hyphenation patterns distributed under the
LaTeX Project Public License (LPPL) as part of the hyph-utf8 package. LaTeX Project Public License (LPPL) as part of the hyph-utf8 package.
***** BEGIN LICENSE BLOCK ***** This Source Code Form is subject to the terms of the Mozilla Public
Version: MPL 1.1/GPL 2.0/LGPL 2.1 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/.
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 *****
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Просмотреть файл

@ -3,42 +3,9 @@ License information for hyph_sl.dic:
This file is based on the TeX hyphenation patterns distributed under the This file is based on the TeX hyphenation patterns distributed under the
LaTeX Project Public License (LPPL) as part of the hyph-utf8 package. LaTeX Project Public License (LPPL) as part of the hyph-utf8 package.
***** BEGIN LICENSE BLOCK ***** This Source Code Form is subject to the terms of the Mozilla Public
Version: MPL 1.1/GPL 2.0/LGPL 2.1 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/.
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 *****
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Просмотреть файл

@ -3,42 +3,9 @@ License information for hyph_sv.dic:
This file is based on the TeX hyphenation patterns distributed under the This file is based on the TeX hyphenation patterns distributed under the
LaTeX Project Public License (LPPL) as part of the hyph-utf8 package. LaTeX Project Public License (LPPL) as part of the hyph-utf8 package.
***** BEGIN LICENSE BLOCK ***** This Source Code Form is subject to the terms of the Mozilla Public
Version: MPL 1.1/GPL 2.0/LGPL 2.1 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/.
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 *****
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Просмотреть файл

@ -3,42 +3,10 @@ License information for hyph_tr.dic:
This file is based on the TeX hyphenation patterns distributed under the This file is based on the TeX hyphenation patterns distributed under the
LaTeX Project Public License (LPPL) as part of the hyph-utf8 package. 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 This Source Code Form is subject to the terms of the Mozilla Public
1.1 (the "License"); you may not use this file except in compliance with License, v. 2.0. If a copy of the MPL was not distributed with this
the License. You may obtain a copy of the License at file, You can obtain one at http://mozilla.org/MPL/2.0/.
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 *****
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Просмотреть файл

@ -3,42 +3,9 @@ License information for hyph_uk.dic:
This file is based on the TeX hyphenation patterns distributed under the This file is based on the TeX hyphenation patterns distributed under the
LaTeX Project Public License (LPPL) as part of the hyph-utf8 package. LaTeX Project Public License (LPPL) as part of the hyph-utf8 package.
***** BEGIN LICENSE BLOCK ***** This Source Code Form is subject to the terms of the Mozilla Public
Version: MPL 1.1/GPL 2.0/LGPL 2.1 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/.
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 *****
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Просмотреть файл

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

Просмотреть файл

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

Просмотреть файл

@ -15,26 +15,19 @@ class TraceLogging
{ {
public: public:
enum Type { enum Type {
SCRIPT_START,
SCRIPT_STOP,
ION_COMPILE_START, ION_COMPILE_START,
ION_COMPILE_STOP, 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_START,
YARR_JIT_STOP, YARR_JIT_STOP,
JM_SAFEPOINT_START,
JM_SAFEPOINT_STOP,
JM_START,
JM_STOP,
JM_COMPILE_START,
JM_COMPILE_STOP,
GC_START, GC_START,
GC_STOP, GC_STOP,
INTERPRETER_START, MINOR_GC_START,
INTERPRETER_STOP, MINOR_GC_STOP,
INFO_ENGINE_INTERPRETER,
INFO_ENGINE_BASELINE,
INFO_ENGINE_IONMONKEY,
INFO INFO
}; };

Просмотреть файл

@ -31,7 +31,7 @@ AC_LANG_RESTORE
AC_MSG_RESULT($ac_have_gcc_pr39608) AC_MSG_RESULT($ac_have_gcc_pr39608)
if test "$ac_have_gcc_pr39608" = "yes"; then 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 exit 1
fi fi
]) ])

Просмотреть файл

@ -42,7 +42,7 @@ AC_LANG_RESTORE
if test "$ac_have_llvm_pr8927" = "yes"; then if test "$ac_have_llvm_pr8927" = "yes"; then
AC_MSG_RESULT(yes) 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 see http://developer.mozilla.org/en-US/docs/Developer_Guide/Build_Instructions/Mac_OS_X_Prerequisites
echo for more information. echo for more information.
exit 1 exit 1

Просмотреть файл

@ -316,7 +316,8 @@ EvalKernel(JSContext *cx, const CallArgs &args, EvalType evalType, AbstractFrame
.setNoScriptRval(false) .setNoScriptRval(false)
.setPrincipals(principals) .setPrincipals(principals)
.setOriginPrincipals(originPrincipals); .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); chars.get(), length, stableStr, staticLevel);
if (!compiled) if (!compiled)
return false; return false;
@ -380,7 +381,8 @@ js::DirectEvalFromIon(JSContext *cx,
.setNoScriptRval(false) .setNoScriptRval(false)
.setPrincipals(principals) .setPrincipals(principals)
.setOriginPrincipals(originPrincipals); .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); chars.get(), length, stableStr, staticLevel);
if (!compiled) if (!compiled)
return false; return false;

36
js/src/builtin/Map.js Normal 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);
}
}

Просмотреть файл

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

36
js/src/builtin/Set.js Normal 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);
}
}

Просмотреть файл

@ -73,7 +73,12 @@ var std_String_toUpperCase = String.prototype.toUpperCase;
var std_WeakMap_get = WeakMap.prototype.get; var std_WeakMap_get = WeakMap.prototype.get;
var std_WeakMap_has = WeakMap.prototype.has; var std_WeakMap_has = WeakMap.prototype.has;
var std_WeakMap_set = WeakMap.prototype.set; 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 **********/ /********** List specification type **********/

Просмотреть файл

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

Просмотреть файл

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

Просмотреть файл

@ -24,20 +24,21 @@ using namespace js::frontend;
using mozilla::Maybe; using mozilla::Maybe;
static bool 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 // 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 // JSScript as 32-bits. It could be lifted fairly easily, since the compiler
// is using size_t internally already. // is using size_t internally already.
if (length > UINT32_MAX) { 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 false;
} }
return true; return true;
} }
static bool static bool
SetSourceMap(JSContext *cx, TokenStream &tokenStream, ScriptSource *ss) SetSourceMap(ExclusiveContext *cx, TokenStream &tokenStream, ScriptSource *ss)
{ {
if (tokenStream.hasSourceMap()) { if (tokenStream.hasSourceMap()) {
if (!ss->setSourceMap(cx, tokenStream.releaseSourceMap())) if (!ss->setSourceMap(cx, tokenStream.releaseSourceMap()))
@ -74,13 +75,16 @@ CheckArgumentsWithinEval(JSContext *cx, Parser<FullParseHandler> &parser, Handle
} }
static bool static bool
MaybeCheckEvalFreeVariables(JSContext *cx, HandleScript evalCaller, HandleObject scopeChain, MaybeCheckEvalFreeVariables(ExclusiveContext *cxArg, HandleScript evalCaller, HandleObject scopeChain,
Parser<FullParseHandler> &parser, Parser<FullParseHandler> &parser,
ParseContext<FullParseHandler> &pc) ParseContext<FullParseHandler> &pc)
{ {
if (!evalCaller || !evalCaller->functionOrCallerFunction()) if (!evalCaller || !evalCaller->functionOrCallerFunction())
return true; 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 // Watch for uses of 'arguments' within the evaluated script, both as
// free variables and as variables redeclared with 'var'. // free variables and as variables redeclared with 'var'.
RootedFunction fun(cx, evalCaller->functionOrCallerFunction()); RootedFunction fun(cx, evalCaller->functionOrCallerFunction());
@ -120,17 +124,18 @@ MaybeCheckEvalFreeVariables(JSContext *cx, HandleScript evalCaller, HandleObject
} }
inline bool inline bool
CanLazilyParse(JSContext *cx, const CompileOptions &options) CanLazilyParse(ExclusiveContext *cx, const CompileOptions &options)
{ {
return options.canLazilyParse && return options.canLazilyParse &&
options.compileAndGo && options.compileAndGo &&
options.sourcePolicy == CompileOptions::SAVE_SOURCE && options.sourcePolicy == CompileOptions::SAVE_SOURCE &&
!cx->compartment()->debugMode(); cx->isJSContext() &&
!cx->asJSContext()->compartment()->debugMode();
} }
inline void void
MaybeCallSourceHandler(JSContext *cx, const CompileOptions &options, frontend::MaybeCallSourceHandler(JSContext *cx, const CompileOptions &options,
const jschar *chars, size_t length) const jschar *chars, size_t length)
{ {
JSSourceHandler listener = cx->runtime()->debugHooks.sourceHandler; JSSourceHandler listener = cx->runtime()->debugHooks.sourceHandler;
void *listenerData = cx->runtime()->debugHooks.sourceHandlerData; void *listenerData = cx->runtime()->debugHooks.sourceHandlerData;
@ -143,7 +148,7 @@ MaybeCallSourceHandler(JSContext *cx, const CompileOptions &options,
} }
JSScript * JSScript *
frontend::CompileScript(JSContext *cx, HandleObject scopeChain, frontend::CompileScript(ExclusiveContext *cx, LifoAlloc *alloc, HandleObject scopeChain,
HandleScript evalCaller, HandleScript evalCaller,
const CompileOptions &options, const CompileOptions &options,
const jschar *chars, size_t length, const jschar *chars, size_t length,
@ -154,7 +159,8 @@ frontend::CompileScript(JSContext *cx, HandleObject scopeChain,
RootedString source(cx, source_); RootedString source(cx, source_);
SkipRoot skip(cx, &chars); 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 * 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)); JS::RootedScriptSource sourceObject(cx, ScriptSourceObject::create(cx, ss));
if (!sourceObject) if (!sourceObject)
return NULL; 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) { switch (options.sourcePolicy) {
case CompileOptions::SAVE_SOURCE: case CompileOptions::SAVE_SOURCE:
if (!ss->setSourceCopy(cx, chars, length, false, sct)) if (!ss->setSourceCopy(cx->asJSContext(), chars, length, false, sct))
return NULL; return NULL;
break; break;
case CompileOptions::LAZY_SOURCE: case CompileOptions::LAZY_SOURCE:
@ -194,14 +209,12 @@ frontend::CompileScript(JSContext *cx, HandleObject scopeChain,
Maybe<Parser<SyntaxParseHandler> > syntaxParser; Maybe<Parser<SyntaxParseHandler> > syntaxParser;
if (canLazilyParse) { if (canLazilyParse) {
syntaxParser.construct(cx, &cx->tempLifoAlloc(), syntaxParser.construct(cx, alloc, options, chars, length, /* foldConstants = */ false,
options, chars, length, /* foldConstants = */ false,
(Parser<SyntaxParseHandler> *) NULL, (Parser<SyntaxParseHandler> *) NULL,
(LazyScript *) NULL); (LazyScript *) NULL);
} }
Parser<FullParseHandler> parser(cx, &cx->tempLifoAlloc(), Parser<FullParseHandler> parser(cx, alloc, options, chars, length, /* foldConstants = */ true,
options, chars, length, /* foldConstants = */ true,
canLazilyParse ? &syntaxParser.ref() : NULL, NULL); canLazilyParse ? &syntaxParser.ref() : NULL, NULL);
parser.sct = sct; parser.sct = sct;
parser.ss = ss; parser.ss = ss;
@ -327,7 +340,10 @@ frontend::CompileScript(JSContext *cx, HandleObject scopeChain,
if (!FoldConstants(cx, &pn, &parser)) if (!FoldConstants(cx, &pn, &parser))
return NULL; 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; return NULL;
if (!EmitTree(cx, &bce, pn)) if (!EmitTree(cx, &bce, pn))
@ -354,7 +370,7 @@ frontend::CompileScript(JSContext *cx, HandleObject scopeChain,
bce.tellDebuggerAboutCompiledScript(cx); bce.tellDebuggerAboutCompiledScript(cx);
if (sct == &mysct && !sct->complete()) if (sct && !extraSct && !sct->complete())
return NULL; return NULL;
return script; return script;

Просмотреть файл

@ -15,12 +15,14 @@ namespace js {
class AutoNameVector; class AutoNameVector;
class LazyScript; class LazyScript;
class LifoAlloc;
struct SourceCompressionToken; struct SourceCompressionToken;
namespace frontend { namespace frontend {
JSScript * 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, const CompileOptions &options, const jschar *chars, size_t length,
JSString *source_ = NULL, unsigned staticLevel = 0, JSString *source_ = NULL, unsigned staticLevel = 0,
SourceCompressionToken *extraSct = NULL); SourceCompressionToken *extraSct = NULL);
@ -32,6 +34,14 @@ bool
CompileFunctionBody(JSContext *cx, MutableHandleFunction fun, CompileOptions options, CompileFunctionBody(JSContext *cx, MutableHandleFunction fun, CompileOptions options,
const AutoNameVector &formals, const jschar *chars, size_t length); 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 * True if str consists of an IdentifierStart character, followed by one or
* more IdentifierPart characters, i.e. it matches the IdentifierName production * more IdentifierPart characters, i.e. it matches the IdentifierName production

Просмотреть файл

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

Просмотреть файл

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

Просмотреть файл

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

Просмотреть файл

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

Просмотреть файл

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

Просмотреть файл

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

Просмотреть файл

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

Просмотреть файл

@ -492,7 +492,7 @@ SendFunctionsToPerf(JSContext *cx, AsmJSModule &module)
unsigned long base = (unsigned long) module.functionCode(); unsigned long base = (unsigned long) module.functionCode();
const AsmJSModule::PostLinkFailureInfo &info = module.postLinkFailureInfo(); const AsmJSModule::PostLinkFailureInfo &info = module.postLinkFailureInfo();
const char *filename = const_cast<char *>(info.scriptSource_->filename()); const char *filename = const_cast<char *>(info.scriptSource->filename());
for (unsigned i = 0; i < module.numPerfFunctions(); i++) { for (unsigned i = 0; i < module.numPerfFunctions(); i++) {
const AsmJSModule::ProfiledFunction &func = module.perfProfiledFunction(i); const AsmJSModule::ProfiledFunction &func = module.perfProfiledFunction(i);
@ -527,7 +527,7 @@ SendBlocksToPerf(JSContext *cx, AsmJSModule &module)
unsigned long funcBaseAddress = (unsigned long) module.functionCode(); unsigned long funcBaseAddress = (unsigned long) module.functionCode();
const AsmJSModule::PostLinkFailureInfo &info = module.postLinkFailureInfo(); const AsmJSModule::PostLinkFailureInfo &info = module.postLinkFailureInfo();
const char *filename = const_cast<char *>(info.scriptSource_->filename()); const char *filename = const_cast<char *>(info.scriptSource->filename());
for (unsigned i = 0; i < module.numPerfBlocksFunctions(); i++) { for (unsigned i = 0; i < module.numPerfBlocksFunctions(); i++) {
const AsmJSModule::ProfiledBlocksFunction &func = module.perfProfiledBlocksFunction(i); const AsmJSModule::ProfiledBlocksFunction &func = module.perfProfiledBlocksFunction(i);

Просмотреть файл

@ -1032,6 +1032,10 @@ ion::BailoutIonToBaseline(JSContext *cx, JitActivation *activation, IonBailoutIt
JS_ASSERT(bailoutInfo != NULL); JS_ASSERT(bailoutInfo != NULL);
JS_ASSERT(*bailoutInfo == NULL); JS_ASSERT(*bailoutInfo == NULL);
#if JS_TRACE_LOGGING
TraceLogging::defaultLogger()->log(TraceLogging::INFO_ENGINE_BASELINE);
#endif
// The caller of the top frame must be one of the following: // The caller of the top frame must be one of the following:
// OptimizedJS - Ion calling into Ion. // OptimizedJS - Ion calling into Ion.
// BaselineStub - Baseline calling into Ion. // BaselineStub - Baseline calling into Ion.
@ -1107,6 +1111,12 @@ ion::BailoutIonToBaseline(JSContext *cx, JitActivation *activation, IonBailoutIt
RootedScript scr(cx, iter.script()); RootedScript scr(cx, iter.script());
AutoValueVector startFrameFormals(cx); AutoValueVector startFrameFormals(cx);
while (true) { while (true) {
#if JS_TRACE_LOGGING
if (frameNo > 0) {
TraceLogging::defaultLogger()->log(TraceLogging::SCRIPT_START, scr);
TraceLogging::defaultLogger()->log(TraceLogging::INFO_ENGINE_BASELINE);
}
#endif
IonSpew(IonSpew_BaselineBailouts, " FrameNo %d", frameNo); IonSpew(IonSpew_BaselineBailouts, " FrameNo %d", frameNo);
jsbytecode *callPC = NULL; jsbytecode *callPC = NULL;
RootedFunction nextCallee(cx, NULL); RootedFunction nextCallee(cx, NULL);

Просмотреть файл

@ -84,6 +84,7 @@ BaselineCompiler::compile()
if (status != Method_Compiled) if (status != Method_Compiled)
return status; return status;
if (!emitEpilogue()) if (!emitEpilogue())
return Method_Error; return Method_Error;
@ -224,6 +225,11 @@ BaselineCompiler::emitPrologue()
masm.pushValue(R0); masm.pushValue(R0);
} }
#if JS_TRACE_LOGGING
masm.tracelogStart(script.get());
masm.tracelogLog(TraceLogging::INFO_ENGINE_BASELINE);
#endif
// Record the offset of the prologue, because Ion can bailout before // Record the offset of the prologue, because Ion can bailout before
// the scope chain is initialized. // the scope chain is initialized.
prologueOffset_ = masm.currentOffset(); prologueOffset_ = masm.currentOffset();
@ -256,6 +262,10 @@ BaselineCompiler::emitEpilogue()
{ {
masm.bind(&return_); masm.bind(&return_);
#if JS_TRACE_LOGGING
masm.tracelogStop();
#endif
// Pop SPS frame if necessary // Pop SPS frame if necessary
emitSPSPop(); emitSPSPop();

Просмотреть файл

@ -185,6 +185,10 @@ ion::EnterBaselineAtBranch(JSContext *cx, StackFrame *fp, jsbytecode *pc)
data.calleeToken = CalleeToToken(fp->script()); data.calleeToken = CalleeToToken(fp->script());
} }
#if JS_TRACE_LOGGING
TraceLogging::defaultLogger()->log(TraceLogging::INFO_ENGINE_BASELINE);
#endif
IonExecStatus status = EnterBaseline(cx, data); IonExecStatus status = EnterBaseline(cx, data);
if (status != IonExec_Ok) if (status != IonExec_Ok)
return status; return status;

Просмотреть файл

@ -897,6 +897,10 @@ CodeGenerator::visitOsrEntry(LOsrEntry *lir)
masm.flushBuffer(); masm.flushBuffer();
setOsrEntryOffset(masm.size()); setOsrEntryOffset(masm.size());
#if JS_TRACE_LOGGING
masm.tracelogLog(TraceLogging::INFO_ENGINE_IONMONKEY);
#endif
// Allocate the full frame for this function. // Allocate the full frame for this function.
uint32_t size = frameSize(); uint32_t size = frameSize();
if (size != 0) if (size != 0)
@ -5421,6 +5425,11 @@ CodeGenerator::generate()
if (!safepoints_.init(graph.totalSlotCount())) if (!safepoints_.init(graph.totalSlotCount()))
return false; return false;
#if JS_TRACE_LOGGING
masm.tracelogStart(gen->info().script());
masm.tracelogLog(TraceLogging::INFO_ENGINE_IONMONKEY);
#endif
// Before generating any code, we generate type checks for all parameters. // Before generating any code, we generate type checks for all parameters.
// This comes before deoptTable_, because we can't use deopt tables without // This comes before deoptTable_, because we can't use deopt tables without
// creating the actual frame. // creating the actual frame.
@ -5433,10 +5442,21 @@ CodeGenerator::generate()
return false; return false;
} }
#if JS_TRACE_LOGGING
Label skip;
masm.jump(&skip);
#endif
// Remember the entry offset to skip the argument check. // Remember the entry offset to skip the argument check.
masm.flushBuffer(); masm.flushBuffer();
setSkipArgCheckEntryOffset(masm.size()); setSkipArgCheckEntryOffset(masm.size());
#if JS_TRACE_LOGGING
masm.tracelogStart(gen->info().script());
masm.tracelogLog(TraceLogging::INFO_ENGINE_IONMONKEY);
masm.bind(&skip);
#endif
if (!generatePrologue()) if (!generatePrologue())
return false; return false;
if (!generateBody()) if (!generateBody())

Некоторые файлы не были показаны из-за слишком большого количества измененных файлов Показать больше