1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
|
---
title: Firefox 66 для разработчиков
slug: Mozilla/Firefox/Releases/66
translation_of: Mozilla/Firefox/Releases/66
---
<div> </div>
<h3 id="Developer_tools">Developer tools</h3>
<ul>
<li>JavaScript getters can now be executed from the auto-completion popup in the <a href="/en-US/docs/Tools/Web_Console">Web Console</a> ({{bug(1499289)}}).</li>
<li>The Window methods {{domxref("Window.alert()", "alert()")}}, {{domxref("Window.prompt()","prompt()")}}, and {{domxref("Window.confirm()","confirm()")}} now work again in <a href="/en-US/docs/Tools/Responsive_Design_Mode">Responsive Design Mode</a>, after a period of being broken ({{bug(1273997)}}).</li>
</ul>
<h3 id="HTML">HTML</h3>
<ul>
<li>UTF-8-encoded HTML (and plain text) files loaded from <code>file:</code> URLs are now supported without <code><meta charset="utf-8"></code> or the UTF-8 BOM, making it easier to work on such files locally before uploading them to a server. You still need to make sure that the server sends <code>charset=utf-8</code> in the <code>Content-Type</code> HTTP header for such files, otherwise the detection mechanism used for local files would break incremental loading in the network case ({{bug(1071816)}}).</li>
</ul>
<h4 id="Removals">Removals</h4>
<ul>
<li>The <code>x-moz-errormessage</code> attribute has been removed from the {{HTMLElement("input")}} element ({{bug(1513890)}}). You should use {{domxref("Constraint_validation", "Constraint validation features", "", "1")}} to implement custom validation messages instead.</li>
</ul>
<h3 id="CSS">CSS</h3>
<ul>
<li><a href="https://drafts.csswg.org/css-scroll-anchoring/">Scroll anchoring</a> has been implemented in Firefox Desktop (but not mobile yet), which includes the {{cssxref("overflow-anchor")}} property ({{bug(1305957)}}).</li>
<li>We've implemented the case-sensitive <a href="/en-US/docs/Web/CSS/Attribute_selectors">attribute selector</a> modifier, <code>s</code> ({{Bug(1512386)}}).</li>
<li>Several <a href="/en-US/docs/Web/CSS/CSS_Logical_Properties">logical property</a> shorthands have landed, along with the flow-relative border radius properties:
<ul>
<li>{{cssxref("padding-block")}} and {{cssxref("padding-inline")}} ({{bug(1519847)}}).</li>
<li>{{cssxref("margin-block")}} and {{cssxref("margin-inline")}} ({{bug(1519944)}}).</li>
<li>{{cssxref("inset")}}, {{cssxref("inset-block")}}, and {{cssxref("inset-inline")}} ({{bug(1520229)}}).</li>
<li>{{cssxref("border-block-color")}}, {{cssxref("border-block-style")}}, {{cssxref("border-block-width")}}, {{cssxref("border-inline-color")}}, {{cssxref("border-inline-style")}}, and {{cssxref("border-inline-width")}} ({{bug(1520236)}}).</li>
<li>{{cssxref("border-block")}} and {{cssxref("border-inline")}} ({{bug(1520396)}}).</li>
<li>{{cssxref("border-start-start-radius")}}, {{cssxref("border-start-end-radius")}}, {{cssxref("border-end-start-radius")}}, and {{cssxref("border-end-end-radius")}} ({{bug(1520684)}}).</li>
</ul>
</li>
<li>We implemented the {{cssxref("@media/overflow-inline", "overflow-inline")}} and {{cssxref("@media/overflow-block", "overflow-block")}} media queries ({{Bug(1422235)}}).</li>
<li>{{cssxref("grid-template-columns")}} and {{cssxref("grid-template-rows")}} are now animatable, as per the rules set out in their specs ({{bug(1348519)}}).</li>
<li>We now support {{cssxref("calc")}} with percentages for table cells and column widths ({{bug(957915)}}).</li>
<li>The <code>min-content</code> and <code>max-content</code> keywords are now available unprefixed ({{bug(1322780)}}). These can be set on:
<ul>
<li>{{cssxref("width")}}</li>
<li>{{cssxref("height")}}</li>
<li>{{cssxref("flex-basis")}}</li>
<li>{{cssxref("min-width")}}</li>
<li>{{cssxref("max-width")}}</li>
<li>{{cssxref("min-height")}}</li>
<li>{{cssxref("max-height")}}</li>
<li>{{cssxref("min-block-size")}}</li>
<li>{{cssxref("min-inline-size")}}</li>
<li>{{cssxref("max-block-size")}}</li>
<li>{{cssxref("max-inline-size")}}</li>
<li>{{cssxref("block-size")}}</li>
<li>{{cssxref("inline-size")}}</li>
</ul>
</li>
</ul>
<h3 id="SVG">SVG</h3>
<p><em>No additions.</em></p>
<h4 id="Removals_2">Removals</h4>
<ul>
<li>We removed support for the <code><a href="/en-US/docs/XML_introduction/xml:base">xml:base</a></code> attribute ({{Bug(903372)}}).</li>
</ul>
<h3 id="JavaScript">JavaScript</h3>
<p>No changes.</p>
<h3 id="APIs">APIs</h3>
<h4 id="New_APIschanges">New APIs/changes</h4>
<ul>
<li>Autoplaying audio will be blocked by default soon after 66 becomes the release version of Firefox ({{bug(1487844)}}, see {{bug(1535667)}} for rollout details). The feature will be rolled out gradually to users until everyone has it.</li>
</ul>
<h4 id="DOM">DOM</h4>
<ul>
<li>The {{domxref("HTMLSlotElement.assignedElements()")}} method has been implemented ({{bug(1425685)}}).</li>
<li>The {{domxref("TextEncoder.encodeInto()")}} method has been implemented ({{bug(1514664)}}).</li>
</ul>
<h4 id="DOM_events">DOM events</h4>
<ul>
<li>The {{domxref("InputEvent.inputType")}} property has been implemented ({{bug(1447239)}}).</li>
<li>The {{domxref("Window.event")}} and {{domxref("Event.returnValue")}} properties — originally proprietary IE features, then also supported across other browsers for compatibility purposes — have been re-introduced in Firefox 66, after first being added in versions 63 and 64 respectively but then removed again due to compatibility issues. </li>
<li>From 66 onwards, when the {{domxref("KeyboardEvent.keyCode")}} property of the {{event("keypress")}} event object is 0, the value will be the same as {{domxref("KeyboardEvent.charCode")}}. Conversely, when <code>charCode</code> is 0, it will be the same as <code>keyCode</code>. This mirroring behavior matches other browsers and is expected to solve most associated compatibility issues, however user agent sniffing might cause further issues in some JavaScript libraries. Note that in spec terms, we've switched from the <em>split model</em> to the <em>conflated model</em> (see <a href="https://w3c.github.io/uievents/#determine-keypress-keyCode">How to determine keyCode for keypress events</a> in the UI Event spec).</li>
</ul>
<h4 id="Media_Web_Audio_and_WebRTC">Media, Web Audio, and WebRTC</h4>
<ul>
<li>The {{domxref("MediaDevices")}} method {{domxref("MediaDevices.getDisplayMedia", "getDisplayMedia()")}}, available as <code>navigator.mediaDevices.getDisplayMedia()</code>, has been added and synchronized with the specification. This method lets you capture a screen or part of a screen as a {{domxref("MediaStream")}} for manipulation or sharing ({{bug(1321221)}}).</li>
<li>As a step toward eventually deprecating the Firefox-specific {{domxref("MediaDevices.getUserMedia", "getUserMedia()")}}-based method for capturing screen and window contents, the non-standard <code>mediaSource</code> constraint now treats the values <code>screen</code> and <code>window</code> identically. Both now present a list of both screens and windows for the user to choose from ({{bug(1474376)}}).</li>
<li>{{domxref("RTCRtpStreamStats.qpSum", "qpSum")}} has been added to local outbound {{domxref("RTCRTPStreamStats")}} objects. This measures the total of the Quantization Parameter values for every frame sent or received on the video track. The higher this number, the more compressed the stream probably is ({{bug(1347070)}}).</li>
<li>In a step along the road toward implementing support for Feature Policy in a future Firefox update, {{domxref("MediaDevices.getUserMedia", "getUserMedia()")}} can no longer be used in situations in which there is no proper origin for the content, such as when called from a sandboxed {{HTMLElement("iframe")}} or from a <code>data</code> URL entered into the address bar by the user. For more specifics and details, see {{SectionOnPage("/en-US/docs/Web/API/MediaDevices/getUserMedia", "Security")}} ({{bug(1371741)}}).</li>
</ul>
<h4 id="Removals_3">Removals</h4>
<ul>
<li>The legacy WebRTC {{domxref("PeerConnection.getStats()")}} method has been removed, along with associated types ({{bug(1328194)}}).</li>
</ul>
<h3 id="Networking">Networking</h3>
<ul>
<li>The default value of the {{httpheader("Accept")}} header has been changed to <code>*/*</code> ({{bug(1417463)}}).</li>
</ul>
<h3 id="Security">Security</h3>
<p><em>No changes.</em></p>
<h3 id="Plugins">Plugins</h3>
<p><em>No changes.</em></p>
<h2 id="Changes_for_add-on_developers">Changes for add-on developers</h2>
<h3 id="API_changes">API changes</h3>
<h4 id="Menus">Menus</h4>
<ul>
<li>Extension menu items of the "bookmark" {{WebExtAPIRef("menus.ContextType", "type")}} will also appear in the Bookmarks sidebar (<kbd>Ctrl</kbd> + <kbd>B</kbd>) and Library window (<kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>B</kbd>) ({{bug(1419195)}}).</li>
</ul>
<h3 id="Manifest_changes">Manifest changes</h3>
<p><em>No changes.</em></p>
<h2 id="See_also">See also</h2>
<ul>
<li><a href="https://www.fxsitecompat.com/en-CA/versions/66/">Site compatibility for Firefox 66</a></li>
</ul>
<h2 id="Older_versions">Older versions</h2>
<p>{{Firefox_for_developers(65)}}</p>
|