Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b06821da15 | ||
|
|
b578943a42 | ||
|
|
b4edb88144 | ||
|
|
f84f1961bc | ||
|
|
3aac951411 | ||
|
|
1a6159363f | ||
|
|
814e0bca31 | ||
|
|
29b9d4496a | ||
|
|
cc6a935ce5 | ||
|
|
d129c900c9 | ||
|
|
de2c8419c6 | ||
|
|
f6137449b6 | ||
|
|
020248c6e3 | ||
|
|
e0a09e1aaf | ||
|
|
4af3ad5dfe | ||
|
|
ff66da9af4 | ||
|
|
c2e358c520 | ||
|
|
d185071acf | ||
|
|
e517e70eb1 | ||
|
|
0a6db54d86 | ||
|
|
c5d5a28f76 | ||
|
|
a0e20005ef | ||
|
|
a3c1f180ce | ||
|
|
cd4f7a1798 | ||
|
|
914294e570 | ||
|
|
831b9d8d9e | ||
|
|
6864a02d7b | ||
|
|
bffec09e66 | ||
|
|
51e5770962 | ||
|
|
e1bfe33031 | ||
|
|
8240fb9c73 | ||
|
|
f9e04b54c2 | ||
|
|
775e800ca0 | ||
|
|
882aaf5b1f | ||
|
|
8ee235ca5d | ||
|
|
cc54bbe952 | ||
|
|
73b202b1e5 | ||
|
|
21042963de | ||
|
|
d443656df5 | ||
|
|
29a8db7280 | ||
|
|
daa52eef9a | ||
|
|
95ce1f0d63 | ||
|
|
4dadef2740 | ||
|
|
b5d8e6d28f | ||
|
|
fc0477a98e | ||
|
|
36d06b9e75 | ||
|
|
51bdd3efbc | ||
|
|
bc2584493a | ||
|
|
0f38772573 | ||
|
|
ef81277925 | ||
|
|
8b20931e12 | ||
|
|
b247982d37 |
No files matched your search
@@ -51,6 +51,8 @@
|
||||
type="bool"/>
|
||||
#endif
|
||||
<preference id="pref.general.compatmode" name="general.useragent.compatMode" type="int"/>
|
||||
|
||||
<preference id="pref.general.captiveportal" name="network.captive-portal-service.enabled" type="bool"/>
|
||||
|
||||
<!-- Data Choices tab -->
|
||||
|
||||
@@ -193,6 +195,7 @@
|
||||
</hbox>
|
||||
</groupbox>
|
||||
#endif
|
||||
<!-- User Agent compatibility -->
|
||||
<groupbox id="UACompatGroup" orient="vertical">
|
||||
<caption label="&UACompatGroup.label;"/>
|
||||
<hbox align="center">
|
||||
@@ -206,6 +209,15 @@
|
||||
</menulist>
|
||||
</hbox>
|
||||
</groupbox>
|
||||
|
||||
<!-- Captive portal detection -->
|
||||
<groupbox id="captivePortalGroup" orient="vertical">
|
||||
<caption label="&captivePortalGroup.label;"/>
|
||||
<checkbox id="captivePortalDetect"
|
||||
label="&captivePortalDetect.label;"
|
||||
preference="pref.general.captiveportal"/>
|
||||
</groupbox>
|
||||
|
||||
</tabpanel>
|
||||
|
||||
<!-- Network -->
|
||||
|
||||
@@ -1 +1 @@
|
||||
28.3.0a1
|
||||
28.3.1
|
||||
@@ -33,6 +33,15 @@
|
||||
<!ENTITY setDefault.accesskey "d">
|
||||
<!ENTITY isDefault.label "&brandShortName; is currently your default browser">
|
||||
|
||||
<!ENTITY UACompatGroup.label "Compatibility">
|
||||
<!ENTITY UACompat.label "User Agent Mode:">
|
||||
<!ENTITY UACompat.Native "Native">
|
||||
<!ENTITY UACompat.Gecko "Gecko Compatibility">
|
||||
<!ENTITY UACompat.Firefox "Firefox Compatibility">
|
||||
|
||||
<!ENTITY captivePortalGroup.label "Captive portals">
|
||||
<!ENTITY captivePortalDetect.label "Detect restricted network access">
|
||||
|
||||
<!ENTITY dataChoicesTab.label "Data Choices">
|
||||
|
||||
<!ENTITY crashReporterSection.label "Crash Reporter">
|
||||
@@ -126,12 +135,6 @@
|
||||
<!ENTITY viewSecurityDevices.label "Security Devices">
|
||||
<!ENTITY viewSecurityDevices.accesskey "y">
|
||||
|
||||
<!ENTITY UACompatGroup.label "Compatibility">
|
||||
<!ENTITY UACompat.label "User Agent Mode:">
|
||||
<!ENTITY UACompat.Native "Native">
|
||||
<!ENTITY UACompat.Gecko "Gecko Compatibility">
|
||||
<!ENTITY UACompat.Firefox "Firefox Compatibility">
|
||||
|
||||
<!ENTITY scrollparamTab.label "Scrolling">
|
||||
<!ENTITY smoothscroll.explain.label "The parameters below only have an effect if smooth scrolling is enabled overall with the checkbox above.">
|
||||
<!ENTITY smoothscroll.to "to">
|
||||
|
||||
|
After Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 75 KiB After Width: | Height: | Size: 104 KiB |
|
After Width: | Height: | Size: 6.9 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 53 KiB After Width: | Height: | Size: 55 KiB |
@@ -39,9 +39,9 @@
|
||||
--toolbarbutton-border-radius: 2.5px;
|
||||
--toolbarbutton-border-color: hsla(210,54%,20%,.2);
|
||||
|
||||
--toolbarbutton-image: url("chrome://browser/skin/Toolbar.svg");
|
||||
--toolbarbutton-glass-image: url("chrome://browser/skin/Toolbar-glass.svg");
|
||||
--toolbarbutton-inverted-image: url("chrome://browser/skin/Toolbar-inverted.svg");
|
||||
--toolbarbutton-image: url("chrome://browser/skin/Toolbar.png");
|
||||
--toolbarbutton-glass-image: url("chrome://browser/skin/Toolbar-glass.png");
|
||||
--toolbarbutton-inverted-image: url("chrome://browser/skin/Toolbar-inverted.png");
|
||||
|
||||
--tab-background: linear-gradient(transparent, hsla(0,0%,45%,.1) 1px, hsla(0,0%,32%,.2) 80%, hsla(0,0%,0%,.2));
|
||||
--tab-background-hover: linear-gradient(hsla(0,0%,100%,.3) 1px, hsla(0,0%,75%,.2) 80%, hsla(0,0%,60%,.2));
|
||||
@@ -52,6 +52,15 @@
|
||||
--window-text-color: currentColor;
|
||||
}
|
||||
|
||||
/* Use SVG for HiDPI 133%+ */
|
||||
@media (min-resolution: 1.33dppx) {
|
||||
:root {
|
||||
--toolbarbutton-image: url("chrome://browser/skin/Toolbar.svg");
|
||||
--toolbarbutton-glass-image: url("chrome://browser/skin/Toolbar-glass.svg");
|
||||
--toolbarbutton-inverted-image: url("chrome://browser/skin/Toolbar-inverted.svg");
|
||||
}
|
||||
}
|
||||
|
||||
:root:-moz-lwtheme-brighttext {
|
||||
--toolbar-highlight-top: rgba(32,32,32,.8);
|
||||
--toolbar-highlight-bottom: rgba(32,32,32,0);
|
||||
|
||||
@@ -60,6 +60,9 @@ browser.jar:
|
||||
skin/classic/browser/Secure24.png
|
||||
skin/classic/browser/setDesktopBackground.css
|
||||
skin/classic/browser/slowStartup-16.png
|
||||
skin/classic/browser/Toolbar.png
|
||||
skin/classic/browser/Toolbar-glass.png
|
||||
skin/classic/browser/Toolbar-inverted.png
|
||||
skin/classic/browser/Toolbar.svg
|
||||
skin/classic/browser/Toolbar-glass.svg
|
||||
skin/classic/browser/Toolbar-inverted.svg
|
||||
|
||||
@@ -8,6 +8,13 @@
|
||||
--toolbarbutton-image: url("chrome://browser/skin/Toolbar.png");
|
||||
}
|
||||
|
||||
/* Use SVG for HiDPI 133%+ */
|
||||
@media (min-resolution: 1.33dppx) {
|
||||
:root {
|
||||
--toolbarbutton-image: url("chrome://browser/skin/Toolbar.svg");
|
||||
}
|
||||
}
|
||||
|
||||
/* Toolbar */
|
||||
#placesToolbar {
|
||||
padding: 3px;
|
||||
|
||||
@@ -482,6 +482,7 @@ DOMIntersectionObserver::QueueIntersectionObserverEntry(Element* aTarget,
|
||||
rootBounds.forget(),
|
||||
boundingClientRect.forget(),
|
||||
intersectionRect.forget(),
|
||||
aIntersectionRect.isSome(),
|
||||
aTarget, aIntersectionRatio);
|
||||
mQueuedEntries.AppendElement(entry.forget());
|
||||
}
|
||||
|
||||
@@ -30,6 +30,7 @@ public:
|
||||
RefPtr<DOMRect> aRootBounds,
|
||||
RefPtr<DOMRect> aBoundingClientRect,
|
||||
RefPtr<DOMRect> aIntersectionRect,
|
||||
bool aIsIntersecting,
|
||||
Element* aTarget,
|
||||
double aIntersectionRatio)
|
||||
: mOwner(aOwner),
|
||||
@@ -37,6 +38,7 @@ public:
|
||||
mRootBounds(aRootBounds),
|
||||
mBoundingClientRect(aBoundingClientRect),
|
||||
mIntersectionRect(aIntersectionRect),
|
||||
mIsIntersecting(aIsIntersecting),
|
||||
mTarget(aTarget),
|
||||
mIntersectionRatio(aIntersectionRatio)
|
||||
{
|
||||
@@ -74,6 +76,11 @@ public:
|
||||
return mIntersectionRect;
|
||||
}
|
||||
|
||||
bool IsIntersecting()
|
||||
{
|
||||
return mIsIntersecting;
|
||||
}
|
||||
|
||||
double IntersectionRatio()
|
||||
{
|
||||
return mIntersectionRatio;
|
||||
@@ -90,6 +97,7 @@ protected:
|
||||
RefPtr<DOMRect> mRootBounds;
|
||||
RefPtr<DOMRect> mBoundingClientRect;
|
||||
RefPtr<DOMRect> mIntersectionRect;
|
||||
bool mIsIntersecting;
|
||||
RefPtr<Element> mTarget;
|
||||
double mIntersectionRatio;
|
||||
};
|
||||
|
||||
@@ -687,19 +687,23 @@ Element::GetScrollFrame(nsIFrame **aStyledFrame, bool aFlushLayout)
|
||||
}
|
||||
|
||||
void
|
||||
Element::ScrollIntoView()
|
||||
Element::ScrollIntoView(const BooleanOrScrollIntoViewOptions& aObject)
|
||||
{
|
||||
ScrollIntoView(ScrollIntoViewOptions());
|
||||
}
|
||||
|
||||
void
|
||||
Element::ScrollIntoView(bool aTop)
|
||||
{
|
||||
ScrollIntoViewOptions options;
|
||||
if (!aTop) {
|
||||
options.mBlock = ScrollLogicalPosition::End;
|
||||
if (aObject.IsScrollIntoViewOptions()) {
|
||||
return ScrollIntoView(aObject.GetAsScrollIntoViewOptions());
|
||||
}
|
||||
ScrollIntoView(options);
|
||||
|
||||
MOZ_DIAGNOSTIC_ASSERT(aObject.IsBoolean());
|
||||
|
||||
ScrollIntoViewOptions options;
|
||||
if (aObject.GetAsBoolean()) {
|
||||
options.mBlock = ScrollLogicalPosition::Start;
|
||||
options.mInline = ScrollLogicalPosition::Nearest;
|
||||
} else {
|
||||
options.mBlock = ScrollLogicalPosition::End;
|
||||
options.mInline = ScrollLogicalPosition::Nearest;
|
||||
}
|
||||
return ScrollIntoView(options);
|
||||
}
|
||||
|
||||
void
|
||||
@@ -716,9 +720,41 @@ Element::ScrollIntoView(const ScrollIntoViewOptions &aOptions)
|
||||
return;
|
||||
}
|
||||
|
||||
int16_t vpercent = (aOptions.mBlock == ScrollLogicalPosition::Start)
|
||||
? nsIPresShell::SCROLL_TOP
|
||||
: nsIPresShell::SCROLL_BOTTOM;
|
||||
int16_t vpercent = nsIPresShell::SCROLL_CENTER;
|
||||
switch (aOptions.mBlock) {
|
||||
case ScrollLogicalPosition::Start:
|
||||
vpercent = nsIPresShell::SCROLL_TOP;
|
||||
break;
|
||||
case ScrollLogicalPosition::Center:
|
||||
vpercent = nsIPresShell::SCROLL_CENTER;
|
||||
break;
|
||||
case ScrollLogicalPosition::End:
|
||||
vpercent = nsIPresShell::SCROLL_BOTTOM;
|
||||
break;
|
||||
case ScrollLogicalPosition::Nearest:
|
||||
vpercent = nsIPresShell::SCROLL_MINIMUM;
|
||||
break;
|
||||
default:
|
||||
MOZ_ASSERT_UNREACHABLE("Unexpected ScrollLogicalPosition value");
|
||||
}
|
||||
|
||||
int16_t hpercent = nsIPresShell::SCROLL_CENTER;
|
||||
switch (aOptions.mInline) {
|
||||
case ScrollLogicalPosition::Start:
|
||||
hpercent = nsIPresShell::SCROLL_LEFT;
|
||||
break;
|
||||
case ScrollLogicalPosition::Center:
|
||||
hpercent = nsIPresShell::SCROLL_CENTER;
|
||||
break;
|
||||
case ScrollLogicalPosition::End:
|
||||
hpercent = nsIPresShell::SCROLL_RIGHT;
|
||||
break;
|
||||
case ScrollLogicalPosition::Nearest:
|
||||
hpercent = nsIPresShell::SCROLL_MINIMUM;
|
||||
break;
|
||||
default:
|
||||
MOZ_ASSERT_UNREACHABLE("Unexpected ScrollLogicalPosition value");
|
||||
}
|
||||
|
||||
uint32_t flags = nsIPresShell::SCROLL_OVERFLOW_HIDDEN;
|
||||
if (aOptions.mBehavior == ScrollBehavior::Smooth) {
|
||||
@@ -731,7 +767,9 @@ Element::ScrollIntoView(const ScrollIntoViewOptions &aOptions)
|
||||
nsIPresShell::ScrollAxis(
|
||||
vpercent,
|
||||
nsIPresShell::SCROLL_ALWAYS),
|
||||
nsIPresShell::ScrollAxis(),
|
||||
nsIPresShell::ScrollAxis(
|
||||
hpercent,
|
||||
nsIPresShell::SCROLL_ALWAYS),
|
||||
flags);
|
||||
}
|
||||
|
||||
|
||||
@@ -818,9 +818,10 @@ public:
|
||||
return slots ? slots->mShadowRoot.get() : nullptr;
|
||||
}
|
||||
|
||||
void ScrollIntoView();
|
||||
void ScrollIntoView(bool aTop);
|
||||
private:
|
||||
void ScrollIntoView(const ScrollIntoViewOptions &aOptions);
|
||||
public:
|
||||
void ScrollIntoView(const BooleanOrScrollIntoViewOptions& aObject);
|
||||
void Scroll(double aXScroll, double aYScroll);
|
||||
void Scroll(const ScrollToOptions& aOptions);
|
||||
void ScrollTo(double aXScroll, double aYScroll);
|
||||
|
||||
@@ -396,13 +396,6 @@ public:
|
||||
}
|
||||
NS_IMETHOD InsertAdjacentHTML(const nsAString& position,
|
||||
const nsAString& text) final override;
|
||||
NS_IMETHOD ScrollIntoView(bool top, uint8_t _argc) final override {
|
||||
if (!_argc) {
|
||||
top = true;
|
||||
}
|
||||
mozilla::dom::Element::ScrollIntoView(top);
|
||||
return NS_OK;
|
||||
}
|
||||
NS_IMETHOD GetOffsetParent(nsIDOMElement** aOffsetParent)
|
||||
final override {
|
||||
mozilla::dom::Element* offsetParent = GetOffsetParent();
|
||||
|
||||
@@ -58,7 +58,6 @@ interface nsIDOMHTMLElement : nsIDOMElement
|
||||
|
||||
|
||||
// CSSOM View
|
||||
[optional_argc] void scrollIntoView([optional] in boolean top);
|
||||
readonly attribute nsIDOMElement offsetParent;
|
||||
readonly attribute long offsetTop;
|
||||
readonly attribute long offsetLeft;
|
||||
|
||||
@@ -164,9 +164,10 @@ interface Element : Node {
|
||||
};
|
||||
|
||||
// http://dev.w3.org/csswg/cssom-view/
|
||||
enum ScrollLogicalPosition { "start", "end" };
|
||||
enum ScrollLogicalPosition { "start", "center", "end", "nearest" };
|
||||
dictionary ScrollIntoViewOptions : ScrollOptions {
|
||||
ScrollLogicalPosition block = "start";
|
||||
ScrollLogicalPosition inline = "nearest";
|
||||
};
|
||||
|
||||
// http://dev.w3.org/csswg/cssom-view/#extensions-to-the-element-interface
|
||||
@@ -175,8 +176,7 @@ partial interface Element {
|
||||
DOMRect getBoundingClientRect();
|
||||
|
||||
// scrolling
|
||||
void scrollIntoView(boolean top);
|
||||
void scrollIntoView(optional ScrollIntoViewOptions options);
|
||||
void scrollIntoView(optional (boolean or ScrollIntoViewOptions) arg);
|
||||
// None of the CSSOM attributes are [Pure], because they flush
|
||||
attribute long scrollTop; // scroll on setting
|
||||
attribute long scrollLeft; // scroll on setting
|
||||
|
||||
@@ -18,6 +18,8 @@ interface IntersectionObserverEntry {
|
||||
[Constant]
|
||||
readonly attribute DOMRectReadOnly intersectionRect;
|
||||
[Constant]
|
||||
readonly attribute boolean isIntersecting;
|
||||
[Constant]
|
||||
readonly attribute double intersectionRatio;
|
||||
[Constant]
|
||||
readonly attribute Element target;
|
||||
|
||||
@@ -213,7 +213,8 @@ pref("dom.requestIdleCallback.enabled", true);
|
||||
|
||||
// Enable Intersection Observers
|
||||
// See WD https://www.w3.org/TR/intersection-observer/
|
||||
pref("dom.IntersectionObserver.enabled", true);
|
||||
// Disabled for now, see issue #935
|
||||
pref("dom.IntersectionObserver.enabled", false);
|
||||
|
||||
// Whether the Gamepad API is enabled
|
||||
pref("dom.gamepad.enabled", true);
|
||||
|
||||