mirror of
https://github.com/roytam1/basilisk55.git
synced 2026-05-26 14:58:59 +00:00
import changes from tenfourfox:
- #578: M1322864 M1585106 M1597043 (7758ebb12) - #578: M1579060 M1586176 (f3f295615) - #581: M1047098 M1355576 (ec8e68102) (remove-tele part only) - closes #582: M1358018 modified for 45ESR (74fd7b6d0) - #584: update certs, pins, TLDs (690b9bbce) - #587: M1513855 M1596668 M1602944 M1599420 M1595399 (35a4358b3) - #587: update TLDs, certs, pins, etc. (35584e5e6) - #587: M1598543 M1607902 disable remote jars (cfb4b1e08) - #587: update TLDs (c15b86c49) - #591: M1467722 (cfb43390a) (with libeditor fix) - #591: bustage fix (bbc9a12a5) - #593: M1607742 M1684490 + updated TLDs, pins, HSTS (67706e1f6)
This commit is contained in:
@@ -365,6 +365,15 @@ RootAccessible::ProcessDOMEvent(nsIDOMEvent* aDOMEvent)
|
||||
if (FocusMgr()->HasDOMFocus(targetNode)) {
|
||||
nsCOMPtr<nsIDOMXULMultiSelectControlElement> multiSel =
|
||||
do_QueryInterface(targetNode);
|
||||
if (!multiSel) {
|
||||
// This shouldn't be possible. All XUL trees should have
|
||||
// nsIDOMXULMultiSelectControlElement, and the tree is focused, so it
|
||||
// shouldn't be dying. Nevertheless, this sometimes happens in the wild
|
||||
// (bug 1597043).
|
||||
MOZ_ASSERT_UNREACHABLE(
|
||||
"XUL tree doesn't have nsIDOMXULMultiSelectControlElement");
|
||||
return;
|
||||
}
|
||||
nsAutoString selType;
|
||||
multiSel->GetSelType(selType);
|
||||
if (selType.IsEmpty() || !selType.EqualsLiteral("single")) {
|
||||
|
||||
@@ -17,8 +17,8 @@ XPCOMUtils.defineLazyModuleGetter(this, "Task",
|
||||
"resource://gre/modules/Task.jsm");
|
||||
XPCOMUtils.defineLazyModuleGetter(this, "DownloadsCommon",
|
||||
"resource:///modules/DownloadsCommon.jsm");
|
||||
XPCOMUtils.defineLazyModuleGetter(this, "TelemetryStopwatch",
|
||||
"resource://gre/modules/TelemetryStopwatch.jsm");
|
||||
/*XPCOMUtils.defineLazyModuleGetter(this, "TelemetryStopwatch",
|
||||
"resource://gre/modules/TelemetryStopwatch.jsm");*/
|
||||
XPCOMUtils.defineLazyModuleGetter(this, "console",
|
||||
"resource://gre/modules/Console.jsm");
|
||||
XPCOMUtils.defineLazyModuleGetter(this, "Preferences",
|
||||
@@ -152,7 +152,7 @@ Sanitizer.prototype = {
|
||||
// Callers should check returned errors and give user feedback
|
||||
// about items that could not be sanitized
|
||||
let refObj = {};
|
||||
TelemetryStopwatch.start("FX_SANITIZE_TOTAL", refObj);
|
||||
//TelemetryStopwatch.start("FX_SANITIZE_TOTAL", refObj);
|
||||
|
||||
let annotateError = (name, ex) => {
|
||||
progress[name] = "failed";
|
||||
@@ -184,7 +184,7 @@ Sanitizer.prototype = {
|
||||
}
|
||||
|
||||
// Sanitization is complete.
|
||||
TelemetryStopwatch.finish("FX_SANITIZE_TOTAL", refObj);
|
||||
//TelemetryStopwatch.finish("FX_SANITIZE_TOTAL", refObj);
|
||||
// Reset the inProgress preference since we were not killed during
|
||||
// sanitization.
|
||||
Preferences.reset(Sanitizer.PREF_SANITIZE_IN_PROGRESS);
|
||||
@@ -207,7 +207,7 @@ Sanitizer.prototype = {
|
||||
clear: Task.async(function* (range) {
|
||||
let seenException;
|
||||
let refObj = {};
|
||||
TelemetryStopwatch.start("FX_SANITIZE_CACHE", refObj);
|
||||
//TelemetryStopwatch.start("FX_SANITIZE_CACHE", refObj);
|
||||
|
||||
try {
|
||||
// Cache doesn't consult timespan, nor does it have the
|
||||
@@ -228,7 +228,7 @@ Sanitizer.prototype = {
|
||||
seenException = ex;
|
||||
}
|
||||
|
||||
TelemetryStopwatch.finish("FX_SANITIZE_CACHE", refObj);
|
||||
//TelemetryStopwatch.finish("FX_SANITIZE_CACHE", refObj);
|
||||
if (seenException) {
|
||||
throw seenException;
|
||||
}
|
||||
@@ -242,7 +242,7 @@ Sanitizer.prototype = {
|
||||
let refObj = {};
|
||||
|
||||
// Clear cookies.
|
||||
TelemetryStopwatch.start("FX_SANITIZE_COOKIES_2", refObj);
|
||||
//TelemetryStopwatch.start("FX_SANITIZE_COOKIES_2", refObj);
|
||||
try {
|
||||
let cookieMgr = Components.classes["@mozilla.org/cookiemanager;1"]
|
||||
.getService(Ci.nsICookieManager);
|
||||
@@ -270,7 +270,7 @@ Sanitizer.prototype = {
|
||||
} catch (ex) {
|
||||
seenException = ex;
|
||||
} finally {
|
||||
TelemetryStopwatch.finish("FX_SANITIZE_COOKIES_2", refObj);
|
||||
//TelemetryStopwatch.finish("FX_SANITIZE_COOKIES_2", refObj);
|
||||
}
|
||||
|
||||
// Clear deviceIds. Done asynchronously (returns before complete).
|
||||
@@ -346,7 +346,7 @@ Sanitizer.prototype = {
|
||||
clear: Task.async(function* (range) {
|
||||
let seenException;
|
||||
let refObj = {};
|
||||
TelemetryStopwatch.start("FX_SANITIZE_HISTORY", refObj);
|
||||
//TelemetryStopwatch.start("FX_SANITIZE_HISTORY", refObj);
|
||||
try {
|
||||
if (range) {
|
||||
yield PlacesUtils.history.removeVisitsByFilter({
|
||||
@@ -360,7 +360,7 @@ Sanitizer.prototype = {
|
||||
} catch (ex) {
|
||||
seenException = ex;
|
||||
} finally {
|
||||
TelemetryStopwatch.finish("FX_SANITIZE_HISTORY", refObj);
|
||||
//TelemetryStopwatch.finish("FX_SANITIZE_HISTORY", refObj);
|
||||
}
|
||||
|
||||
try {
|
||||
@@ -388,7 +388,7 @@ Sanitizer.prototype = {
|
||||
clear: Task.async(function* (range) {
|
||||
let seenException;
|
||||
let refObj = {};
|
||||
TelemetryStopwatch.start("FX_SANITIZE_FORMDATA", refObj);
|
||||
//TelemetryStopwatch.start("FX_SANITIZE_FORMDATA", refObj);
|
||||
try {
|
||||
// Clear undo history of all search bars.
|
||||
let windows = Services.wm.getEnumerator("navigator:browser");
|
||||
@@ -442,7 +442,7 @@ Sanitizer.prototype = {
|
||||
seenException = ex;
|
||||
}
|
||||
|
||||
TelemetryStopwatch.finish("FX_SANITIZE_FORMDATA", refObj);
|
||||
//TelemetryStopwatch.finish("FX_SANITIZE_FORMDATA", refObj);
|
||||
if (seenException) {
|
||||
throw seenException;
|
||||
}
|
||||
@@ -452,7 +452,7 @@ Sanitizer.prototype = {
|
||||
downloads: {
|
||||
clear: Task.async(function* (range) {
|
||||
let refObj = {};
|
||||
TelemetryStopwatch.start("FX_SANITIZE_DOWNLOADS", refObj);
|
||||
//TelemetryStopwatch.start("FX_SANITIZE_DOWNLOADS", refObj);
|
||||
try {
|
||||
let filterByTime = null;
|
||||
if (range) {
|
||||
@@ -467,7 +467,7 @@ Sanitizer.prototype = {
|
||||
let list = yield Downloads.getList(Downloads.ALL);
|
||||
list.removeFinished(filterByTime);
|
||||
} finally {
|
||||
TelemetryStopwatch.finish("FX_SANITIZE_DOWNLOADS", refObj);
|
||||
//TelemetryStopwatch.finish("FX_SANITIZE_DOWNLOADS", refObj);
|
||||
}
|
||||
})
|
||||
},
|
||||
@@ -475,7 +475,7 @@ Sanitizer.prototype = {
|
||||
sessions: {
|
||||
clear: Task.async(function* (range) {
|
||||
let refObj = {};
|
||||
TelemetryStopwatch.start("FX_SANITIZE_SESSIONS", refObj);
|
||||
//TelemetryStopwatch.start("FX_SANITIZE_SESSIONS", refObj);
|
||||
|
||||
try {
|
||||
// clear all auth tokens
|
||||
@@ -486,7 +486,7 @@ Sanitizer.prototype = {
|
||||
// clear FTP and plain HTTP auth sessions
|
||||
Services.obs.notifyObservers(null, "net:clear-active-logins", null);
|
||||
} finally {
|
||||
TelemetryStopwatch.finish("FX_SANITIZE_SESSIONS", refObj);
|
||||
//TelemetryStopwatch.finish("FX_SANITIZE_SESSIONS", refObj);
|
||||
}
|
||||
})
|
||||
},
|
||||
@@ -495,7 +495,7 @@ Sanitizer.prototype = {
|
||||
clear: Task.async(function* (range) {
|
||||
let seenException;
|
||||
let refObj = {};
|
||||
TelemetryStopwatch.start("FX_SANITIZE_SITESETTINGS", refObj);
|
||||
//TelemetryStopwatch.start("FX_SANITIZE_SITESETTINGS", refObj);
|
||||
|
||||
let startDateMS = range ? range[0] / 1000 : null;
|
||||
|
||||
@@ -553,7 +553,7 @@ Sanitizer.prototype = {
|
||||
seenException = ex;
|
||||
}
|
||||
|
||||
TelemetryStopwatch.finish("FX_SANITIZE_SITESETTINGS", refObj);
|
||||
//TelemetryStopwatch.finish("FX_SANITIZE_SITESETTINGS", refObj);
|
||||
if (seenException) {
|
||||
throw seenException;
|
||||
}
|
||||
@@ -611,7 +611,7 @@ Sanitizer.prototype = {
|
||||
// If/once we get here, we should actually be able to close all windows.
|
||||
|
||||
let refObj = {};
|
||||
TelemetryStopwatch.start("FX_SANITIZE_OPENWINDOWS", refObj);
|
||||
//TelemetryStopwatch.start("FX_SANITIZE_OPENWINDOWS", refObj);
|
||||
|
||||
// First create a new window. We do this first so that on non-mac, we don't
|
||||
// accidentally close the app by closing all the windows.
|
||||
@@ -657,7 +657,7 @@ Sanitizer.prototype = {
|
||||
newWindowOpened = true;
|
||||
// If we're the last thing to happen, invoke callback.
|
||||
if (numWindowsClosing == 0) {
|
||||
TelemetryStopwatch.finish("FX_SANITIZE_OPENWINDOWS", refObj);
|
||||
//TelemetryStopwatch.finish("FX_SANITIZE_OPENWINDOWS", refObj);
|
||||
resolve();
|
||||
}
|
||||
}
|
||||
@@ -669,7 +669,7 @@ Sanitizer.prototype = {
|
||||
Services.obs.removeObserver(onWindowClosed, "xul-window-destroyed");
|
||||
// If we're the last thing to happen, invoke callback.
|
||||
if (newWindowOpened) {
|
||||
TelemetryStopwatch.finish("FX_SANITIZE_OPENWINDOWS", refObj);
|
||||
//TelemetryStopwatch.finish("FX_SANITIZE_OPENWINDOWS", refObj);
|
||||
resolve();
|
||||
}
|
||||
}
|
||||
@@ -788,7 +788,7 @@ Sanitizer.clearPluginData = Task.async(function* (range) {
|
||||
if (/\bFlash\b/.test(tag.name)) {
|
||||
probe = tag.loaded ? "FX_SANITIZE_LOADED_FLASH"
|
||||
: "FX_SANITIZE_UNLOADED_FLASH";
|
||||
TelemetryStopwatch.start(probe, refObj);
|
||||
//TelemetryStopwatch.start(probe, refObj);
|
||||
}
|
||||
try {
|
||||
let rv = yield new Promise(resolve =>
|
||||
@@ -801,12 +801,12 @@ Sanitizer.clearPluginData = Task.async(function* (range) {
|
||||
);
|
||||
}
|
||||
if (probe) {
|
||||
TelemetryStopwatch.finish(probe, refObj);
|
||||
//TelemetryStopwatch.finish(probe, refObj);
|
||||
}
|
||||
} catch (ex) {
|
||||
// Ignore errors from plug-ins
|
||||
if (probe) {
|
||||
TelemetryStopwatch.cancel(probe, refObj);
|
||||
//TelemetryStopwatch.cancel(probe, refObj);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3359,7 +3359,14 @@ nsContentUtils::GetImageFromContent(nsIImageLoadingContent* aContent,
|
||||
}
|
||||
|
||||
if (aRequest) {
|
||||
imgRequest.swap(*aRequest);
|
||||
// If the consumer wants the request, verify it has actually loaded
|
||||
// successfully.
|
||||
uint32_t imgStatus;
|
||||
imgRequest->GetImageStatus(&imgStatus);
|
||||
if (imgStatus & imgIRequest::STATUS_FRAME_COMPLETE &&
|
||||
!(imgStatus & imgIRequest::STATUS_ERROR)) {
|
||||
imgRequest.swap(*aRequest);
|
||||
}
|
||||
}
|
||||
|
||||
return imgContainer.forget();
|
||||
|
||||
@@ -10873,35 +10873,12 @@ nsGlobalWindow::GetComputedStyleHelperOuter(Element& aElt,
|
||||
{
|
||||
MOZ_RELEASE_ASSERT(IsOuterWindow());
|
||||
|
||||
if (!mDocShell) {
|
||||
if (!mDoc) {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
nsCOMPtr<nsIPresShell> presShell = mDocShell->GetPresShell();
|
||||
|
||||
if (!presShell) {
|
||||
// Try flushing frames on our parent in case there's a pending
|
||||
// style change that will create the presshell.
|
||||
auto* parent = nsGlobalWindow::Cast(GetPrivateParent());
|
||||
if (!parent) {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
parent->FlushPendingNotifications(FlushType::Frames);
|
||||
|
||||
// Might have killed mDocShell
|
||||
if (!mDocShell) {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
presShell = mDocShell->GetPresShell();
|
||||
if (!presShell) {
|
||||
return nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
RefPtr<nsComputedDOMStyle> compStyle =
|
||||
NS_NewComputedDOMStyle(&aElt, aPseudoElt, presShell,
|
||||
NS_NewComputedDOMStyle(&aElt, aPseudoElt, mDoc,
|
||||
aDefaultStylesOnly ? nsComputedDOMStyle::eDefaultOnly :
|
||||
nsComputedDOMStyle::eAll);
|
||||
|
||||
|
||||
@@ -3306,6 +3306,10 @@ BackgroundCursorChild::HandleResponse(
|
||||
auto& responses =
|
||||
const_cast<nsTArray<ObjectStoreCursorResponse>&>(aResponses);
|
||||
|
||||
// If a new cursor is created, we need to keep a reference to it until the
|
||||
// ResultHelper creates a DOM Binding.
|
||||
RefPtr<IDBCursor> newCursor;
|
||||
|
||||
for (ObjectStoreCursorResponse& response : responses) {
|
||||
StructuredCloneReadInfo cloneReadInfo(Move(response.cloneInfo()));
|
||||
cloneReadInfo.mDatabase = mTransaction->Database();
|
||||
@@ -3315,8 +3319,6 @@ BackgroundCursorChild::HandleResponse(
|
||||
nullptr,
|
||||
cloneReadInfo.mFiles);
|
||||
|
||||
RefPtr<IDBCursor> newCursor;
|
||||
|
||||
if (mCursor) {
|
||||
mCursor->Reset(Move(response.key()), Move(cloneReadInfo));
|
||||
} else {
|
||||
|
||||
@@ -16,7 +16,7 @@ interface nsIDOMCSSGroupingRule : nsISupports
|
||||
readonly attribute nsIDOMCSSRuleList cssRules;
|
||||
|
||||
unsigned long insertRule(in DOMString rule,
|
||||
in unsigned long index)
|
||||
[optional] in unsigned long index)
|
||||
raises(DOMException);
|
||||
void deleteRule(in unsigned long index)
|
||||
raises(DOMException);
|
||||
|
||||
@@ -20,7 +20,7 @@ interface nsIDOMCSSStyleSheet : nsIDOMStyleSheet
|
||||
readonly attribute nsIDOMCSSRuleList cssRules;
|
||||
|
||||
unsigned long insertRule(in DOMString rule,
|
||||
in unsigned long index)
|
||||
[optional] in unsigned long index)
|
||||
raises(DOMException);
|
||||
void deleteRule(in unsigned long index)
|
||||
raises(DOMException);
|
||||
|
||||
@@ -38,14 +38,8 @@ GetCSSComputedValue(Element* aElem,
|
||||
return false;
|
||||
}
|
||||
|
||||
nsIPresShell* shell = doc->GetShell();
|
||||
if (!shell) {
|
||||
NS_WARNING("Unable to look up computed style -- no pres shell");
|
||||
return false;
|
||||
}
|
||||
|
||||
RefPtr<nsComputedDOMStyle> computedStyle =
|
||||
NS_NewComputedDOMStyle(aElem, EmptyString(), shell);
|
||||
NS_NewComputedDOMStyle(aElem, EmptyString(), doc);
|
||||
|
||||
computedStyle->GetPropertyValue(aPropID, aResult);
|
||||
return true;
|
||||
|
||||
@@ -21,7 +21,7 @@ interface CSSStyleSheet : StyleSheet {
|
||||
[ChromeOnly, BinaryName="parsingModeDOM"]
|
||||
readonly attribute CSSStyleSheetParsingMode parsingMode;
|
||||
[Throws, NeedsSubjectPrincipal]
|
||||
unsigned long insertRule(DOMString rule, unsigned long index);
|
||||
unsigned long insertRule(DOMString rule, optional unsigned long index = 0);
|
||||
[Throws, NeedsSubjectPrincipal]
|
||||
void deleteRule(unsigned long index);
|
||||
};
|
||||
|
||||
@@ -570,11 +570,8 @@ CSSEditUtils::GetComputedStyle(Element* aElement)
|
||||
nsIDocument* doc = aElement->GetUncomposedDoc();
|
||||
NS_ENSURE_TRUE(doc, nullptr);
|
||||
|
||||
nsIPresShell* presShell = doc->GetShell();
|
||||
NS_ENSURE_TRUE(presShell, nullptr);
|
||||
|
||||
RefPtr<nsComputedDOMStyle> style =
|
||||
NS_NewComputedDOMStyle(aElement, EmptyString(), presShell);
|
||||
NS_NewComputedDOMStyle(aElement, EmptyString(), doc);
|
||||
|
||||
return style.forget();
|
||||
}
|
||||
|
||||
@@ -64,13 +64,13 @@ using namespace mozilla::dom;
|
||||
*/
|
||||
|
||||
already_AddRefed<nsComputedDOMStyle>
|
||||
NS_NewComputedDOMStyle(dom::Element* aElement, const nsAString& aPseudoElt,
|
||||
nsIPresShell* aPresShell,
|
||||
NS_NewComputedDOMStyle(dom::Element* aElement,
|
||||
const nsAString& aPseudoElt,
|
||||
nsIDocument* aDocument,
|
||||
nsComputedDOMStyle::StyleType aStyleType)
|
||||
{
|
||||
RefPtr<nsComputedDOMStyle> computedStyle;
|
||||
computedStyle = new nsComputedDOMStyle(aElement, aPseudoElt, aPresShell,
|
||||
aStyleType);
|
||||
computedStyle = new nsComputedDOMStyle(aElement, aPseudoElt, aDocument, aStyleType);
|
||||
return computedStyle.forget();
|
||||
}
|
||||
|
||||
@@ -243,7 +243,7 @@ nsComputedStyleMap::Update()
|
||||
|
||||
nsComputedDOMStyle::nsComputedDOMStyle(dom::Element* aElement,
|
||||
const nsAString& aPseudoElt,
|
||||
nsIPresShell* aPresShell,
|
||||
nsIDocument* aDocument,
|
||||
StyleType aStyleType)
|
||||
: mDocumentWeak(nullptr)
|
||||
, mOuterFrame(nullptr)
|
||||
@@ -254,11 +254,13 @@ nsComputedDOMStyle::nsComputedDOMStyle(dom::Element* aElement,
|
||||
, mExposeVisitedStyle(false)
|
||||
, mResolvedStyleContext(false)
|
||||
{
|
||||
MOZ_ASSERT(aElement && aPresShell);
|
||||
MOZ_ASSERT(aElement);
|
||||
MOZ_ASSERT(aDocument);
|
||||
// TODO(emilio, bug 548397, https://github.com/w3c/csswg-drafts/issues/2403):
|
||||
// Should use aElement->OwnerDoc() instead.
|
||||
mDocumentWeak = do_GetWeakReference(aDocument);
|
||||
|
||||
mDocumentWeak = do_GetWeakReference(aPresShell->GetDocument());
|
||||
|
||||
mContent = aElement;
|
||||
mElement = aElement;
|
||||
|
||||
if (!DOMStringIsNull(aPseudoElt) && !aPseudoElt.IsEmpty() &&
|
||||
aPseudoElt.First() == char16_t(':')) {
|
||||
@@ -285,8 +287,6 @@ nsComputedDOMStyle::nsComputedDOMStyle(dom::Element* aElement,
|
||||
mPseudo = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
MOZ_ASSERT(aPresShell->GetPresContext());
|
||||
}
|
||||
|
||||
nsComputedDOMStyle::~nsComputedDOMStyle()
|
||||
@@ -297,13 +297,13 @@ nsComputedDOMStyle::~nsComputedDOMStyle()
|
||||
NS_IMPL_CYCLE_COLLECTION_CLASS(nsComputedDOMStyle)
|
||||
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN(nsComputedDOMStyle)
|
||||
tmp->ClearStyleContext(); // remove observer before clearing mContent
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK(mContent)
|
||||
tmp->ClearStyleContext(); // remove observer before clearing mElement
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK(mElement)
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK_PRESERVED_WRAPPER
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK_END
|
||||
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN(nsComputedDOMStyle)
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mContent)
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mElement)
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END
|
||||
|
||||
NS_IMPL_CYCLE_COLLECTION_TRACE_WRAPPERCACHE(nsComputedDOMStyle)
|
||||
@@ -366,8 +366,6 @@ nsComputedDOMStyle::SetCssText(const nsAString& aCssText)
|
||||
NS_IMETHODIMP
|
||||
nsComputedDOMStyle::GetLength(uint32_t* aLength)
|
||||
{
|
||||
NS_PRECONDITION(aLength, "Null aLength! Prepare to die!");
|
||||
|
||||
uint32_t length = GetComputedStyleMap()->Length();
|
||||
|
||||
// Make sure we have up to date style so that we can include custom
|
||||
@@ -375,6 +373,8 @@ nsComputedDOMStyle::GetLength(uint32_t* aLength)
|
||||
UpdateCurrentStyleSources(false);
|
||||
if (mStyleContext) {
|
||||
length += StyleVariables()->mVariables.Count();
|
||||
} else {
|
||||
length = 0;
|
||||
}
|
||||
|
||||
*aLength = length;
|
||||
@@ -772,7 +772,7 @@ nsComputedDOMStyle::ClearStyleContext()
|
||||
{
|
||||
if (mResolvedStyleContext) {
|
||||
mResolvedStyleContext = false;
|
||||
mContent->RemoveMutationObserver(this);
|
||||
mElement->RemoveMutationObserver(this);
|
||||
}
|
||||
mStyleContext = nullptr;
|
||||
}
|
||||
@@ -782,7 +782,7 @@ nsComputedDOMStyle::SetResolvedStyleContext(RefPtr<nsStyleContext>&& aContext)
|
||||
{
|
||||
if (!mResolvedStyleContext) {
|
||||
mResolvedStyleContext = true;
|
||||
mContent->AddMutationObserver(this);
|
||||
mElement->AddMutationObserver(this);
|
||||
}
|
||||
mStyleContext = aContext;
|
||||
}
|
||||
@@ -807,7 +807,7 @@ nsComputedDOMStyle::UpdateCurrentStyleSources(bool aNeedsLayoutFlush)
|
||||
|
||||
// Flush _before_ getting the presshell, since that could create a new
|
||||
// presshell. Also note that we want to flush the style on the document
|
||||
// we're computing style in, not on the document mContent is in -- the two
|
||||
// we're computing style in, not on the document mElement is in -- the two
|
||||
// may be different.
|
||||
document->FlushPendingNotifications(
|
||||
aNeedsLayoutFlush ? FlushType::Layout : FlushType::Style);
|
||||
@@ -815,7 +815,7 @@ nsComputedDOMStyle::UpdateCurrentStyleSources(bool aNeedsLayoutFlush)
|
||||
mFlushedPendingReflows = aNeedsLayoutFlush;
|
||||
#endif
|
||||
|
||||
nsCOMPtr<nsIPresShell> presShellForContent = GetPresShellForContent(mContent);
|
||||
nsCOMPtr<nsIPresShell> presShellForContent = GetPresShellForContent(mElement);
|
||||
if (presShellForContent && presShellForContent != document->GetShell()) {
|
||||
presShellForContent->FlushPendingNotifications(FlushType::Style);
|
||||
}
|
||||
@@ -830,7 +830,11 @@ nsComputedDOMStyle::UpdateCurrentStyleSources(bool aNeedsLayoutFlush)
|
||||
mPresShell->GetPresContext()->GetRestyleGeneration();
|
||||
|
||||
if (mStyleContext) {
|
||||
if (mStyleContextGeneration == currentGeneration) {
|
||||
// We can't rely on the undisplayed restyle generation if mElement is
|
||||
// out-of-document, since that generation is not incremented for DOM changes
|
||||
// on out-of-document elements.
|
||||
if (mStyleContextGeneration == currentGeneration &&
|
||||
mElement->IsInComposedDoc()) {
|
||||
// Our cached style context is still valid.
|
||||
return;
|
||||
}
|
||||
@@ -839,12 +843,12 @@ nsComputedDOMStyle::UpdateCurrentStyleSources(bool aNeedsLayoutFlush)
|
||||
mStyleContext = nullptr;
|
||||
}
|
||||
|
||||
// XXX the !mContent->IsHTMLElement(nsGkAtoms::area)
|
||||
// XXX the !mElement->IsHTMLElement(nsGkAtoms::area)
|
||||
// check is needed due to bug 135040 (to avoid using
|
||||
// mPrimaryFrame). Remove it once that's fixed.
|
||||
if (!mPseudo && mStyleType == eAll &&
|
||||
!mContent->IsHTMLElement(nsGkAtoms::area)) {
|
||||
mOuterFrame = mContent->GetPrimaryFrame();
|
||||
!mElement->IsHTMLElement(nsGkAtoms::area)) {
|
||||
mOuterFrame = mElement->GetPrimaryFrame();
|
||||
mInnerFrame = mOuterFrame;
|
||||
if (mOuterFrame) {
|
||||
nsIAtom* type = mOuterFrame->GetType();
|
||||
@@ -887,7 +891,7 @@ nsComputedDOMStyle::UpdateCurrentStyleSources(bool aNeedsLayoutFlush)
|
||||
// Need to resolve a style context
|
||||
RefPtr<nsStyleContext> resolvedStyleContext =
|
||||
nsComputedDOMStyle::GetStyleContextForElementNoFlush(
|
||||
mContent->AsElement(),
|
||||
mElement,
|
||||
mPseudo,
|
||||
presShellForContent ? presShellForContent.get() : mPresShell,
|
||||
mStyleType);
|
||||
@@ -980,7 +984,6 @@ nsComputedDOMStyle::GetPropertyCSSValue(const nsAString& aPropertyName, ErrorRes
|
||||
|
||||
UpdateCurrentStyleSources(needsLayoutFlush);
|
||||
if (!mStyleContext) {
|
||||
aRv.Throw(NS_ERROR_NOT_AVAILABLE);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
@@ -3040,7 +3043,7 @@ nsComputedDOMStyle::DoGetGridTemplateColumns()
|
||||
|
||||
nsGridContainerFrame* gridFrame =
|
||||
nsGridContainerFrame::GetGridFrameWithComputedInfo(
|
||||
mContent->GetPrimaryFrame());
|
||||
mElement->GetPrimaryFrame());
|
||||
|
||||
if (gridFrame) {
|
||||
info = gridFrame->GetComputedTemplateColumns();
|
||||
@@ -3056,7 +3059,7 @@ nsComputedDOMStyle::DoGetGridTemplateRows()
|
||||
|
||||
nsGridContainerFrame* gridFrame =
|
||||
nsGridContainerFrame::GetGridFrameWithComputedInfo(
|
||||
mContent->GetPrimaryFrame());
|
||||
mElement->GetPrimaryFrame());
|
||||
|
||||
if (gridFrame) {
|
||||
info = gridFrame->GetComputedTemplateRows();
|
||||
@@ -5398,7 +5401,7 @@ nsComputedDOMStyle::GetLineHeightCoord(nscoord& aCoord)
|
||||
|
||||
// lie about font size inflation since we lie about font size (since
|
||||
// the inflation only applies to text)
|
||||
aCoord = ReflowInput::CalcLineHeight(mContent, mStyleContext,
|
||||
aCoord = ReflowInput::CalcLineHeight(mElement, mStyleContext,
|
||||
blockHeight, 1.0f);
|
||||
|
||||
// CalcLineHeight uses font->mFont.size, but we want to use
|
||||
@@ -6828,7 +6831,7 @@ nsComputedDOMStyle::DoGetCustomProperty(const nsAString& aPropertyName)
|
||||
void
|
||||
nsComputedDOMStyle::ParentChainChanged(nsIContent* aContent)
|
||||
{
|
||||
NS_ASSERTION(mContent == aContent, "didn't we register mContent?");
|
||||
NS_ASSERTION(mElement == aContent, "didn't we register mElement?");
|
||||
NS_ASSERTION(mResolvedStyleContext,
|
||||
"should have only registered an observer when "
|
||||
"mResolvedStyleContext is true");
|
||||
|
||||
@@ -76,12 +76,12 @@ public:
|
||||
|
||||
nsComputedDOMStyle(mozilla::dom::Element* aElement,
|
||||
const nsAString& aPseudoElt,
|
||||
nsIPresShell* aPresShell,
|
||||
nsIDocument* aDocument,
|
||||
StyleType aStyleType);
|
||||
|
||||
virtual nsINode *GetParentObject() override
|
||||
nsINode *GetParentObject() override
|
||||
{
|
||||
return mContent;
|
||||
return reinterpret_cast<nsINode*>(mElement.get());
|
||||
}
|
||||
|
||||
static already_AddRefed<nsStyleContext>
|
||||
@@ -687,9 +687,9 @@ private:
|
||||
|
||||
// We don't really have a good immutable representation of "presentation".
|
||||
// Given the way GetComputedStyle is currently used, we should just grab the
|
||||
// 0th presshell, if any, from the document.
|
||||
// presshell, if any, from the document.
|
||||
nsWeakPtr mDocumentWeak;
|
||||
nsCOMPtr<nsIContent> mContent;
|
||||
RefPtr<mozilla::dom::Element> mElement;
|
||||
|
||||
/**
|
||||
* Strong reference to the style context we access data from. This can be
|
||||
@@ -755,7 +755,7 @@ private:
|
||||
already_AddRefed<nsComputedDOMStyle>
|
||||
NS_NewComputedDOMStyle(mozilla::dom::Element* aElement,
|
||||
const nsAString& aPseudoElt,
|
||||
nsIPresShell* aPresShell,
|
||||
nsIDocument* aDocument,
|
||||
nsComputedDOMStyle::StyleType aStyleType =
|
||||
nsComputedDOMStyle::eAll);
|
||||
|
||||
|
||||
@@ -82,7 +82,7 @@ int32_t ScreenDeviceInfoImpl::GetDeviceName(uint32_t deviceNumber,
|
||||
|
||||
const char *deviceName = desktopDisplayDevice.getDeviceName();
|
||||
len = deviceName ? strlen(deviceName) : 0;
|
||||
if (len && deviceNameUTF8 && len <= deviceNameUTF8Length) {
|
||||
if (len && deviceNameUTF8 && len < deviceNameUTF8Length) {
|
||||
memcpy(deviceNameUTF8,
|
||||
deviceName,
|
||||
len);
|
||||
@@ -90,7 +90,7 @@ int32_t ScreenDeviceInfoImpl::GetDeviceName(uint32_t deviceNumber,
|
||||
|
||||
const char *deviceUniqueId = desktopDisplayDevice.getUniqueIdName();
|
||||
len = deviceUniqueId ? strlen(deviceUniqueId) : 0;
|
||||
if (len && deviceUniqueIdUTF8 && len <= deviceUniqueIdUTF8Length) {
|
||||
if (len && deviceUniqueIdUTF8 && len < deviceUniqueIdUTF8Length) {
|
||||
memcpy(deviceUniqueIdUTF8,
|
||||
deviceUniqueId,
|
||||
len);
|
||||
@@ -177,13 +177,13 @@ int32_t AppDeviceInfoImpl::GetDeviceName(uint32_t deviceNumber,
|
||||
|
||||
const char *deviceName = desktopApplication.getProcessAppName();
|
||||
len = deviceName ? strlen(deviceName) : 0;
|
||||
if (len && len <= deviceNameUTF8Length) {
|
||||
if (len && len < deviceNameUTF8Length) {
|
||||
memcpy(deviceNameUTF8, deviceName, len);
|
||||
}
|
||||
|
||||
const char *deviceUniqueId = desktopApplication.getUniqueIdName();
|
||||
len = deviceUniqueId ? strlen(deviceUniqueId) : 0;
|
||||
if (len && deviceUniqueIdUTF8 && len <= deviceUniqueIdUTF8Length) {
|
||||
if (len && deviceUniqueIdUTF8 && len < deviceUniqueIdUTF8Length) {
|
||||
memcpy(deviceUniqueIdUTF8,
|
||||
deviceUniqueId,
|
||||
len);
|
||||
@@ -305,7 +305,7 @@ int32_t WindowDeviceInfoImpl::GetDeviceName(uint32_t deviceNumber,
|
||||
|
||||
const char *deviceName = desktopDisplayDevice.getDeviceName();
|
||||
len = deviceName ? strlen(deviceName) : 0;
|
||||
if (len && deviceNameUTF8 && len <= deviceNameUTF8Length) {
|
||||
if (len && deviceNameUTF8 && len < deviceNameUTF8Length) {
|
||||
memcpy(deviceNameUTF8,
|
||||
deviceName,
|
||||
len);
|
||||
@@ -313,7 +313,7 @@ int32_t WindowDeviceInfoImpl::GetDeviceName(uint32_t deviceNumber,
|
||||
|
||||
const char *deviceUniqueId = desktopDisplayDevice.getUniqueIdName();
|
||||
len = deviceUniqueId ? strlen(deviceUniqueId) : 0;
|
||||
if (len && deviceUniqueIdUTF8 && len <= deviceUniqueIdUTF8Length) {
|
||||
if (len && deviceUniqueIdUTF8 && len < deviceUniqueIdUTF8Length) {
|
||||
memcpy(deviceUniqueIdUTF8,
|
||||
deviceUniqueId,
|
||||
len);
|
||||
|
||||
@@ -1697,12 +1697,8 @@ pref("dom.server-events.default-reconnection-time", 5000); // in milliseconds
|
||||
// by the jar channel.
|
||||
pref("network.jar.open-unsafe-types", false);
|
||||
// If true, loading remote JAR files using the jar: protocol will be prevented.
|
||||
#ifdef RELEASE_OR_BETA
|
||||
// Keep allowing remote JAR files for IBM iNotes (see bug 1255139) for now.
|
||||
// See also bug 1255139 if you have issues with Lotus Notes.
|
||||
pref("network.jar.block-remote-files", false);
|
||||
#else
|
||||
pref("network.jar.block-remote-files", true);
|
||||
#endif
|
||||
|
||||
// This preference, if true, causes all UTF-8 domain names to be normalized to
|
||||
// punycode. The intention is to allow UTF-8 domain names as input, but never
|
||||
@@ -3572,7 +3568,7 @@ pref("intl.imm.vertical_writing.always_assume_not_supported", false);
|
||||
// We cannot retrieve active IME name with IMM32 API if a TIP of TSF is active.
|
||||
// This pref can specify active IME name when Japanese TIP is active.
|
||||
// For example:
|
||||
// Google Japanese Input: "Google 日本語入力 IMM32 モジュール"
|
||||
// Google Japanese Input: "Google ?¥æœ¬èªžå…¥??IMM32 ?¢ã‚¸?¥ãƒ¼??
|
||||
// ATOK 2011: "ATOK 2011" (similarly, e.g., ATOK 2013 is "ATOK 2013")
|
||||
pref("intl.imm.japanese.assume_active_tip_name_as", "");
|
||||
|
||||
|
||||
@@ -270,7 +270,8 @@ public:
|
||||
NS_DECL_THREADSAFE_ISUPPORTS
|
||||
|
||||
PACResolver()
|
||||
: mStatus(NS_ERROR_FAILURE)
|
||||
: mStatus(NS_ERROR_FAILURE),
|
||||
mMutex("PACResolver::Mutex")
|
||||
{
|
||||
}
|
||||
|
||||
@@ -279,12 +280,17 @@ public:
|
||||
nsIDNSRecord *record,
|
||||
nsresult status) override
|
||||
{
|
||||
if (mTimer) {
|
||||
mTimer->Cancel();
|
||||
mTimer = nullptr;
|
||||
nsCOMPtr<nsITimer> timer;
|
||||
{
|
||||
MutexAutoLock lock(mMutex);
|
||||
timer.swap(mTimer);
|
||||
mRequest = nullptr;
|
||||
}
|
||||
|
||||
if (timer) {
|
||||
timer->Cancel();
|
||||
}
|
||||
|
||||
mRequest = nullptr;
|
||||
mStatus = status;
|
||||
mResponse = record;
|
||||
return NS_OK;
|
||||
@@ -303,6 +309,7 @@ public:
|
||||
nsCOMPtr<nsICancelable> mRequest;
|
||||
nsCOMPtr<nsIDNSRecord> mResponse;
|
||||
nsCOMPtr<nsITimer> mTimer;
|
||||
Mutex mMutex;
|
||||
|
||||
private:
|
||||
~PACResolver() {}
|
||||
|
||||
@@ -241,7 +241,7 @@ wa.au
|
||||
// 3LDs
|
||||
act.edu.au
|
||||
catholic.edu.au
|
||||
eq.edu.au
|
||||
// eq.edu.au - Removed at the request of the Queensland Department of Education
|
||||
nsw.edu.au
|
||||
nt.edu.au
|
||||
qld.edu.au
|
||||
@@ -982,8 +982,19 @@ fi
|
||||
// TODO: Check for updates (expected to be phased out around Q1/2009)
|
||||
aland.fi
|
||||
|
||||
// fj : https://en.wikipedia.org/wiki/.fj
|
||||
*.fj
|
||||
// fj : http://domains.fj/
|
||||
// Submitted by registry <garth.miller@cocca.org.nz> 2020-02-11
|
||||
fj
|
||||
ac.fj
|
||||
biz.fj
|
||||
com.fj
|
||||
gov.fj
|
||||
info.fj
|
||||
mil.fj
|
||||
name.fj
|
||||
net.fj
|
||||
org.fj
|
||||
pro.fj
|
||||
|
||||
// fk : https://en.wikipedia.org/wiki/.fk
|
||||
*.fk
|
||||
@@ -7074,7 +7085,7 @@ org.zw
|
||||
|
||||
// newGTLDs
|
||||
|
||||
// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2019-12-11T17:19:54Z
|
||||
// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2020-02-06T17:49:42Z
|
||||
// This list is auto-generated, don't edit it manually.
|
||||
// aaa : 2015-02-26 American Automobile Association, Inc.
|
||||
aaa
|
||||
@@ -7196,6 +7207,9 @@ alsace
|
||||
// alstom : 2015-07-30 ALSTOM
|
||||
alstom
|
||||
|
||||
// amazon : 2019-12-19 Amazon EU S.à r.l.
|
||||
amazon
|
||||
|
||||
// americanexpress : 2015-07-31 American Express Travel Related Services Company, Inc.
|
||||
americanexpress
|
||||
|
||||
@@ -7373,7 +7387,7 @@ bcn
|
||||
// beats : 2015-05-14 Beats Electronics, LLC
|
||||
beats
|
||||
|
||||
// beauty : 2015-12-03 L'Oréal
|
||||
// beauty : 2015-12-03 XYZ.COM LLC
|
||||
beauty
|
||||
|
||||
// beer : 2014-01-09 Minds + Machines Group Limited
|
||||
@@ -7829,7 +7843,7 @@ cuisinella
|
||||
// cymru : 2014-05-08 Nominet UK
|
||||
cymru
|
||||
|
||||
// cyou : 2015-01-22 Beijing Gamease Age Digital Technology Co., Ltd.
|
||||
// cyou : 2015-01-22 ShortDot SA
|
||||
cyou
|
||||
|
||||
// dabur : 2014-02-06 Dabur India Limited
|
||||
@@ -8396,7 +8410,7 @@ guitars
|
||||
// guru : 2013-08-27 Binky Moon, LLC
|
||||
guru
|
||||
|
||||
// hair : 2015-12-03 L'Oréal
|
||||
// hair : 2015-12-03 XYZ.COM LLC
|
||||
hair
|
||||
|
||||
// hamburg : 2014-02-20 Hamburg Top-Level-Domain GmbH
|
||||
@@ -8795,9 +8809,6 @@ lexus
|
||||
// lgbt : 2014-05-08 Afilias Limited
|
||||
lgbt
|
||||
|
||||
// liaison : 2014-10-02 Liaison Technologies, Incorporated
|
||||
liaison
|
||||
|
||||
// lidl : 2014-09-18 Schwarz Domains und Services GmbH & Co. KG
|
||||
lidl
|
||||
|
||||
@@ -8918,7 +8929,7 @@ maif
|
||||
// maison : 2013-12-05 Binky Moon, LLC
|
||||
maison
|
||||
|
||||
// makeup : 2015-01-15 L'Oréal
|
||||
// makeup : 2015-01-15 XYZ.COM LLC
|
||||
makeup
|
||||
|
||||
// man : 2014-12-04 MAN SE
|
||||
@@ -9062,9 +9073,6 @@ mov
|
||||
// movie : 2015-02-05 Binky Moon, LLC
|
||||
movie
|
||||
|
||||
// movistar : 2014-10-16 Telefónica S.A.
|
||||
movistar
|
||||
|
||||
// msd : 2015-07-23 MSD Registry Holdings, Inc.
|
||||
msd
|
||||
|
||||
@@ -9764,7 +9772,7 @@ site
|
||||
// ski : 2015-04-09 Afilias Limited
|
||||
ski
|
||||
|
||||
// skin : 2015-01-15 L'Oréal
|
||||
// skin : 2015-01-15 XYZ.COM LLC
|
||||
skin
|
||||
|
||||
// sky : 2014-06-19 Sky International AG
|
||||
@@ -9959,9 +9967,6 @@ tech
|
||||
// technology : 2013-09-13 Binky Moon, LLC
|
||||
technology
|
||||
|
||||
// telefonica : 2014-10-16 Telefónica S.A.
|
||||
telefonica
|
||||
|
||||
// temasek : 2014-08-07 Temasek Holdings (Private) Limited
|
||||
temasek
|
||||
|
||||
@@ -10403,6 +10408,9 @@ xin
|
||||
// xn--cck2b3b : 2015-02-26 Amazon Registry Services, Inc.
|
||||
ストア
|
||||
|
||||
// xn--cckwcxetd : 2019-12-19 Amazon EU S.à r.l.
|
||||
アマゾン
|
||||
|
||||
// xn--cg4bki : 2013-09-27 SAMSUNG SDS CO., LTD
|
||||
삼성
|
||||
|
||||
@@ -10472,6 +10480,9 @@ xin
|
||||
// xn--j1aef : 2015-01-15 VeriSign Sarl
|
||||
ком
|
||||
|
||||
// xn--jlq480n2rg : 2019-12-19 Amazon EU S.à r.l.
|
||||
亚马逊
|
||||
|
||||
// xn--jlq61u9w7b : 2015-01-08 Nokia Corporation
|
||||
诺基亚
|
||||
|
||||
@@ -10532,7 +10543,7 @@ xin
|
||||
// xn--nyqy26a : 2014-11-07 Stable Tone Limited
|
||||
健康
|
||||
|
||||
// xn--otu796d : 2017-08-06 Internet DotTrademark Organisation Limited
|
||||
// xn--otu796d : 2017-08-06 Jiang Yu Liang Cai Technology Company Limited
|
||||
招聘
|
||||
|
||||
// xn--p1acf : 2013-12-12 Rusnames Limited
|
||||
@@ -10954,8 +10965,9 @@ certmgr.org
|
||||
xenapponazure.com
|
||||
|
||||
// Civilized Discourse Construction Kit, Inc. : https://www.discourse.org/
|
||||
// Submitted by Rishabh Nambiar <rishabh.nambiar@discourse.org>
|
||||
// Submitted by Rishabh Nambiar & Michael Brown <team@discourse.org>
|
||||
discourse.group
|
||||
discourse.team
|
||||
|
||||
// ClearVox : http://www.clearvox.nl/
|
||||
// Submitted by Leon Rowland <leon@clearvox.nl>
|
||||
@@ -11685,6 +11697,7 @@ vologda.su
|
||||
// Fancy Bits, LLC : http://getchannels.com
|
||||
// Submitted by Aman Gupta <aman@getchannels.com>
|
||||
channelsdvr.net
|
||||
u.channelsdvr.net
|
||||
|
||||
// Fastly Inc. : http://www.fastly.com/
|
||||
// Submitted by Fastly Security <security@fastly.com>
|
||||
@@ -12604,6 +12617,10 @@ pubtls.org
|
||||
// Submitted by Xavier De Cock <xdecock@gmail.com>
|
||||
qualifioapp.com
|
||||
|
||||
// QuickBackend: https://www.quickbackend.com
|
||||
// Submitted by Dani Biro <dani@pymet.com>
|
||||
qbuser.com
|
||||
|
||||
// Redstar Consultants : https://www.redstarconsultants.com/
|
||||
// Submitted by Jons Slemmer <jons@redstarconsultants.com>
|
||||
instantcloud.cn
|
||||
@@ -12718,6 +12735,10 @@ my-firewall.org
|
||||
myfirewall.org
|
||||
spdns.org
|
||||
|
||||
// Senseering GmbH : https://www.senseering.de
|
||||
// Submitted by Felix Mönckemeyer <f.moenckemeyer@senseering.de>
|
||||
senseering.net
|
||||
|
||||
// Service Online LLC : http://drs.ua/
|
||||
// Submitted by Serhii Bulakh <support@drs.ua>
|
||||
biz.ua
|
||||
@@ -12988,6 +13009,14 @@ remotewd.com
|
||||
// Submitted by Yuvi Panda <yuvipanda@wikimedia.org>
|
||||
wmflabs.org
|
||||
|
||||
// WoltLab GmbH : https://www.woltlab.com
|
||||
// Submitted by Tim Düsterhus <security@woltlab.cloud>
|
||||
myforum.community
|
||||
community-pro.de
|
||||
diskussionsbereich.de
|
||||
community-pro.net
|
||||
meinforum.net
|
||||
|
||||
// XenonCloud GbR: https://xenoncloud.net
|
||||
// Submitted by Julian Uphoff <publicsuffixlist@xenoncloud.net>
|
||||
half.host
|
||||
|
||||
@@ -87,6 +87,7 @@ nsFtpState::nsFtpState()
|
||||
, mAnonymous(true)
|
||||
, mRetryPass(false)
|
||||
, mStorReplyReceived(false)
|
||||
, mRlist1xxReceived(false)
|
||||
, mInternalError(NS_OK)
|
||||
, mReconnectAndLoginAgain(false)
|
||||
, mCacheConnection(true)
|
||||
@@ -1189,15 +1190,18 @@ nsFtpState::S_list() {
|
||||
FTP_STATE
|
||||
nsFtpState::R_list() {
|
||||
if (mResponseCode/100 == 1) {
|
||||
mRlist1xxReceived = true;
|
||||
|
||||
// OK, time to start reading from the data connection.
|
||||
if (mDataStream && HasPendingCallback())
|
||||
mDataStream->AsyncWait(this, 0, 0, CallbackTarget());
|
||||
return FTP_READ_BUF;
|
||||
}
|
||||
|
||||
if (mResponseCode/100 == 2) {
|
||||
if (mResponseCode/100 == 2 && mRlist1xxReceived) {
|
||||
//(DONE)
|
||||
mNextState = FTP_COMPLETE;
|
||||
mRlist1xxReceived = false;
|
||||
return FTP_COMPLETE;
|
||||
}
|
||||
return FTP_ERROR;
|
||||
|
||||
@@ -185,6 +185,8 @@ private:
|
||||
bool mRetryPass; // retrying the password
|
||||
bool mStorReplyReceived; // FALSE if waiting for STOR
|
||||
// completion status from server
|
||||
bool mRlist1xxReceived; // TRUE if we have received a LIST
|
||||
// 1xx response from the server
|
||||
nsresult mInternalError; // represents internal state errors
|
||||
bool mReconnectAndLoginAgain;
|
||||
bool mCacheConnection;
|
||||
|
||||
@@ -722,8 +722,6 @@ public abstract class TreeBuilder<T> implements TokenHandler,
|
||||
contextName);
|
||||
}
|
||||
}
|
||||
contextName = null;
|
||||
contextNode = null;
|
||||
} else {
|
||||
mode = INITIAL;
|
||||
// If we are viewing XML source, put a foreign element permanently
|
||||
@@ -1629,8 +1627,6 @@ public abstract class TreeBuilder<T> implements TokenHandler,
|
||||
* @see nu.validator.htmlparser.common.TokenHandler#endTokenization()
|
||||
*/
|
||||
public final void endTokenization() throws SAXException {
|
||||
formPointer = null;
|
||||
headPointer = null;
|
||||
deepTreeSurrogateParent = null;
|
||||
templateModeStack = null;
|
||||
if (stack != null) {
|
||||
|
||||
@@ -143,8 +143,6 @@ nsHtml5TreeBuilder::startTokenization(nsHtml5Tokenizer* self)
|
||||
tokenizer->setState(NS_HTML5TOKENIZER_DATA);
|
||||
}
|
||||
}
|
||||
contextName = nullptr;
|
||||
contextNode = nullptr;
|
||||
} else {
|
||||
mode = NS_HTML5TREE_BUILDER_INITIAL;
|
||||
if (tokenizer->isViewingXmlSource()) {
|
||||
@@ -583,6 +581,8 @@ nsHtml5TreeBuilder::endTokenization()
|
||||
{
|
||||
formPointer = nullptr;
|
||||
headPointer = nullptr;
|
||||
contextName = nullptr;
|
||||
contextNode = nullptr;
|
||||
deepTreeSurrogateParent = nullptr;
|
||||
templateModeStack = nullptr;
|
||||
if (stack) {
|
||||
|
||||
@@ -686,7 +686,6 @@ static const TransportSecurityPreload kPublicKeyPinningPreloadList[] = {
|
||||
{ "chrome-devtools-frontend.appspot.com", true, false, false, -1, &kPinset_google_root_pems },
|
||||
{ "chrome.com", true, false, false, -1, &kPinset_google_root_pems },
|
||||
{ "chrome.google.com", true, false, false, -1, &kPinset_google_root_pems },
|
||||
{ "chromereporting-pa.googleapis.com", true, false, false, -1, &kPinset_google_root_pems },
|
||||
{ "chromiumbugs.appspot.com", true, false, false, -1, &kPinset_google_root_pems },
|
||||
{ "chromiumcodereview.appspot.com", true, false, false, -1, &kPinset_google_root_pems },
|
||||
{ "cl.search.yahoo.com", false, true, false, -1, &kPinset_yahoo },
|
||||
@@ -1083,7 +1082,6 @@ static const TransportSecurityPreload kPublicKeyPinningPreloadList[] = {
|
||||
{ "torproject.org", false, false, false, -1, &kPinset_tor },
|
||||
{ "touch.facebook.com", true, false, false, -1, &kPinset_facebook },
|
||||
{ "tr.search.yahoo.com", false, true, false, -1, &kPinset_yahoo },
|
||||
{ "translate.googleapis.com", true, false, false, -1, &kPinset_google_root_pems },
|
||||
{ "tv.search.yahoo.com", false, true, false, -1, &kPinset_yahoo },
|
||||
{ "tw.search.yahoo.com", false, true, false, -1, &kPinset_yahoo },
|
||||
{ "twimg.com", true, false, false, -1, &kPinset_twitterCDN },
|
||||
@@ -1133,8 +1131,8 @@ static const TransportSecurityPreload kPublicKeyPinningPreloadList[] = {
|
||||
{ "zh.search.yahoo.com", false, true, false, -1, &kPinset_yahoo },
|
||||
};
|
||||
|
||||
// Pinning Preload List Length = 488;
|
||||
// Pinning Preload List Length = 486;
|
||||
|
||||
static const int32_t kUnknownId = -1;
|
||||
|
||||
static const PRTime kPreloadPKPinsExpirationTime = INT64_C(1585251655362000);
|
||||
static const PRTime kPreloadPKPinsExpirationTime = INT64_C(1590413552686000);
|
||||
|
||||
+5399
-2421
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -105,29 +105,24 @@ BackCert::Init()
|
||||
return rv;
|
||||
}
|
||||
|
||||
static const uint8_t CSC = der::CONTEXT_SPECIFIC | der::CONSTRUCTED;
|
||||
|
||||
// According to RFC 5280, all fields below this line are forbidden for
|
||||
// certificate versions less than v3. However, for compatibility reasons,
|
||||
// we parse v1/v2 certificates in the same way as v3 certificates. So if
|
||||
// these fields appear in a v1 certificate, they will be used.
|
||||
|
||||
// Ignore issuerUniqueID if present.
|
||||
if (tbsCertificate.Peek(CSC | 1)) {
|
||||
rv = der::ExpectTagAndSkipValue(tbsCertificate, CSC | 1);
|
||||
if (rv != Success) {
|
||||
return rv;
|
||||
}
|
||||
rv = der::SkipOptionalImplicitPrimitiveTag(tbsCertificate, 1);
|
||||
if (rv != Success) {
|
||||
return rv;
|
||||
}
|
||||
|
||||
// Ignore subjectUniqueID if present.
|
||||
if (tbsCertificate.Peek(CSC | 2)) {
|
||||
rv = der::ExpectTagAndSkipValue(tbsCertificate, CSC | 2);
|
||||
if (rv != Success) {
|
||||
return rv;
|
||||
}
|
||||
rv = der::SkipOptionalImplicitPrimitiveTag(tbsCertificate, 2);
|
||||
if (rv != Success) {
|
||||
return rv;
|
||||
}
|
||||
|
||||
static const uint8_t CSC = der::CONTEXT_SPECIFIC | der::CONSTRUCTED;
|
||||
rv = der::OptionalExtensions(
|
||||
tbsCertificate, CSC | 3,
|
||||
[this](Reader& extnID, const Input& extnValue, bool critical,
|
||||
|
||||
@@ -123,6 +123,17 @@ ExpectTagAndSkipValue(Reader& input, uint8_t tag)
|
||||
return ExpectTagAndGetValue(input, tag, ignoredValue);
|
||||
}
|
||||
|
||||
// This skips IMPLICIT OPTIONAL tags that are "primitive" (not constructed),
|
||||
// given the number in the class of the tag (i.e. the number in the brackets in
|
||||
// `issuerUniqueID [1] IMPLICIT UniqueIdentifier OPTIONAL`).
|
||||
inline Result SkipOptionalImplicitPrimitiveTag(Reader& input,
|
||||
uint8_t numberInClass) {
|
||||
if (input.Peek(CONTEXT_SPECIFIC | numberInClass)) {
|
||||
return ExpectTagAndSkipValue(input, CONTEXT_SPECIFIC | numberInClass);
|
||||
}
|
||||
return Success;
|
||||
}
|
||||
|
||||
// Like ExpectTagAndGetValue, except the output Input will contain the
|
||||
// encoded tag and length along with the value.
|
||||
inline Result
|
||||
|
||||
+18
-23
@@ -285,26 +285,33 @@ DatabasePathFromWALPath(const char *zWALName)
|
||||
MOZ_CRASH("Should never get here!");
|
||||
}
|
||||
|
||||
already_AddRefed<QuotaObject>
|
||||
GetQuotaObjectFromNameAndParameters(const char *zName,
|
||||
const char *zURIParameterKey)
|
||||
{
|
||||
MOZ_ASSERT(zName);
|
||||
MOZ_ASSERT(zURIParameterKey);
|
||||
already_AddRefed<QuotaObject> GetQuotaObjectFromName(const char *zName,
|
||||
bool deriveFromWal) {
|
||||
// From Sqlite 3.31.0 the zName format changed to work consistently across
|
||||
// database, wal and journal names.
|
||||
// We must support both ways because this code will be uplifted to ensure
|
||||
// that if system Sqlite is upgraded before us, we keep working properly.
|
||||
// Once the Firefox minimum Sqlite version is 3.31.0, we can remove the else
|
||||
// branch, DatabasePathFromWALPath, and the deriveFromWal argument.
|
||||
const char* filename = zName;
|
||||
if (deriveFromWal && sqlite3_libversion_number() < 3031000) {
|
||||
filename = DatabasePathFromWALPath(zName);
|
||||
}
|
||||
MOZ_ASSERT(filename);
|
||||
|
||||
const char *persistenceType =
|
||||
sqlite3_uri_parameter(zURIParameterKey, "persistenceType");
|
||||
sqlite3_uri_parameter(filename, "persistenceType");
|
||||
if (!persistenceType) {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
const char *group = sqlite3_uri_parameter(zURIParameterKey, "group");
|
||||
const char *group = sqlite3_uri_parameter(filename, "group");
|
||||
if (!group) {
|
||||
NS_WARNING("SQLite URI had 'persistenceType' but not 'group'?!");
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
const char *origin = sqlite3_uri_parameter(zURIParameterKey, "origin");
|
||||
const char *origin = sqlite3_uri_parameter(filename, "origin");
|
||||
if (!origin) {
|
||||
NS_WARNING("SQLite URI had 'persistenceType' and 'group' but not "
|
||||
"'origin'?!");
|
||||
@@ -333,16 +340,7 @@ MaybeEstablishQuotaControl(const char *zName,
|
||||
return;
|
||||
}
|
||||
|
||||
MOZ_ASSERT(zName);
|
||||
|
||||
const char *zURIParameterKey = (flags & SQLITE_OPEN_WAL) ?
|
||||
DatabasePathFromWALPath(zName) :
|
||||
zName;
|
||||
|
||||
MOZ_ASSERT(zURIParameterKey);
|
||||
|
||||
pFile->quotaObject =
|
||||
GetQuotaObjectFromNameAndParameters(zName, zURIParameterKey);
|
||||
pFile->quotaObject = GetQuotaObjectFromName(zName, flags & SQLITE_OPEN_WAL);
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -715,10 +713,7 @@ xDelete(sqlite3_vfs* vfs, const char *zName, int syncDir)
|
||||
RefPtr<QuotaObject> quotaObject;
|
||||
|
||||
if (StringEndsWith(nsDependentCString(zName), NS_LITERAL_CSTRING("-wal"))) {
|
||||
const char *zURIParameterKey = DatabasePathFromWALPath(zName);
|
||||
MOZ_ASSERT(zURIParameterKey);
|
||||
|
||||
quotaObject = GetQuotaObjectFromNameAndParameters(zName, zURIParameterKey);
|
||||
quotaObject = GetQuotaObjectFromName(zName, true);
|
||||
}
|
||||
|
||||
rc = orig_vfs->xDelete(orig_vfs, zName, syncDir);
|
||||
|
||||
@@ -285,6 +285,11 @@ nsAppStartup::Run(void)
|
||||
return rv;
|
||||
}
|
||||
|
||||
// Make sure that the appropriate quit notifications have been dispatched
|
||||
// regardless of whether the event loop has spun or not. Note that this call
|
||||
// is a no-op if Quit has already been called previously.
|
||||
Quit(eForceQuit);
|
||||
|
||||
nsresult retval = NS_OK;
|
||||
if (mRestart) {
|
||||
retval = NS_SUCCESS_RESTART_APP;
|
||||
|
||||
@@ -58,7 +58,8 @@ nsBaseDragService::nsBaseDragService()
|
||||
mDragAction(DRAGDROP_ACTION_NONE),
|
||||
mDragActionFromChildProcess(DRAGDROP_ACTION_UNINITIALIZED), mTargetSize(0,0),
|
||||
mContentPolicyType(nsIContentPolicy::TYPE_OTHER),
|
||||
mSuppressLevel(0), mInputSource(nsIDOMMouseEvent::MOZ_SOURCE_MOUSE)
|
||||
mSuppressLevel(0), mInputSource(nsIDOMMouseEvent::MOZ_SOURCE_MOUSE),
|
||||
mEndingSession(false)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -382,10 +383,12 @@ nsBaseDragService::TakeChildProcessDragAction()
|
||||
NS_IMETHODIMP
|
||||
nsBaseDragService::EndDragSession(bool aDoneDrag)
|
||||
{
|
||||
if (!mDoingDrag) {
|
||||
if (!mDoingDrag || mEndingSession) {
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
mEndingSession = true;
|
||||
|
||||
if (aDoneDrag && !mSuppressLevel) {
|
||||
FireDragEventAtSource(eDragEnd);
|
||||
}
|
||||
@@ -412,6 +415,7 @@ nsBaseDragService::EndDragSession(bool aDoneDrag)
|
||||
}
|
||||
|
||||
mDoingDrag = false;
|
||||
mEndingSession = false;
|
||||
mCanDrop = false;
|
||||
|
||||
// release the source we've been holding on to.
|
||||
|
||||
@@ -147,6 +147,9 @@ protected:
|
||||
bool mCanDrop;
|
||||
bool mOnlyChromeDrop;
|
||||
bool mDoingDrag;
|
||||
|
||||
// true if in EndDragSession
|
||||
bool mEndingSession;
|
||||
// true if mImage should be used to set a drag image
|
||||
bool mHasImage;
|
||||
// true if the user cancelled the drag operation
|
||||
|
||||
@@ -1556,6 +1556,9 @@ nsLocalFile::IsExecutable(bool* aResult)
|
||||
// Search for any of the set of executable extensions.
|
||||
static const char* const executableExts[] = {
|
||||
"air", // Adobe AIR installer
|
||||
#ifdef MOZ_WIDGET_COCOA
|
||||
"fileloc", // File location files can be used to point to other files.
|
||||
#endif
|
||||
"jar" // java application bundle
|
||||
};
|
||||
nsDependentSubstring ext = Substring(path, dotIdx + 1);
|
||||
|
||||
Reference in New Issue
Block a user