diff --git a/application/palemoon/components/places/PlacesUIUtils.jsm b/application/palemoon/components/places/PlacesUIUtils.jsm index f15886c639..8a7d4a00f1 100644 --- a/application/palemoon/components/places/PlacesUIUtils.jsm +++ b/application/palemoon/components/places/PlacesUIUtils.jsm @@ -759,7 +759,9 @@ this.PlacesUIUtils = { if (PlacesUtils.nodeIsURI(aNodes[i])) urlsToOpen.push({uri: aNodes[i].uri, isBookmark: PlacesUtils.nodeIsBookmark(aNodes[i])}); } - this._openTabset(urlsToOpen, aEvent, window); + if (this._confirmOpenInTabs(urlsToOpen.length, window)) { + this._openTabset(urlsToOpen, aEvent, window); + } }, /** diff --git a/application/palemoon/components/places/content/controller.js b/application/palemoon/components/places/content/controller.js index 1c8eeee514..33312330f5 100644 --- a/application/palemoon/components/places/content/controller.js +++ b/application/palemoon/components/places/content/controller.js @@ -633,7 +633,7 @@ PlacesController.prototype = { if (!openContainerInTabsItem.hidden) { var containerToUse = this._view.selectedNode || this._view.result.root; if (PlacesUtils.nodeIsContainer(containerToUse)) { - if (!PlacesUtils.hasChildURIs(containerToUse, true)) { + if (!PlacesUtils.hasChildURIs(containerToUse)) { openContainerInTabsItem.disabled = true; // Ensure that we don't display the menu if nothing is enabled: usableItemCount--; diff --git a/application/palemoon/components/places/content/sidebarUtils.js b/application/palemoon/components/places/content/sidebarUtils.js index 9a2660bd67..66ea103777 100644 --- a/application/palemoon/components/places/content/sidebarUtils.js +++ b/application/palemoon/components/places/content/sidebarUtils.js @@ -36,7 +36,7 @@ var SidebarUtils = { var openInTabs = isContainer && (aEvent.button == 1 || (aEvent.button == 0 && modifKey)) && - PlacesUtils.hasChildURIs(tbo.view.nodeForTreeIndex(cell.row), true); + PlacesUtils.hasChildURIs(tbo.view.nodeForTreeIndex(cell.row)); if (aEvent.button == 0 && isContainer && !openInTabs) { tbo.view.toggleOpenState(cell.row); diff --git a/dom/canvas/WebGLFramebuffer.cpp b/dom/canvas/WebGLFramebuffer.cpp index 7a1d4dbd9e..cbba648bd1 100644 --- a/dom/canvas/WebGLFramebuffer.cpp +++ b/dom/canvas/WebGLFramebuffer.cpp @@ -1216,6 +1216,7 @@ WebGLFramebuffer::RefreshDrawBuffers() const } } + gl->fBindFramebuffer(LOCAL_GL_DRAW_FRAMEBUFFER, mGLName); gl->fDrawBuffers(driverBuffers.size(), driverBuffers.data()); } @@ -1235,6 +1236,7 @@ WebGLFramebuffer::RefreshReadBuffer() const driverBuffer = mColorReadBuffer->mAttachmentPoint; } + gl->fBindFramebuffer(LOCAL_GL_READ_FRAMEBUFFER, mGLName); gl->fReadBuffer(driverBuffer); } diff --git a/dom/html/HTMLLinkElement.h b/dom/html/HTMLLinkElement.h index 8575d5b49f..aca16d56a4 100644 --- a/dom/html/HTMLLinkElement.h +++ b/dom/html/HTMLLinkElement.h @@ -109,6 +109,14 @@ public: SetHTMLAttr(nsGkAtoms::rel, aRel, aRv); } nsDOMTokenList* RelList(); + void GetNonce(nsAString& aNonce) const + { + GetHTMLAttr(nsGkAtoms::nonce, aNonce); + } + void SetNonce(const nsAString& aNonce, ErrorResult& aRv) + { + SetHTMLAttr(nsGkAtoms::nonce, aNonce, aRv); + } // XPCOM GetMedia is fine. void SetMedia(const nsAString& aMedia, ErrorResult& aRv) { diff --git a/dom/html/HTMLScriptElement.h b/dom/html/HTMLScriptElement.h index a0c9e47258..a80f0262a1 100644 --- a/dom/html/HTMLScriptElement.h +++ b/dom/html/HTMLScriptElement.h @@ -80,6 +80,14 @@ public: { SetOrRemoveNullableStringAttr(nsGkAtoms::crossorigin, aCrossOrigin, aError); } + void GetNonce(nsAString& aNonce) const + { + GetHTMLAttr(nsGkAtoms::nonce, aNonce); + } + void SetNonce(const nsAString& aNonce, ErrorResult& aRv) + { + SetHTMLAttr(nsGkAtoms::nonce, aNonce, aRv); + } void GetIntegrity(nsAString& aIntegrity) { GetHTMLAttr(nsGkAtoms::integrity, aIntegrity); diff --git a/dom/html/HTMLStyleElement.h b/dom/html/HTMLStyleElement.h index 60331dc5df..585047ba38 100644 --- a/dom/html/HTMLStyleElement.h +++ b/dom/html/HTMLStyleElement.h @@ -60,6 +60,14 @@ public: bool Disabled() const; void SetDisabled(bool aDisabled); + void GetNonce(nsAString& aNonce) const + { + GetHTMLAttr(nsGkAtoms::nonce, aNonce); + } + void SetNonce(const nsAString& aNonce, ErrorResult& aRv) + { + SetHTMLAttr(nsGkAtoms::nonce, aNonce, aRv); + } void SetMedia(const nsAString& aMedia, ErrorResult& aError) { SetHTMLAttr(nsGkAtoms::media, aMedia, aError); diff --git a/dom/webidl/HTMLLinkElement.webidl b/dom/webidl/HTMLLinkElement.webidl index 4fa40d04d0..0089ab84e6 100644 --- a/dom/webidl/HTMLLinkElement.webidl +++ b/dom/webidl/HTMLLinkElement.webidl @@ -26,6 +26,8 @@ interface HTMLLinkElement : HTMLElement { readonly attribute DOMTokenList relList; [CEReactions, SetterThrows, Pure] attribute DOMString media; + [CEReactions, SetterThrows, Pure] + attribute DOMString nonce; [CEReactions, SetterThrows, Pure] attribute DOMString hreflang; [CEReactions, SetterThrows, Pure] diff --git a/dom/webidl/HTMLScriptElement.webidl b/dom/webidl/HTMLScriptElement.webidl index 286c0673d8..6b48a52443 100644 --- a/dom/webidl/HTMLScriptElement.webidl +++ b/dom/webidl/HTMLScriptElement.webidl @@ -26,6 +26,10 @@ interface HTMLScriptElement : HTMLElement { attribute DOMString? crossOrigin; [CEReactions, SetterThrows] attribute DOMString text; + [CEReactions, SetterThrows, Pure] + attribute DOMString nonce; + [CEReactions, SetterThrows, Pure] + attribute DOMString integrity; }; // http://www.whatwg.org/specs/web-apps/current-work/#other-elements,-attributes-and-apis @@ -35,9 +39,3 @@ partial interface HTMLScriptElement { [CEReactions, SetterThrows] attribute DOMString htmlFor; }; - -// https://w3c.github.io/webappsec/specs/subresourceintegrity/#htmlscriptelement-1 -partial interface HTMLScriptElement { - [CEReactions, SetterThrows] - attribute DOMString integrity; -}; diff --git a/dom/webidl/HTMLStyleElement.webidl b/dom/webidl/HTMLStyleElement.webidl index 3cacbf62fd..3f2e0c8630 100644 --- a/dom/webidl/HTMLStyleElement.webidl +++ b/dom/webidl/HTMLStyleElement.webidl @@ -15,6 +15,8 @@ interface HTMLStyleElement : HTMLElement { [CEReactions, SetterThrows, Pure] attribute DOMString media; [CEReactions, SetterThrows, Pure] + attribute DOMString nonce; + [CEReactions, SetterThrows, Pure] attribute DOMString type; [SetterThrows, Pure] attribute boolean scoped; diff --git a/netwerk/base/nsIOService.cpp b/netwerk/base/nsIOService.cpp index a953dc78c1..55f40a41ef 100644 --- a/netwerk/base/nsIOService.cpp +++ b/netwerk/base/nsIOService.cpp @@ -1203,13 +1203,14 @@ nsIOService::SetConnectivityInternal(bool aConnectivity) NS_IMETHODIMP nsIOService::AllowPort(int32_t inPort, const char *scheme, bool *_retval) { - int16_t port = inPort; + int32_t port = inPort; if (port == -1) { *_retval = true; return NS_OK; } - if (port == 0) { + // Ensure the port number is within a valid range + if (port <= 0 || port >= std::numeric_limits::max()) { *_retval = false; return NS_OK; }