Closed
Bug 713680
Opened 13 years ago
Closed 3 years ago
Use Consolas as the default monospace font on Windows
Categories
(Core :: Layout: Text and Fonts, enhancement, P3)
Tracking
()
RESOLVED
DUPLICATE
of bug 1607913
People
(Reporter: dao, Unassigned)
References
Details
(Keywords: parity-edge, Whiteboard: [qx])
Attachments
(3 files, 2 obsolete files)
No description provided.
Attachment #584454 -
Flags: review?(roc)
Does this involve XP if Consolas is installed?
Keywords: dev-doc-needed
Reporter | ||
Comment 2•13 years ago
|
||
(In reply to j.j. from comment #1)
> Does this involve XP if Consolas is installed?
Yes.
What needs to be documented here?
Is it ok to put a list of names in the font.name.* preferences (as opposed to the font.name-list.* preferences)?
Comment 4•13 years ago
|
||
Unless you force ClearType on for Consolas, I'd recommend against this. Consolas looks terrible without ClearType.
Reporter | ||
Comment 5•13 years ago
|
||
(In reply to David Baron [:dbaron] from comment #3)
> Is it ok to put a list of names in the font.name.* preferences (as opposed
> to the font.name-list.* preferences)?
I haven't looked at the code, but the Courier New fallback appears to work fine.
(In reply to Siddharth Agarwal [:sid0] from comment #4)
> Unless you force ClearType on for Consolas, I'd recommend against this.
> Consolas looks terrible without ClearType.
It's on by default on Windows Vista and 7 and Consolas doesn't exist by default on XP, so I'm not too worried about this. I don't know what it would take to force ClearType on for Consolas, but it sounds like this would be a good followup bug.
Comment 6•13 years ago
|
||
(In reply to Dão Gottwald [:dao] from comment #5)
> Consolas doesn't exist by
> default on XP
Everyone who installs Microsoft Office 2007 or above, or one of the free Office viewers, gets Consolas. That is going to be a sizable number of people. Expect plenty of gnashing and/or bugs filed.
What I'd recommend instead is something like bug 465633, where you only switch to Consolas if you're on Vista/7. (Disclosure: I wrote that code.)
Reporter | ||
Comment 7•13 years ago
|
||
(In reply to Siddharth Agarwal [:sid0] from comment #6)
> (In reply to Dão Gottwald [:dao] from comment #5)
> > Consolas doesn't exist by default on XP
>
> Everyone who installs Microsoft Office 2007 or above, or one of the free
> Office viewers, gets Consolas. That is going to be a sizable number of
> people. Expect plenty of gnashing and/or bugs filed.
The prospect of bugs being filed doesn't scare me. ;) I'd be more interested in estimations as to how many users are going to be affected.
> What I'd recommend instead is something like bug 465633, where you only
> switch to Consolas if you're on Vista/7. (Disclosure: I wrote that code.)
If core developers want something like that, I'm all ears. It surely doesn't look like it belongs in front-end code and forcing ClearType on for Consolas sounds like a cleaner solution to me.
Note that the aliased rendering is already a problem in places that hard-code Consolas, such as our own devtools stylesheets: http://mxr.mozilla.org/mozilla-central/search?string=consolas&find=devtools
Attachment #584454 -
Flags: review?(roc) → review?(jfkthame)
Comment 8•13 years ago
|
||
(In reply to Dão Gottwald [:dao] from comment #7)
> If core developers want something like that, I'm all ears. It surely doesn't
> look like it belongs in front-end code and forcing ClearType on for Consolas
> sounds like a cleaner solution to me.
Definitely; I don't disagree that it's a hack. I do think that the outcome's going to be better if you don't do that though.
>
> Note that the aliased rendering is already a problem in places that
> hard-code Consolas, such as our own devtools stylesheets:
> http://mxr.mozilla.org/mozilla-central/search?string=consolas&find=devtools
I think that's a bug, though, and should just be monospace.
Reporter | ||
Comment 9•13 years ago
|
||
(In reply to Siddharth Agarwal [:sid0] from comment #8)
> (In reply to Dão Gottwald [:dao] from comment #7)
> > Note that the aliased rendering is already a problem in places that
> > hard-code Consolas, such as our own devtools stylesheets:
> > http://mxr.mozilla.org/mozilla-central/search?string=consolas&find=devtools
>
> I think that's a bug, though, and should just be monospace.
That's why this one blocks bug 706047.
Comment 10•13 years ago
|
||
(In reply to Siddharth Agarwal [:sid0] from comment #8)
> Definitely; I don't disagree that it's a hack. I do think that the outcome's
> going to be better if you don't do that though.
Er, I mean "going to be better THAN if you don't do that". The best way is definitely to force ClearType on for Consolas. The second-best way is to make this dependent on the OS ClearType setting.
Comment 11•13 years ago
|
||
> What needs to be documented here?
Web developers should know that default appearance of monospaced elements like <pre>, <code>, <tt> etc. and CSS "font-family:monospace" changes.
Worth a note in
https://developer.mozilla.org/en/Firefox_12_for_developers
Comment 12•13 years ago
|
||
(In reply to Dão Gottwald [:dao] from comment #7)
> The prospect of bugs being filed doesn't scare me. ;)
This is unacceptable misbehaviour against people who care about and take time to file bugs as well as people who care and take time to track bugs.
Reporter | ||
Comment 13•13 years ago
|
||
(In reply to j.j. from comment #11)
> > What needs to be documented here?
>
> Web developers should know that default appearance of monospaced elements
> like <pre>, <code>, <tt> etc. and CSS "font-family:monospace" changes.
> Worth a note in
> https://developer.mozilla.org/en/Firefox_12_for_developers
This would make sense if we ever set the expectation or guaranteed that Courier New was the default font. But it's already OS- and language-dependent and user configurable.
(In reply to j.j. from comment #12)
> (In reply to Dão Gottwald [:dao] from comment #7)
> > The prospect of bugs being filed doesn't scare me. ;)
>
> This is unacceptable misbehaviour against people who care about and take
> time to file bugs as well as people who care and take time to track bugs.
No, it's not, unless you're saying I'm expected to be scared.
Comment 14•13 years ago
|
||
> This would make sense if we ever set the expectation or guaranteed that
> Courier New was the default font. But it's already OS- and language-dependent
> and user configurable.
A large subset of web developer has wrong expectations an only works on Windows with default font settings.
It's not a big deal but there is nothing wrong to inform them that the default font changes the first time since 1994.
Reporter | ||
Comment 15•13 years ago
|
||
(In reply to j.j. from comment #14)
> > This would make sense if we ever set the expectation or guaranteed that
> > Courier New was the default font. But it's already OS- and language-dependent
> > and user configurable.
>
> A large subset of web developer has wrong expectations an only works on
> Windows with default font settings.
> It's not a big deal but there is nothing wrong to inform them that the
> default font changes the first time since 1994.
There's a risk of setting a wrong expectation here by saying Consolas would be the new default font, while it remains OS- and language-dependent and user configurable. So whoever documents this needs to word things very carefully, otherwise it's better not to document anything.
Comment 16•13 years ago
|
||
Comment on attachment 584454 [details] [diff] [review]
patch
While I don't have an issue with changing the default to Consolas for Vista and later systems, I'm a little more hesitant about imposing this change on XP, where it wasn't a standard system font, and where it's perhaps more likely that there are significant numbers of users who run without ClearType, or indeed without any antialiasing. So I'm not entirely happy with making the change for all Windows users, rather than having a version-dependent default.
(And I'd be opposed to unilaterally forcing ClearType on for Consolas.)
More importantly, though, assuming we do want to make the change, this is the wrong way to do it. The font.name.* prefs were designed to take a single font name; the fact that putting a list of fonts in there happens to work for "fallback" is an accident of the current implementation, IMO - it could even be considered a bug - and probably not something we should rely on.
But the real show-stopper here is that these prefs are exposed in the Firefox UI, and that UI doesn't have the capability to either display or set a list of fonts, rather than a single name. Therefore, doing things this way would mean that (a) users will see an incorrect value if they try to look at their font preferences throguh the browser UI; and (b) if they make any change there, they would be unable to restore the original setting via that same UI. I don't think that's acceptable.
Attachment #584454 -
Flags: review?(jfkthame) → review-
Reporter | ||
Updated•13 years ago
|
Assignee: dao → nobody
Comment 17•13 years ago
|
||
Woudn't be "Lucida Console" better anyhow? It contains more characters.
A quick incomplete list of code points included in WGL4 and Lucida Console, but not in Consolas:
203e ‾ overline
207f ⁿ superscript n
2320 ⌠ integral
2321 ⌡ integral
2500-256c (complete box-drawing?)
─│┌┐└┘├┤┬┴┼═║╒╓╔╕╖╗╘╙╚╛╜╝╞╟╠╡╢╣╤╥╦╧╨╩╪╫╬
2580-2593 (some of block elements)
▀▄█▌▐░▒▓
25a0-25e6 (some of geometric shapes)
■▬▲►▼◄◊○◘◙
Comment 18•13 years ago
|
||
All those work fine for me. (Unless some sort magic fallback is happening?)
What version of Consolas are you using? I have 5.22 - Windows 7 SP1 + Office 2010 SP1.
Comment 19•13 years ago
|
||
> All those work fine for me. (Unless some sort magic fallback is happening?)
To avoid fallback I tested with BableMap
http://www.babelstone.co.uk/Software/BabelMap.html
> What version of Consolas are you using? I have 5.22 - Windows 7 SP1 + Office
> 2010 SP1.
Hmm, it's version 1.00. Microsoft provides a download until today here:
http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=17879
Seems v5.22 from Windows 7 has much more glyphs than 5.0, which shipped with Vista
http://www.microsoft.com/typography/fonts/font.aspx?FMID=1723
Comment 20•11 years ago
|
||
Here it is again.
If Consolas is not present on the user's system, they will get Courier New.
The issue of Consolas looking bad without antialiasing is really a separate bug, and should be looked at regardless of what happens here.
Assignee: nobody → at.light
Attachment #584454 -
Attachment is obsolete: true
Attachment #8351680 -
Flags: review?(dbaron)
Comment on attachment 8351680 [details] [diff] [review]
Patch
Sorry, should have transferred this request sooner.
Attachment #8351680 -
Flags: review?(dbaron) → review?(jfkthame)
Comment 22•11 years ago
|
||
Comment on attachment 8351680 [details] [diff] [review]
Patch
Review of attachment 8351680 [details] [diff] [review]:
-----------------------------------------------------------------
I'm still concerned about the impact on users who have ClearType (or indeed -all- font smoothing) disabled, given the claims here that Consolas looks terrible in that scenario. I just tried it on an XP VM here, and agree that it's a pretty bad visual regression on such a configuration.
We still have lots of users on XP; I don't have any actual data, but I think it's a fair guess that many (the majority?) of them will not have tweaked any system settings so as to enable CT, and also that many of them have a version of Consolas installed (thanks to MS Office or other products that bundled it). They may never actually -use- that Consolas font themselves, e.g. in their Word docs, but this patch will nevertheless make it suddenly appear on lots of web sites.
(I'm less bothered about the Vista-or-later users who have deliberately disabled ClearType; if they feel strongly enough about font rendering to change the system's default settings, they can also reconfigure their default fonts as desired.)
This bug was originally filed as "Use Consolas ... on Windows Vista & 7", but the patch will negatively affect many XP users. As such, I don't think I can r+ this as it stands.
A few possibilities we could consider:
(a) A migration script that updates the default font prefs for users on Vista and later, but not on XP, as suggested in comment 6.
(b) Rather than Consolas, consider Lucida Console, which I believe is available on XP as well, and which renders much better (IMO) than Consolas on non-ClearType systems. I haven't compared it under CT on newer Windows versions, though; perhaps it's inferior there.
(c) Implement a platform-specific function to get the system's default monospaced font, and use this to resolve the CSS generic "monospace" value. For Windows GDI, this would probably be based on GetStockObject(ANSI_FIXED_FONT), I guess. But this would involve core code changes, and I haven't really thought about how it'd interact with the font prefs UI.
I haven't seen any compelling argument that there's an urgent need to update the defaults here. In the absence of a better solution, perhaps this should just wait until we have dropped XP support altogether.
Attachment #8351680 -
Flags: review?(jfkthame) → review-
Comment 23•11 years ago
|
||
(In reply to Jonathan Kew (:jfkthame) from comment #22)
> A few possibilities we could consider:
>
> (a) A migration script that updates the default font prefs for users on
> Vista and later, but not on XP, as suggested in comment 6.
>
> (b) Rather than Consolas, consider Lucida Console, which I believe is
> available on XP as well,
sure, it is
> and which renders much better (IMO) than Consolas
> on non-ClearType systems. I haven't compared it under CT on newer Windows
> versions, though; perhaps it's inferior there.
>
> (c) Implement a platform-specific function to get the system's default
> monospaced font, and use this to resolve the CSS generic "monospace" value.
> For Windows GDI, this would probably be based on
> GetStockObject(ANSI_FIXED_FONT), I guess. But this would involve core code
> changes, and I haven't really thought about how it'd interact with the font
> prefs UI.
>
Can't we keep it just simple and use Lucida Console on XP and Consolas on later systems?
(See also comment 17, lack of some glyphs in early versions of Consolas)
Comment 24•11 years ago
|
||
(In reply to j.j. (mostly inactive) from comment #23)
> Can't we keep it just simple and use Lucida Console on XP and Consolas on
> later systems?
And how would we do that? Currently, the code implementing the font prefs doesn't distinguish between versions of Windows.
Comment 25•11 years ago
|
||
> In the absence of a better solution, perhaps this should just wait until we have dropped XP support altogether.
Is there a meta bug for this?
Comment 26•10 years ago
|
||
We still have >14% users on XP even though Microsoft has dropped support a while ago. Since it doesn't seem to be going anywhere, we should just move to Consolas by default for Windows Vista and up. Is it possible to make that distinction in the code?
Whiteboard: [qx]
Updated•9 years ago
|
Priority: -- → P3
Updated•9 years ago
|
Updated•8 years ago
|
Comment 27•8 years ago
|
||
Jonathan, what do you think of the following worse-is-better suggestion?
Use Lucida Console on 32-bit Firefox and Consolas on 64-bit Firefox. Of course, 64-bit has nothing to do with font support, but we only support 64-bit on Windows 7+ and we can conveniently check #ifdef _WIN64 at compile-time (thus avoid run-time checks for OS version to rewrite the monospace prefs). Thus we would use Lucida Console on XP, Vista, and 32-bit Windows 7+ and Consolas for 64-bit Windows 7+.
I assume using Consolas for some users is better than for none. Once XP support is dropped (bug 1130266), we can use Consolas for Windows versions.
Flags: needinfo?(jfkthame)
OS: Windows 7 → Windows
Comment 28•8 years ago
|
||
Well... it'd be possible, but I'm hesitant. That would give us a situation where Win7/8/10 users get a different configuration depending which build they happen to have installed -- and I suspect that a large proportion of users would be unaware of the issue. It sounds like a potential support nightmare...
It's one thing if users on WinXP and users on Win7+ see pages somewhat differently; I think most people understand that they're different systems, and the entire UI looks different in all sorts of ways. But if someone has two machines, both running Win10, and both running up-to-date Firefox, yet they render pages differently, that'll be much more confusing.
If we want to do something here (prior to dropping XP support altogether), I think a better way forward would be to add something to the profile-migration code. IIRC, we have the ability to run custom code as a one-time operation when updating the profile for a new Firefox release. At that point, we could check whether the user is on a Windows version where we want to make this change, and if so, iterate over the monospace font prefs making the update. The only case where this would have a bad result is if the user then takes such a profile back to use on a WinXP system (with Consolas installed, and ClearType turned off), but that seems pretty far-fetched.
Flags: needinfo?(jfkthame)
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment 31•8 years ago
|
||
As of Firefox 53, we no longer support Windows XP or Vista.
Here is a mostly green Try run. The failures on Linux and Mac are not related.
https://treeherder.mozilla.org/#/jobs?repo=try&revision=787d53d6fcc0c3bd8c87992cc27c101124ee9363
Assignee: at.light → cpeterson
status-firefox51:
--- → wontfix
status-firefox52:
--- → wontfix
status-firefox53:
--- → wontfix
status-firefox54:
--- → affected
Comment 32•8 years ago
|
||
For reference, here are the reftest images from the reftest that needed fuzz to accommodate the pixel differences when changing Windows' default monospace font from Courier New to Consolas:
REFTEST TEST-UNEXPECTED-FAIL | file:///C:/slave/test/build/tests/reftest/tests/layout/reftests/forms/input/text/size-1.html == file:///C:/slave/test/build/tests/reftest/tests/layout/reftests/forms/input/text/size-1-ref.html | image comparison, max difference: 24, number of differing pixels: 1
REFTEST IMAGE 1 (TEST):
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAPoCAYAAAAmy5qxAAAV2klEQVR4nO3dMW7bSABAUd6SR+JRWCy2ShmkSaNDbOHAASIoMLAuDKScLZzEsazYjmF/Adz3ADYaDUWw+xgONQ0AAIDIdO4LAAAA/j8ECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABA5skAufh0Od5/+Dj++vvdWY73Hz6Oi0+Xxb0AAADe2JMBcvn56zhcXRfXctLh6nr8c/HlbL8PAAC8nmcFyLkJEAAA2AYBAgAAZAQIAACQESAAAEBGgAAAAJkXBMh+rPM0pmkay+54aB3zdDs2TfNY93dDu+XH5w/H7qbPJ88rQAAAYBv+MEB2Y5nmse5vI+R+KOzHOi/jx0f7dR7TvI4TnXF6bLeMaV7G8uC8AgQAALbihY9gnQqQI7tlTNNdkNybvc5jujf5sbARIAAAsBVvFiCnI+P7I1hHqx+7ZRrzuv/teQUIAABsw9sEyCOrHw/Gd8svoSJAAABgy149QG43kj8SH2OM40eu7jan/3LM689vCxAAANiGVw2Q58XH+L7h/NQGdSsgAACwZS94C9bD1YplN45ewXs0djzvN2/HEiAAALBt/ogQAADICBAAACAjQAAAgIwAAQAAMs8KkMPVdXEtJx2urgUIAABsxJMBcnPzbXw+/HvW4+bmW3EvAACAN/ZkgAAAALwWAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkBEgAABARoAAAAAZAQIAAGQECAAAkPkPcycaOQaH0nUAAAAASUVORK5CYII=
REFTEST IMAGE 2 (REFERENCE):
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAPoCAYAAAAmy5qxAAAV2ElEQVR4nO3dsWrcSACAYb2lHkmPouJIlTKkSbMPkcLBgVv2MJwLQ8pJ4QTb643tM/a/oPs+UKNhtELdz2i00wAAAIhM574BAADg/0OAAAAAGQECAABkBAgAAJARIAAAQEaAAAAAGQECAABkng2Qi2+X49PnL+OvDx/Pcnz6/GVcfLssngUAAPDOng2Qy+//jMPVdXEvJx2ursfXi7/P9vsAAMDbeVGAnJsAAQCAbRAgAABARoAAAAAZAQIAAGQECAAAkHlFgOzHOk9jmqax7I6H1jFPt2PTNI91fze0W36ffzx2N30+eV0BAgAA2/AfA2Q3lmke6/42Qh6Gwn6s8zJ+n9qv85jmdZzojNNju2VM8zKWR9cVIAAAsBWvfAXrVIAc2S1jmu6C5MHsdR7Tg8lPhY0AAQCArXi3ADkdGb9ewTpa/dgt05jX/R+vK0AAAGAb3idAnlj9eDS+W+6FigABAIAte/MAud1I/kR8jDGOX7m625x+77i3SiJAAABgG940QF4WH+PXhvNTG9StgAAAwJa94itYj1crlt04+gTv0djxvD98HUuAAADAtvkjQgAAICNAAACAjAABAAAyAgQAAMi8KEAOV9fFvZx0uLoWIAAAsBHPBsjNzY/x/fDvWY+bmx/FswAAAN7ZswECAADwVgQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEBGgAAAABkBAgAAZAQIAACQESAAAEDmJ3KsGiGrC/zDAAAAAElFTkSuQmCC
Comment 33•8 years ago
|
||
mozreview-review |
Comment on attachment 8840302 [details]
Bug 713680 - Part 2: Fix editor tests to accommodate narrower Consolas monospace font.
https://reviewboard.mozilla.org/r/114804/#review116264
I hope that this patch does not change any meaning of the tests, though (especially test_continuous_wheel_events.html).
I wonder, specifying font-family might be safer than this patch, but fine if you like this better.
Attachment #8840302 -
Flags: review?(masayuki) → review+
Comment 34•8 years ago
|
||
(In reply to Masayuki Nakano [:masayuki] from comment #33)
> I hope that this patch does not change any meaning of the tests, though
> (especially test_continuous_wheel_events.html).
I don't think it does. I just changed the horizontal scroll increment for these test cases. I wasn't able to fix these test cases by setting line-height, as you suggested in email a few months ago, because the particular test cases only fail for horizontal scrolling.
The queryCaretRectWin.html and selectAtPoint.html test changes removed special case code where Windows previously had different expected results than Mac and Linux.
> I wonder, specifying font-family might be safer than this patch, but fine if
> you like this better.
Specifying font-family how? If you prefer a different approach than what I have proposed here, please just let me know.
Comment 35•8 years ago
|
||
(In reply to Chris Peterson [:cpeterson] from comment #34)
> (In reply to Masayuki Nakano [:masayuki] from comment #33)
> > I wonder, specifying font-family might be safer than this patch, but fine if
> > you like this better.
>
> Specifying font-family how? If you prefer a different approach than what I
> have proposed here, please just let me know.
Cannot specify the old font ("Courier New"?) instead of "monospace"?
Comment 36•8 years ago
|
||
(In reply to Masayuki Nakano [:masayuki] from comment #35)
> (In reply to Chris Peterson [:cpeterson] from comment #34)
> > (In reply to Masayuki Nakano [:masayuki] from comment #33)
> > > I wonder, specifying font-family might be safer than this patch, but fine if
> > > you like this better.
> >
> > Specifying font-family how? If you prefer a different approach than what I
> > have proposed here, please just let me know.
>
> Cannot specify the old font ("Courier New"?) instead of "monospace"?
I see what you mean. I'll test specifying "Courier New", though I don't know whether a font with that name exists on Mac and Linux or has the same font metrics as on Windows.
Comment 37•8 years ago
|
||
FWIW, "Courier New" should be present on Mac OS, though we may have been using "Courier" previously so it's possible the change will affect tests in some way. (Character widths will match, I think, but font ascent/descent may not, so line height could change.)
On Linux, "Courier New" won't usually be present, but I'd expect fontconfig to alias it to the system's default monospace font on most configurations.
Comment 38•8 years ago
|
||
mozreview-review |
Comment on attachment 8840301 [details]
Bug 713680 - Change default Windows monospace font from Courier New to Consolas.
https://reviewboard.mozilla.org/r/114802/#review116320
I guess this should be fine, in principle. I'm a little nervous because the change in metrics could lead to layout changes that may catch people by surprise (e.g. a text area with a size specified in characters becomes narrower, affecting placement of other elements), but given that things like that have never been consistent across browsers and platforms anyway, it's probably not too big a risk.
Attachment #8840301 -
Flags: review?(jfkthame) → review+
Comment 39•8 years ago
|
||
(In reply to Jonathan Kew (:jfkthame) from comment #38)
> I guess this should be fine, in principle. I'm a little nervous because the
> change in metrics could lead to layout changes that may catch people by
> surprise (e.g. a text area with a size specified in characters becomes
> narrower, affecting placement of other elements), but given that things like
> that have never been consistent across browsers and platforms anyway, it's
> probably not too big a risk.
The Nightly 55 dev cycle begins in a little over one week. I can wait until Nightly 55 begins to land this change so we have a full six weeks of Nightly 'bake time' instead of riding from Nightly 54 to Aurora after just one week.
Kohei, can you please announce this change on fxsitecompat.com after I land this change in 55? Thank you!
I will also request a release note for 55.
Flags: needinfo?(kohei.yoshino)
Comment 40•8 years ago
|
||
Release Note Request (optional, but appreciated)
[Why is this notable]: Firefox 55 will change our default monospace font on Windows from the venerable "Courier New" to the nicer-looking "Consolas".
[Affects Firefox for Android]: No. This change only affects Windows.
[Suggested wording]: Changed default monospace font on Windows from "Courier New" to "Consolas".
[Links (documentation, blog post, etc)]: Nothing to link other than this bug.
relnote-firefox:
--- → ?
Comment 41•8 years ago
|
||
(In reply to Chris Peterson [:cpeterson] from comment #39)
> Kohei, can you please announce this change on fxsitecompat.com after I land
> this change in 55? Thank you!
Sure thing.
Comment hidden (mozreview-request) |
Updated•8 years ago
|
Attachment #8840302 -
Attachment is obsolete: true
Comment 43•8 years ago
|
||
mozreview-review |
Comment on attachment 8840301 [details]
Bug 713680 - Change default Windows monospace font from Courier New to Consolas.
https://reviewboard.mozilla.org/r/114802/#review116686
Attachment #8840301 -
Flags: review?(masayuki) → review+
Updated•8 years ago
|
Flags: needinfo?(kohei.yoshino)
Comment 44•8 years ago
|
||
Pushed by cpeterson@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/da035ac87fe4
Change default Windows monospace font from Courier New to Consolas. r=jfkthame r=masayuki
Comment 45•8 years ago
|
||
backed this out for reftest failures like https://treeherder.mozilla.org/logviewer.html#?job_id=82088840&repo=mozilla-inbound&lineNumber=47296 and https://treeherder.mozilla.org/logviewer.html#?job_id=82088659&repo=mozilla-inbound&lineNumber=21988
Flags: needinfo?(cpeterson)
Comment 46•8 years ago
|
||
Backout by ihsiao@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/f50437ed4599
Backed out changeset da035ac87fe4 for reftest failures
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment 49•8 years ago
|
||
Here are links to the reftest analyzers showing the differences on Windows 7 VM without GPU:
1. For test layout/reftests/bidi/brackets-3b-rtl.html, there is a subpixel alignment difference in one of the Arabic characters:
https://hg.mozilla.org/mozilla-central/raw-file/tip/layout/tools/reftest/reftest-analyzer.xhtml#logurl=https://archive.mozilla.org/pub/firefox/try-builds/cpeterson@mozilla.com-454605bcafd18a74067a0a975c154377d8e839b0/try-win64/try_win8_64_test-reftest-no-accel-bm110-tests1-windows-build5.txt.gz&only_show_unexpected=1
2. For test layout/reftests/css-break/box-decoration-break-with-outset-box-shadow-1.html, there are some tiny differences in two of the rounded rectangles' curves:
https://hg.mozilla.org/mozilla-central/raw-file/tip/layout/tools/reftest/reftest-analyzer.xhtml#logurl=https://archive.mozilla.org/pub/firefox/try-builds/cpeterson@mozilla.com-20caef0e840bb75fccbd5e59a86bc17193741dd0/try-win64-debug/try_win8_64-debug_test-reftest-e10s-1-bm112-tests1-windows-build65.txt.gz&only_show_unexpected=1
3. For test layout/reftests/forms/input/text/size-1.html, the test image has monochromatic text, but reference image has blue/red artifacts from ClearText anti-aliasing:
https://hg.mozilla.org/mozilla-central/raw-file/tip/layout/tools/reftest/reftest-analyzer.xhtml#logurl=https://archive.mozilla.org/pub/firefox/try-builds/cpeterson@mozilla.com-454605bcafd18a74067a0a975c154377d8e839b0/try-win32/try_win7_vm_gfx_test-reftest-gpu-e10s-bm139-tests1-windows-build225.txt.gz&only_show_unexpected=1
Flags: needinfo?(cpeterson)
Comment 50•8 years ago
|
||
mozreview-review |
Comment on attachment 8851195 [details]
Bug 713680 - Part 2: Add fuzz to some layout reftests to accommodate subpixel differences from ClearText anti-aliasing on Windows 7 VM without GPU.
https://reviewboard.mozilla.org/r/123566/#review126174
Although, why you requested to review to me.
Attachment #8851195 -
Flags: review?(masayuki) → review+
Comment 51•8 years ago
|
||
Thanks. I had requested your review for these test patches because you had reviewed part of the original Consolas patch. And you had a shorter review queue than jfkthame. :)
status-firefox55:
--- → affected
Comment 52•8 years ago
|
||
Pushed by cpeterson@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/e4ecf720b3a1
Change default Windows monospace font from Courier New to Consolas. r=jfkthame r=masayuki
Comment 53•8 years ago
|
||
bugherder |
Status: ASSIGNED → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla55
Comment 54•8 years ago
|
||
Backed out for crashing in dom/tests/mochitest/chrome/test_xray_event_constructor.xul on Windows 7 debug:
https://hg.mozilla.org/integration/mozilla-inbound/rev/389ff5662e9ce4a1b91bb815326773c020fb41ea
Push with failure: https://treeherder.mozilla.org/#/jobs?repo=mozilla-inbound&revision=e4ecf720b3a1cad1629a7552a559bdb0eed64650&filter-resultStatus=testfailed&filter-resultStatus=busted&filter-resultStatus=exception&filter-resultStatus=retry&filter-resultStatus=usercancel&filter-resultStatus=runnable&filter-resultStatus=success&filter-searchStr=windows+debug+M(c2)
Failure log: https://treeherder.mozilla.org/logviewer.html#?job_id=87191113&repo=mozilla-inbound
23:55:45 INFO - GECKO(792) | Assertion failure: IsIdle(oldState), at c:\builds\moz2_slave\m-in-w32-d-0000000000000000000\build\src\xpcom\ds\PLDHashTable.h:132
23:55:45 INFO - GECKO(792) | #01: ???[C:\slave\test\build\application\firefox\xul.dll +0x48fd80]
23:55:45 INFO - GECKO(792) | #02: PrintJSStack[C:\slave\test\build\application\firefox\xul.dll +0xee3444]
23:55:45 INFO - GECKO(792) | #03: PrintJSStack[C:\slave\test\build\application\firefox\xul.dll +0xe947ce]
23:55:45 INFO - GECKO(792) | #04: PrintJSStack[C:\slave\test\build\application\firefox\xul.dll +0xe94826]
23:55:45 INFO - GECKO(792) | #05: PrintJSStack[C:\slave\test\build\application\firefox\xul.dll +0xedf85c]
23:55:45 INFO - GECKO(792) | #06: PrintJSStack[C:\slave\test\build\application\firefox\xul.dll +0xecfb98]
23:55:45 INFO - GECKO(792) | #07: ???[C:\slave\test\build\application\firefox\xul.dll +0x493d29]
23:55:45 INFO - GECKO(792) | #08: ???[C:\slave\test\build\application\firefox\xul.dll +0x493e1f]
23:55:45 INFO - GECKO(792) | #09: workerlz4_maxCompressedSize[C:\slave\test\build\application\firefox\xul.dll +0x2babac1]
23:55:45 INFO - GECKO(792) | #10: ???[C:\slave\test\build\application\firefox\xul.dll +0x4e4067]
23:55:45 INFO - GECKO(792) | #11: soundtouch::SoundTouch::operator=[C:\slave\test\build\application\firefox\xul.dll +0xc002dc]
23:55:45 INFO - GECKO(792) | #12: soundtouch::SoundTouch::operator=[C:\slave\test\build\application\firefox\xul.dll +0xbf5371]
23:55:45 INFO - GECKO(792) | #13: soundtouch::SoundTouch::operator=[C:\slave\test\build\application\firefox\xul.dll +0xc06559]
23:55:45 INFO - GECKO(792) | #14: XRE_GetBootstrap[C:\slave\test\build\application\firefox\xul.dll +0x32db7c3]
23:55:45 INFO - GECKO(792) | #15: XRE_GetBootstrap[C:\slave\test\build\application\firefox\xul.dll +0x32e1143]
23:55:45 INFO - GECKO(792) | #16: XRE_GetBootstrap[C:\slave\test\build\application\firefox\xul.dll +0x32e0e89]
23:55:45 INFO - GECKO(792) | #17: XRE_GetBootstrap[C:\slave\test\build\application\firefox\xul.dll +0x33e7a44]
23:55:45 INFO - GECKO(792) | #18: ??? (???:???)
23:55:45 INFO - GECKO(792) | #19: ??? (???:???)
23:55:45 INFO - GECKO(792) | #20: ??? (???:???)
23:55:45 INFO - GECKO(792) | #21: XRE_GetBootstrap[C:\slave\test\build\application\firefox\xul.dll +0x33eb6aa]
23:55:45 INFO - GECKO(792) | #22: XRE_GetBootstrap[C:\slave\test\build\application\firefox\xul.dll +0x33ebf0f]
23:55:45 INFO - GECKO(792) | #23: XRE_GetBootstrap[C:\slave\test\build\application\firefox\xul.dll +0x32ec035]
23:55:45 INFO - GECKO(792) | #24: XRE_GetBootstrap[C:\slave\test\build\application\firefox\xul.dll +0x32e11b2]
23:55:45 INFO - GECKO(792) | #25: XRE_GetBootstrap[C:\slave\test\build\application\firefox\xul.dll +0x32e0e89]
23:55:45 INFO - GECKO(792) | #26: XRE_GetBootstrap[C:\slave\test\build\application\firefox\xul.dll +0x32db5a5]
23:55:45 INFO - GECKO(792) | #27: XRE_GetBootstrap[C:\slave\test\build\application\firefox\xul.dll +0x2d7ffa4]
23:55:45 INFO - GECKO(792) | #28: mozilla_dump_image[C:\slave\test\build\application\firefox\xul.dll +0xfaabca]
23:55:45 INFO - GECKO(792) | #29: mozilla_dump_image[C:\slave\test\build\application\firefox\xul.dll +0xfaaefa]
23:55:45 INFO - GECKO(792) | #30: mozilla_dump_image[C:\slave\test\build\application\firefox\xul.dll +0xfaaefa]
23:55:45 INFO - GECKO(792) | #31: mozilla_dump_image[C:\slave\test\build\application\firefox\xul.dll +0xfaaefa]
23:55:45 INFO - GECKO(792) | #32: mozilla_dump_image[C:\slave\test\build\application\firefox\xul.dll +0xfab2c2]
23:55:45 INFO - GECKO(792) | #33: mozilla_dump_image[C:\slave\test\build\application\firefox\xul.dll +0x10bfdff]
23:55:45 INFO - GECKO(792) | #34: mozilla_dump_image[C:\slave\test\build\application\firefox\xul.dll +0x103d002]
23:55:45 INFO - GECKO(792) | #35: ???[C:\slave\test\build\application\firefox\xul.dll +0x4dcab8]
23:55:45 INFO - GECKO(792) | #36: ???[C:\slave\test\build\application\firefox\xul.dll +0x4dc0c1]
23:55:46 INFO - GECKO(792) | #37: soundtouch::SoundTouch::operator=[C:\slave\test\build\application\firefox\xul.dll +0x89b24f]
23:55:46 INFO - GECKO(792) | #38: ???[C:\slave\test\build\application\firefox\xul.dll +0x873c55]
23:55:46 INFO - GECKO(792) | #39: ???[C:\slave\test\build\application\firefox\xul.dll +0x873c0d]
23:55:46 INFO - GECKO(792) | #40: ???[C:\slave\test\build\application\firefox\xul.dll +0x87396c]
23:55:46 INFO - GECKO(792) | #41: mozilla_dump_image[C:\slave\test\build\application\firefox\xul.dll +0x1ea3b1b]
23:55:46 INFO - GECKO(792) | #42: mozilla_dump_image[C:\slave\test\build\application\firefox\xul.dll +0x1ef73d4]
23:55:46 INFO - GECKO(792) | #43: workerlz4_maxCompressedSize[C:\slave\test\build\application\firefox\xul.dll +0x2babd1b]
23:55:46 INFO - GECKO(792) | #44: workerlz4_maxCompressedSize[C:\slave\test\build\application\firefox\xul.dll +0x2c19adc]
23:55:46 INFO - GECKO(792) | #45: workerlz4_maxCompressedSize[C:\slave\test\build\application\firefox\xul.dll +0x2c17d07]
23:55:46 INFO - GECKO(792) | #46: workerlz4_maxCompressedSize[C:\slave\test\build\application\firefox\xul.dll +0x2c177d3]
23:55:46 INFO - GECKO(792) | #47: workerlz4_maxCompressedSize[C:\slave\test\build\application\firefox\xul.dll +0x2c2455f]
23:55:46 INFO - GECKO(792) | #48: ???[C:\slave\test\build\application\firefox\firefox.exe +0x174c]
23:55:46 INFO - GECKO(792) | #49: ???[C:\slave\test\build\application\firefox\firefox.exe +0x13b6]
23:55:46 INFO - GECKO(792) | #50: ???[C:\slave\test\build\application\firefox\firefox.exe +0x1a89]
23:55:46 INFO - GECKO(792) | #51: TargetNtUnmapViewOfSection[C:\slave\test\build\application\firefox\firefox.exe +0x32eb9]
23:55:46 INFO - GECKO(792) | #52: BaseThreadInitThunk[C:\windows\system32\kernel32.dll +0x53c45]
23:55:46 INFO - GECKO(792) | #53: RtlInitializeExceptionChain[C:\windows\SYSTEM32\ntdll.dll +0x637f5]
23:55:46 INFO - GECKO(792) | #54: RtlInitializeExceptionChain[C:\windows\SYSTEM32\ntdll.dll +0x637c8]
23:55:46 INFO - TEST-INFO | Main app process: exit 1
23:55:46 INFO - Buffered messages finished
23:55:46 ERROR - TEST-UNEXPECTED-FAIL | dom/tests/mochitest/chrome/test_xray_event_constructor.xul | application terminated with exit code 1
23:55:46 INFO - runtests.py | Application ran for: 0:00:53.516000
23:55:46 INFO - zombiecheck | Reading PID log: c:\users\cltbld\appdata\local\temp\tmpgbbzwbpidlog
23:55:46 INFO - mozcrash Copy/paste: C:\slave\test\build\win32-minidump_stackwalk.exe c:\users\cltbld\appdata\local\temp\tmpyuejzx.mozrunner\minidumps\4d7e9c85-c9b1-43b1-919d-32d8b10f0911.dmp C:\slave\test\build\symbols
23:55:57 INFO - mozcrash Saved minidump as C:\slave\test\build\blobber_upload_dir\4d7e9c85-c9b1-43b1-919d-32d8b10f0911.dmp
23:55:57 INFO - mozcrash Saved app info as C:\slave\test\build\blobber_upload_dir\4d7e9c85-c9b1-43b1-919d-32d8b10f0911.extra
23:55:57 INFO - PROCESS-CRASH | dom/tests/mochitest/chrome/test_xray_event_constructor.xul | application crashed [@ Checker::StartWriteOp()]
23:55:57 INFO - Crash dump filename: c:\users\cltbld\appdata\local\temp\tmpyuejzx.mozrunner\minidumps\4d7e9c85-c9b1-43b1-919d-32d8b10f0911.dmp
23:55:57 INFO - Operating system: Windows NT
23:55:57 INFO - 6.1.7601 Service Pack 1
23:55:57 INFO - CPU: x86
23:55:57 INFO - GenuineIntel family 6 model 30 stepping 5
23:55:57 INFO - 8 CPUs
23:55:57 INFO -
23:55:57 INFO - GPU: UNKNOWN
23:55:57 INFO -
23:55:57 INFO - Crash reason: EXCEPTION_BREAKPOINT
23:55:57 INFO - Crash address: 0x5e046a3b
23:55:57 INFO - Process uptime: 53 seconds
23:55:57 INFO -
23:55:57 INFO - Thread 0 (crashed)
23:55:57 INFO - 0 xul.dll!Checker::StartWriteOp() [PLDHashTable.h:e4ecf720b3a1 : 130 + 0x18]
23:55:57 INFO - eip = 0x5e046a3b esp = 0x001ddbcc ebp = 0x001ddbe0 ebx = 0x00000001
23:55:57 INFO - esi = 0x00000084 edi = 0x27df9460 eax = 0x00000000 ecx = 0x68f906ef
23:55:57 INFO - edx = 0x00000060 efl = 0x00000206
23:55:57 INFO - Found by: given as instruction pointer in context
23:55:57 INFO - 1 xul.dll!PLDHashTable::Add(void const *,mozilla::fallible_t const &) [PLDHashTable.cpp:e4ecf720b3a1 : 531 + 0xa]
23:55:57 INFO - eip = 0x5e03fddd esp = 0x001ddbd4 ebp = 0x001ddbe0
23:55:57 INFO - Found by: call frame info
23:55:57 INFO - 2 xul.dll!PLDHashTable::Add(void const *) [PLDHashTable.cpp:e4ecf720b3a1 : 591 + 0xf]
23:55:57 INFO - eip = 0x5e03fd80 esp = 0x001ddbe8 ebp = 0x001ddbf8
23:55:57 INFO - Found by: call frame info
23:55:57 INFO - 3 xul.dll!gfxPlatformFontList::FindAndAddFamilies(nsAString const &,nsTArray<gfxFontFamily *> *,gfxFontStyle *,double) [gfxPlatformFontList.cpp:e4ecf720b3a1 : 719 + 0x15]
23:55:57 INFO - eip = 0x5ea93444 esp = 0x001ddc00 ebp = 0x001ddcb4
23:55:57 INFO - Found by: call frame info
23:55:57 INFO - 4 xul.dll!gfxGDIFontList::FindAndAddFamilies(nsAString const &,nsTArray<gfxFontFamily *> *,gfxFontStyle *,double) [gfxGDIFontList.cpp:e4ecf720b3a1 : 890 + 0x20]
23:55:57 INFO - eip = 0x5ea447ce esp = 0x001ddcbc ebp = 0x001ddd84
23:55:57 INFO - Found by: call frame info
23:55:57 INFO - 5 xul.dll!gfxPlatformFontList::FindFamily(nsAString const &,gfxFontStyle *,double) [gfxPlatformFontList.h:e4ecf720b3a1 : 278 + 0x1d]
23:55:57 INFO - eip = 0x5ea44826 esp = 0x001ddd8c ebp = 0x001dddb4
23:55:57 INFO - Found by: call frame info
23:55:57 INFO - 6 xul.dll!gfxPlatformFontList::CleanupLoader() [gfxPlatformFontList.cpp:e4ecf720b3a1 : 1507 + 0x24]
23:55:57 INFO - eip = 0x5ea8f85c esp = 0x001dddbc ebp = 0x001dddfc
23:55:57 INFO - Found by: call frame info
23:55:57 INFO - 7 xul.dll!gfxFontInfoLoader::ShutdownObserver::Observe(nsISupports *,char const *,char16_t const *) [gfxFontInfoLoader.cpp:e4ecf720b3a1 : 125 + 0xb]
23:55:57 INFO - eip = 0x5ea7fb98 esp = 0x001dde04 ebp = 0x001dde04
23:55:57 INFO - Found by: call frame info
23:55:57 INFO - 8 xul.dll!nsObserverList::NotifyObservers(nsISupports *,char const *,char16_t const *) [nsObserverList.cpp:e4ecf720b3a1 : 112 + 0x1a]
23:55:57 INFO - eip = 0x5e043d29 esp = 0x001dde0c ebp = 0x001dde24
23:55:57 INFO - Found by: call frame info
23:55:57 INFO - 9 xul.dll!nsObserverService::NotifyObservers(nsISupports *,char const *,char16_t const *) [nsObserverService.cpp:e4ecf720b3a1 : 281 + 0xe]
23:55:57 INFO - eip = 0x5e043e1f esp = 0x001dde2c ebp = 0x001dde40
23:55:57 INFO - Found by: call frame info
23:55:57 INFO - 10 xul.dll!nsAppStartup::Quit(unsigned int) [nsAppStartup.cpp:e4ecf720b3a1 : 461 + 0x2c]
23:55:57 INFO - eip = 0x6075bac1 esp = 0x001dde48 ebp = 0x001dde80
23:55:57 INFO - Found by: call frame info
23:55:57 INFO - 11 xul.dll!NS_InvokeByIndex + 0x27
23:55:57 INFO - eip = 0x5e094067 esp = 0x001dde88 ebp = 0x001dde94
23:55:57 INFO - Found by: call frame info
23:55:57 INFO - 12 xul.dll!CallMethodHelper::Invoke() [XPCWrappedNative.cpp:e4ecf720b3a1 : 2010 + 0xf]
23:55:57 INFO - eip = 0x5e7b02dc esp = 0x001dde9c ebp = 0x001ddec8
23:55:57 INFO - Found by: previous frame's frame pointer
23:55:57 INFO - 13 xul.dll!CallMethodHelper::Call() [XPCWrappedNative.cpp:e4ecf720b3a1 : 1329 + 0x7]
23:55:57 INFO - eip = 0x5e7a52dc esp = 0x001ddeb0 ebp = 0x001ddec8
23:55:57 INFO - Found by: call frame info with scanning
23:55:57 INFO - 14 xul.dll!XPCWrappedNative::CallMethod(XPCCallContext &,XPCWrappedNative::CallMode) [XPCWrappedNative.cpp:e4ecf720b3a1 : 1296 + 0x12]
23:55:57 INFO - eip = 0x5e7a5371 esp = 0x001dded0 ebp = 0x001ddec8
23:55:57 INFO - Found by: stack scanning
23:55:57 INFO - 15 xul.dll!XPCWrappedNative::CallMethod(XPCCallContext &,XPCWrappedNative::CallMode) [XPCWrappedNative.cpp:e4ecf720b3a1 : 1296 + 0x12]
23:55:57 INFO - eip = 0x5e7a5371 esp = 0x001dded8 ebp = 0x001ddfa8
23:55:57 INFO - Found by: stack scanning
23:55:57 INFO - 16 xul.dll!js::jit::TryAttachCallStub [BaselineIC.cpp:e4ecf720b3a1 : 2005 + 0x8]
23:55:57 INFO - eip = 0x60fa0006 esp = 0x001ddf18 ebp = 0x001ddfa8
23:55:57 INFO - Found by: stack scanning
23:55:57 INFO - 17 xul.dll!js::jit::TryAttachCallStub [BaselineIC.cpp:e4ecf720b3a1 : 2217 + 0x20]
23:55:57 INFO - eip = 0x60fa0840 esp = 0x001ddf28 ebp = 0x001ddf3c
23:55:57 INFO - Found by: stack scanning
23:55:57 INFO - 18 nss3.dll!_MD_CURRENT_THREAD [w95thred.c:e4ecf720b3a1 : 317 + 0xc]
23:55:57 INFO - eip = 0x68e27748 esp = 0x001ddf30 ebp = 0x001ddf7c
23:55:57 INFO - Found by: stack scanning
23:55:57 INFO - 19 xul.dll!XPCNativeInterface::AddRef() [xpcprivate.h:e4ecf720b3a1 : 1203 + 0x35]
23:55:57 INFO - eip = 0x5e7832e4 esp = 0x001ddf64 ebp = 0x001ddf7c
23:55:57 INFO - Found by: call frame info
23:55:57 INFO - 20 xul.dll!RefPtr<XPCNativeInterface>::assign_with_AddRef(XPCNativeInterface *) [RefPtr.h:e4ecf720b3a1 : 54 + 0x6]
23:55:57 INFO - eip = 0x5e79cbd4 esp = 0x001ddf84 ebp = 0x001ddf90
23:55:57 INFO - Found by: call frame info
23:55:57 INFO - 21 xul.dll!XPCCallContext::SetCallInfo(XPCNativeInterface *,XPCNativeMember *,bool) [XPCCallContext.cpp:e4ecf720b3a1 : 135 + 0x9]
23:55:57 INFO - eip = 0x5e799872 esp = 0x001ddf98 ebp = 0x001de210
23:55:57 INFO - Found by: call frame info
23:55:57 INFO - 22 xul.dll!XPC_WN_CallMethod(JSContext *,unsigned int,JS::Value *) [XPCWrappedNativeJSOps.cpp:e4ecf720b3a1 : 983 + 0xd]
23:55:57 INFO - eip = 0x5e7b6559 esp = 0x001ddfb0 ebp = 0x001de058
23:55:57 INFO - Found by: call frame info with scanning
23:55:57 INFO - 23 xul.dll!js::jit::DebugModeOSRVolatileStub<js::jit::ICCompare_Fallback *>::operator->() [BaselineDebugModeOSR.h:e4ecf720b3a1 : 74 + 0xe0]
23:55:57 INFO - eip = 0x60ffd000 esp = 0x001de008 ebp = 0x001de058
23:55:57 INFO - Found by: stack scanning
23:55:57 INFO - 24 xul.dll!js::CompartmentChecker::check(JS::CallArgs const &) [jscntxtinlines.h:e4ecf720b3a1 : 155 + 0x14]
23:55:57 INFO - eip = 0x60cd5d4a esp = 0x001de050 ebp = 0x001de058
23:55:57 INFO - Found by: call frame info with scanning
23:55:57 INFO - 25 xul.dll!js::CallJSNative(JSContext *,bool (*)(JSContext *,unsigned int,JS::Value *),JS::CallArgs const &) [jscntxtinlines.h:e4ecf720b3a1 : 282 + 0xe]
23:55:57 INFO - eip = 0x60e8b7c3 esp = 0x001de060 ebp = 0x001de084
23:55:57 INFO - Found by: call frame info
23:55:57 INFO - 26 xul.dll!js::InternalCallOrConstruct(JSContext *,JS::CallArgs const &,js::MaybeConstruct) [Interpreter.cpp:e4ecf720b3a1 : 454 + 0x1d]
23:55:57 INFO - eip = 0x60e91143 esp = 0x001de08c ebp = 0x001de0dc
23:55:57 INFO - Found by: call frame info
23:55:57 INFO - 27 xul.dll!InternalCall [Interpreter.cpp:e4ecf720b3a1 : 499 + 0xb]
23:55:57 INFO - eip = 0x60e90e89 esp = 0x001de0e4 ebp = 0x001de100
23:55:57 INFO - Found by: call frame info
23:55:57 INFO - 28 xul.dll!XPCWrappedNative_Trace(JSTracer *,JSObject *) [XPCWrappedNativeJSOps.cpp:e4ecf720b3a1 : 597 + 0x5]
23:55:57 INFO - eip = 0x5e7b63d5 esp = 0x001de0ec ebp = 0x001de100
23:55:57 INFO - Found by: stack scanning
23:55:57 INFO - 29 xul.dll!js::jit::DoCallFallback [BaselineIC.cpp:e4ecf720b3a1 : 2354 + 0xa]
23:55:57 INFO - eip = 0x60f97a44 esp = 0x001de108 ebp = 0x001de1a8
23:55:57 INFO - Found by: call frame info
23:55:57 INFO - 30 xul.dll!js::jit::DoCallFallback [BaselineIC.cpp:e4ecf720b3a1 : 2354 + 0xa]
23:55:57 INFO - eip = 0x60f97a44 esp = 0x001de110 ebp = 0x001de1a8
23:55:57 INFO - Found by: stack scanning
23:55:57 INFO - 31 0x16247af1
23:55:57 INFO - eip = 0x16247af1 esp = 0x001de1b0 ebp = 0x001de218
23:55:57 INFO - Found by: previous frame's frame pointer
23:55:57 INFO - 32 0x22337808
23:55:57 INFO - eip = 0x22337808 esp = 0x001de220 ebp = 0x001de27c
23:55:57 INFO - Found by: previous frame's frame pointer
23:55:57 INFO - 33 0x16240c55
23:55:57 INFO - eip = 0x16240c55 esp = 0x001de284 ebp = 0x001de2b0
23:55:57 INFO - Found by: previous frame's frame pointer
23:55:57 INFO - 34 xul.dll!EnterBaseline [BaselineJIT.cpp:e4ecf720b3a1 : 160 + 0x1e]
23:55:57 INFO - eip = 0x60f9b6aa esp = 0x001de2b8 ebp = 0x001de448
23:55:57 INFO - Found by: previous frame's frame pointer
23:55:57 INFO - 35 xul.dll!js::jit::OptimizationInfo::compilerWarmUpThreshold(JSScript *,unsigned char *) [IonOptimizationLevels.cpp:e4ecf720b3a1 : 90 + 0x5]
23:55:57 INFO - eip = 0x61157dab esp = 0x001de2d4 ebp = 0x001de448
23:55:57 INFO - Found by: stack scanning
23:55:57 INFO - 36 xul.dll!js::jit::EnterBaselineMethod(JSContext *,js::RunState &) [BaselineJIT.cpp:e4ecf720b3a1 : 200 + 0xd]
23:55:57 INFO - eip = 0x60f9bf0f esp = 0x001de450 ebp = 0x001de4f0
23:55:57 INFO - Found by: call frame info
23:55:57 INFO - 37 xul.dll!js::jit::EnterBaselineMethod(JSContext *,js::RunState &) [BaselineJIT.cpp:e4ecf720b3a1 : 200 + 0xd]
23:55:57 INFO - eip = 0x60f9bf0f esp = 0x001de458 ebp = 0x001de6d8
23:55:57 INFO - Found by: stack scanning
23:55:57 INFO - 38 xul.dll!js::jit::OptimizationInfo::compilerWarmUpThreshold(JSScript *,unsigned char *) [IonOptimizationLevels.cpp:e4ecf720b3a1 : 90 + 0x5]
23:55:57 INFO - eip = 0x61157dab esp = 0x001de484 ebp = 0x001de6d8
23:55:57 INFO - Found by: stack scanning
23:55:57 INFO - 39 xul.dll!JS::GCVector<JS::Value,0,js::TempAllocPolicy>::trace(JSTracer *) [GCVector.h:e4ecf720b3a1 : 134 + 0x23]
23:55:57 INFO - eip = 0x609e8f70 esp = 0x001de4b4 ebp = 0x001de400
23:55:57 INFO - Found by: call frame info with scanning
Status: RESOLVED → REOPENED
Flags: needinfo?(cpeterson)
Resolution: FIXED → ---
Merged backout https://hg.mozilla.org/mozilla-central/rev/389ff5662e9c
Comment 56•8 years ago
|
||
I ported this change to TB (bug 1351721) and now this got backed out :-(
Comment 58•8 years ago
|
||
Jonathan, this PLDHashTable assertion fails during application shutdown because gfxPlatformFontList::FindAndAddFamilies() is inserting into hash table mOtherNamesMissed, while, earlier in the stack, gfxPlatformFontList::CleanupLoader() is already enumerating/reading mOtherNamesMissed. Do you have any suggestions why changing Windows' default monospace font from Courier New to Consolas would suddenly cause problems in this old code path (from bug 752394)? Is Consolas a localized font family name while Courier New is not?
During application shutdown, gfxPlatformFontList::CleanupLoader() enumerates mOtherNamesMissed:
http://searchfox.org/mozilla-central/source/gfx/thebes/gfxPlatformFontList.cpp#1528
then calls gfxPlatformFontList::FindFamily(), which calls gfxPlatformFontList::FindAndAddFamilies(), thinks mOtherFamilyNamesInitialized is false, and then tries to mOtherNamesMissed->PutEntry():
http://searchfox.org/mozilla-central/source/gfx/thebes/gfxPlatformFontList.cpp#719
Here is a better stack trace for the PLDHashTable assertion failure during the mochitest chrome tests:
https://treeherder.mozilla.org/logviewer.html#?job_id=91175543&repo=try&lineNumber=7768
22:12:42 INFO - GECKO(3532) | Assertion failure: IsIdle(oldState), at c:\builds\moz2_slave\try-w32-d-00000000000000000000\build\src\xpcom\ds\PLDHashTable.h:132
22:12:56 INFO - GECKO(3532) | #01: PLDHashTable::Add(void const *) [xpcom/ds/PLDHashTable.cpp:589]
22:12:56 INFO -
22:12:56 INFO - GECKO(3532) | #02: gfxPlatformFontList::FindAndAddFamilies(nsAString const &,nsTArray<gfxFontFamily *> *,gfxFontStyle *,double) [gfx/thebes/gfxPlatformFontList.cpp:723]
22:12:56 INFO -
22:12:56 INFO - GECKO(3532) | #03: gfxGDIFontList::FindAndAddFamilies(nsAString const &,nsTArray<gfxFontFamily *> *,gfxFontStyle *,double) [gfx/thebes/gfxGDIFontList.cpp:931]
22:12:56 INFO -
22:12:56 INFO - GECKO(3532) | #04: gfxPlatformFontList::FindFamily(nsAString const &,gfxFontStyle *,double) [gfx/thebes/gfxPlatformFontList.h:328]
22:12:56 INFO -
22:12:56 INFO - GECKO(3532) | #05: gfxPlatformFontList::CleanupLoader() [gfx/thebes/gfxPlatformFontList.cpp:1529]
22:12:56 INFO -
22:12:56 INFO - GECKO(3532) | #06: gfxFontInfoLoader::ShutdownObserver::Observe(nsISupports *,char const *,char16_t const *) [gfx/thebes/gfxFontInfoLoader.cpp:126]
22:12:56 INFO -
22:12:56 INFO - GECKO(3532) | #07: nsObserverList::NotifyObservers(nsISupports *,char const *,char16_t const *) [xpcom/ds/nsObserverList.cpp:112]
22:12:56 INFO -
22:12:56 INFO - GECKO(3532) | #08: nsObserverService::NotifyObservers(nsISupports *,char const *,char16_t const *) [xpcom/ds/nsObserverService.cpp:285]
22:12:56 INFO -
22:12:56 INFO - GECKO(3532) | #09: nsAppStartup::Quit(unsigned int) [toolkit/components/startup/nsAppStartup.cpp:465]
22:12:56 INFO -
22:12:56 INFO - GECKO(3532) | #10: NS_InvokeByIndex
22:12:56 INFO -
22:12:56 INFO - GECKO(3532) | #11: CallMethodHelper::Invoke() [js/xpconnect/src/XPCWrappedNative.cpp:2010]
22:12:56 INFO -
22:12:56 INFO - GECKO(3532) | #12: XPCWrappedNative::CallMethod(XPCCallContext &,XPCWrappedNative::CallMode) [js/xpconnect/src/XPCWrappedNative.cpp:1296]
22:12:56 INFO -
22:12:56 INFO - GECKO(3532) | #13: XPC_WN_CallMethod(JSContext *,unsigned int,JS::Value *) [js/xpconnect/src/XPCWrappedNativeJSOps.cpp:983]
22:12:56 INFO -
22:12:56 INFO - GECKO(3532) | #14: js::CallJSNative(JSContext *,bool (*)(JSContext *,unsigned int,JS::Value *),JS::CallArgs const &) [js/src/jscntxtinlines.h:291]
22:12:56 INFO -
22:12:56 INFO - GECKO(3532) | #15: js::InternalCallOrConstruct(JSContext *,JS::CallArgs const &,js::MaybeConstruct) [js/src/vm/Interpreter.cpp:455]
22:12:56 INFO -
22:12:56 INFO - GECKO(3532) | #16: InternalCall [js/src/vm/Interpreter.cpp:500]
22:12:56 INFO -
22:12:56 INFO - GECKO(3532) | #17: Interpret [js/src/vm/Interpreter.cpp:2997]
22:12:56 INFO -
22:12:56 INFO - GECKO(3532) | #18: js::RunScript(JSContext *,js::RunState &) [js/src/vm/Interpreter.cpp:395]
22:12:56 INFO -
22:12:56 INFO - GECKO(3532) | #19: js::InternalCallOrConstruct(JSContext *,JS::CallArgs const &,js::MaybeConstruct) [js/src/vm/Interpreter.cpp:473]
22:12:56 INFO -
22:12:56 INFO - GECKO(3532) | #20: InternalCall [js/src/vm/Interpreter.cpp:500]
22:12:56 INFO -
22:12:56 INFO - GECKO(3532) | #21: js::Call(JSContext *,JS::Handle<JS::Value>,JS::Handle<JS::Value>,js::AnyInvokeArgs const &,JS::MutableHandle<JS::Value>) [js/src/vm/Interpreter.cpp:519]
22:12:56 INFO -
22:12:56 INFO - GECKO(3532) | #22: JS_CallFunctionValue(JSContext *,JS::Handle<JSObject *>,JS::Handle<JS::Value>,JS::HandleValueArray const &,JS::MutableHandle<JS::Value>) [js/src/jsapi.cpp:2826]
22:12:56 INFO -
22:12:56 INFO - GECKO(3532) | #23: nsFrameMessageManager::ReceiveMessage(nsISupports *,nsIFrameLoader *,bool,nsAString const &,bool,mozilla::dom::ipc::StructuredCloneData *,mozilla::jsipc::CpowHolder *,nsIPrincipal *,nsTArray<mozilla::dom::ipc::StructuredCloneData> *) [dom/base/nsFrameMessageManager.cpp:1108]
22:12:56 INFO -
22:12:56 INFO - GECKO(3532) | #24: nsFrameMessageManager::ReceiveMessage(nsISupports *,nsIFrameLoader *,bool,nsAString const &,bool,mozilla::dom::ipc::StructuredCloneData *,mozilla::jsipc::CpowHolder *,nsIPrincipal *,nsTArray<mozilla::dom::ipc::StructuredCloneData> *) [dom/base/nsFrameMessageManager.cpp:1138]
22:12:56 INFO -
22:12:56 INFO - GECKO(3532) | #25: nsFrameMessageManager::ReceiveMessage(nsISupports *,nsIFrameLoader *,bool,nsAString const &,bool,mozilla::dom::ipc::StructuredCloneData *,mozilla::jsipc::CpowHolder *,nsIPrincipal *,nsTArray<mozilla::dom::ipc::StructuredCloneData> *) [dom/base/nsFrameMessageManager.cpp:1138]
22:12:56 INFO -
22:12:56 INFO - GECKO(3532) | #26: nsFrameMessageManager::ReceiveMessage(nsISupports *,nsIFrameLoader *,bool,nsAString const &,bool,mozilla::dom::ipc::StructuredCloneData *,mozilla::jsipc::CpowHolder *,nsIPrincipal *,nsTArray<mozilla::dom::ipc::StructuredCloneData> *) [dom/base/nsFrameMessageManager.cpp:1138]
22:12:56 INFO -
22:12:56 INFO - GECKO(3532) | #27: nsSameProcessAsyncMessageBase::ReceiveMessage(nsISupports *,nsIFrameLoader *,nsFrameMessageManager *) [dom/base/nsFrameMessageManager.cpp:2076]
22:12:56 INFO -
22:12:56 INFO - GECKO(3532) | #28: nsAsyncMessageToParent::HandleMessage() [dom/base/nsInProcessTabChildGlobal.cpp:63]
22:12:56 INFO -
22:12:56 INFO - GECKO(3532) | #29: mozilla::dom::SameProcessMessageQueue::Runnable::Run() [dom/base/SameProcessMessageQueue.cpp:73]
22:12:56 INFO -
22:12:56 INFO - GECKO(3532) | #30: nsThread::ProcessNextEvent(bool,bool *) [xpcom/threads/nsThread.cpp:1270]
22:12:56 INFO -
22:12:56 INFO - GECKO(3532) | #31: NS_ProcessNextEvent(nsIThread *,bool) [xpcom/threads/nsThreadUtils.cpp:389]
22:12:56 INFO -
22:12:56 INFO - GECKO(3532) | #32: mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate *) [ipc/glue/MessagePump.cpp:96]
22:12:56 INFO -
22:12:56 INFO - GECKO(3532) | #33: MessageLoop::RunInternal() [ipc/chromium/src/base/message_loop.cc:238]
22:12:56 INFO -
22:12:56 INFO - GECKO(3532) | #34: MessageLoop::RunHandler() [ipc/chromium/src/base/message_loop.cc:232]
22:12:56 INFO -
22:12:56 INFO - GECKO(3532) | #35: MessageLoop::Run() [ipc/chromium/src/base/message_loop.cc:212]
22:12:56 INFO -
22:12:56 INFO - GECKO(3532) | #36: nsBaseAppShell::Run() [widget/nsBaseAppShell.cpp:158]
22:12:56 INFO -
22:12:56 INFO - GECKO(3532) | #37: nsAppShell::Run() [widget/windows/nsAppShell.cpp:271]
22:12:56 INFO -
22:12:56 INFO - GECKO(3532) | #38: nsAppStartup::Run() [toolkit/components/startup/nsAppStartup.cpp:284]
22:12:56 INFO -
22:12:56 INFO - GECKO(3532) | #39: XREMain::XRE_mainRun() [toolkit/xre/nsAppRunner.cpp:4538]
22:12:56 INFO -
22:12:56 INFO - GECKO(3532) | #40: XREMain::XRE_main(int,char * * const,mozilla::BootstrapConfig const &) [toolkit/xre/nsAppRunner.cpp:4718]
22:12:56 INFO -
22:12:56 INFO - GECKO(3532) | #41: XRE_main(int,char * * const,mozilla::BootstrapConfig const &) [toolkit/xre/nsAppRunner.cpp:4811]
22:12:56 INFO -
22:12:56 INFO - GECKO(3532) | #42: mozilla::BootstrapImpl::XRE_main(int,char * * const,mozilla::BootstrapConfig const &) [toolkit/xre/Bootstrap.cpp:45]
22:12:56 INFO -
22:12:56 INFO - GECKO(3532) | #43: do_main [browser/app/nsBrowserApp.cpp:237]
22:12:56 INFO -
22:12:56 INFO - GECKO(3532) | #44: NS_internal_main(int,char * *,char * *) [browser/app/nsBrowserApp.cpp:307]
22:12:56 INFO -
22:12:56 INFO - GECKO(3532) | #45: wmain [toolkit/xre/nsWindowsWMain.cpp:118]
22:12:56 INFO -
22:12:56 INFO - GECKO(3532) | #46: __scrt_common_main_seh [f:/dd/vctools/crt/vcstartup/src/startup/exe_common.inl:253]
22:12:56 INFO -
22:12:56 INFO - GECKO(3532) | #47: kernel32.dll + 0x53c45
22:12:56 INFO -
22:12:56 INFO - GECKO(3532) | #48: ntdll.dll + 0x637f5
22:12:56 INFO -
22:12:56 INFO - GECKO(3532) | #49: ntdll.dll + 0x637c8
Flags: needinfo?(cpeterson) → needinfo?(jfkthame)
Updated•8 years ago
|
Keywords: dev-doc-needed
Comment 59•7 years ago
|
||
This got backed out of 55 AIUI, updating status flag.
Comment 60•7 years ago
|
||
Bug 1354004 is going to land in 57. Time to go ahead along with Bug 1342741 to give a fresh look?
Comment 61•7 years ago
|
||
(In reply to Kohei Yoshino [:kohei] from comment #60)
> Bug 1354004 is going to land in 57. Time to go ahead along with Bug 1342741
> to give a fresh look?
I can try again. The challenge with changing the default monospace font is that each operating system's monospace fonts have different dimensions and many layout reftests are tuned to work the current fonts.
Changing Windows' default monospace font to Consolas or Lucida Console triggered some hashtable reentrancy assertion failures during shutdown, as detailed in comment 58.
Comment 62•7 years ago
|
||
Looks like this will not land for 57, but we could still consider it for 59 or maybe even 58.
I'll go ahead and track for 59.
status-firefox57:
--- → wontfix
status-firefox58:
--- → affected
status-firefox59:
--- → affected
tracking-firefox59:
--- → +
Comment 63•7 years ago
|
||
I don't think we should track this for 59. I'm not actively working on it. I can change the fonts and fix the tests, but the Try tests hit some hashtable reentrancy assertion failures that I don't understand.
Updated•7 years ago
|
Summary: Use Consolas as the default monospace font on Windows Vista & 7 → Use Consolas as the default monospace font on Windows
Comment 64•7 years ago
|
||
OK, thanks. I'll remove it from the release note triage as well. But if we ever fix this, a release note would be nice.
relnote-firefox:
? → ---
Comment 65•7 years ago
|
||
I filed this yesterday ( https://bugzilla.mozilla.org/show_bug.cgi?id=1454196 ) I really hope someone can start working on this because Firefox has built a reputation for having better text rendering than Chrome (text is often too thin/low weight in Chrome), I'm even seeing it mentioned in articles and blog posts. This is one of the major exceptions where Chrome renders text at a more reasonable weight than Firefox. I don't think it has to be Consolas but it really needs to be thicker/"heavier" than the current, please see the attached screenshot in 1454196
Comment 66•7 years ago
|
||
Thanks for the link, Will. I have a patch to use Consolas in Firefox, but it breaks some Firefox tests. I haven't gotten around to fixing all the tests yet because they are finicky and I don't think many websites use `font-family: monospace` for their body text. But apparently the Chromium bug tracker does. :)
Blocks: 1454196
status-firefox60:
--- → wontfix
status-firefox61:
--- → affected
status-firefox-esr52:
--- → wontfix
Comment 67•5 years ago
|
||
Consolas density is closer to density of normal fonts like Arial, and much more readable, especially on HiDPI (e.g. 4K@200%) displays where Courier New is horribly thin and barely readable like in paper books. And if for sites, the font can at least be changed via userstyles with extensions like Stylus, userstyles apparently cannot help with user interface of such addons themselves.
Consolas is built into Windows Vista+, so it’s now basically always available under Windows.
I suspect this improvement could be done by a simple change in the Firefox default stylesheet.
See the demo page for a live comparison and screenshots.
Updated•5 years ago
|
Keywords: parity-edge
Updated•3 years ago
|
Status: REOPENED → RESOLVED
Closed: 8 years ago → 3 years ago
Resolution: --- → DUPLICATE
Updated•3 years ago
|
Alias: Consolas
Target Milestone: mozilla55 → ---
Updated•3 years ago
|
Updated•2 years ago
|
Flags: needinfo?(jfkthame)
You need to log in
before you can comment on or make changes to this bug.
Description
•