Closed Bug 1599072 Opened 5 years ago Closed 2 months ago

wenku.baidu.com no longer available

Categories

(Core :: CSS Parsing and Computation, defect, P3)

72 Branch
defect

Tracking

()

RESOLVED WORKSFORME
Tracking Status
firefox-esr68 --- unaffected
firefox70 --- unaffected
firefox71 --- unaffected
firefox72 --- disabled
firefox73 --- disabled

People

(Reporter: yfdyh000, Assigned: emilio)

References

(Regression, )

Details

(Keywords: nightly-community, regression)

Attachments

(1 file)

This is a popular documents sharing site in China. All text is goes blank, pictures work fine.

Turn off pref layout.css.zoom-transform-hack.enabled will work fine without restart firefox.

Thanks for filing :)

For reference:

.reader-txt-layer {
    transform: scale(0.1);
    -webkit-transform: scale(0.1);
    -moz-transform: scale(0.1);
    -ms-transform: scale(0.1);
    transform-origin: left top;
    -webkit-transform-origin: left top;
    -moz-transform-origin: left top;
    -ms-transform-origin: left top;
    position: absolute;
    top: 0;
    left: 0;
    width: 0;
    height: 0;
    z-index: 2;
    zoom: .1\9;
    *zoom: .1;
}
:root .reader-txt-layer {
    zoom: 1;
}

So what they're trying to do, I think, is:

  • Use zoom for old IE, transform in modern browsers.
  • For "new" IE (which understands :root) reset the zoom, since IE would use the -ms-transform.

So that kinda sucks, because that last zoom declaration is overriding the transform in firefox when that pref is on.

Tom, thoughts? I think we're going to make zoom an actual CSS property, even if we treat it as transform scaling.

Flags: needinfo?(twisniewski)
Priority: -- → P3

Yes, Chrome works because this rule resets just the zoom value, not also the transform on .reader-txt-layer:

:root .reader-txt-layer {
    zoom: 1;
}

So separating out the two properties seems to be the logical way to fix this one.

Flags: needinfo?(twisniewski)

Well, that'd break the whole point of the hack, right? That'd make -moz-transform: scale(2); zoom: 2 scale by four.

So I guess the only "sane" (hint: it's not) alternative is parsing 1 as invalid for the zoom property. Or something...

Flags: needinfo?(twisniewski)

Heh, I thought that's what you mean by "I think we're going to make zoom an actual CSS property" :)

The thing is, treating zoom:1 as invalid likely won't work on sites that use it dynamically (I recall seeing at least one such site in the past, toggling the value on-image-click between 0.5 and 1, or something like that).

So I think we're stuck with breakage one way or the other with this hack. But if parsing 1 as invalid is easy, then we can see how far that takes us (it might be better).

Flags: needinfo?(twisniewski)

Can we ship with this? Breaking a popular feature on baidu doesn't sound good.

Flags: needinfo?(emilio)

No, we cannot, but this is enabled by default only on nightly, and I'm disabling it even there for now in bug 1599324.

It just happened to bounce back this morning.

Flags: needinfo?(emilio)
Has Regression Range: --- → yes

This ignores completely zoom: 0 and zoom: 1.

This means that something like this would break:

zoom: .5;
zoom: 1;

Which is bad, but perhaps web compatible? This is the only sensible way
of fixing problems like this or bug 1599324. The other alternative I can
think of is implementing zoom as a real longhand, but that would break
sites using -moz-transform+zoom, which is unfortunate, so let's try this
first and see if there's real-world breakage.

Assignee: nobody → emilio
Status: NEW → ASSIGNED
Severity: normal normal → S3 S3

(just a poke to be sure this doesn't fall off your radar. Looks like the patch is basically ready aside from tests, I think?)

Flags: needinfo?(emilio)

Yeah, but it's quite annoying to fix up tests actually, and it reveals how hacky this is very trivially (zoom wouldn't have an initial value for example).

So for now I'm punting on this given there's some progress / investigation going on around zoom.

Flags: needinfo?(emilio)

I think we can close this and mark the attached patch abandoned at this point, right?

Per comment 0, it looks like this bug was specific to layout.css.zoom-transform-hack.enabled being turned on; and that pref no longer exists now, and we've shipped a smarter version of CSS Zoom, currently enabled-by-default in Nightly (bug 1855763).

I can still reproduce the bug in old builds, e.g. Nightly 2019-11-25 (from the day this was filed) -- the site often fails to load in that build for some reason, but I did manage to get to a "document viewer" type view at some point, with no text visible, and I confirmed that the text appeared after I toggled layout.css.zoom-transform-hack.enabled to false and reloaded the page.)

The text shows up just fine for me in current Nighlty (where our newer zoom implementation is turned on and layout.css.zoom-transform-hack.enabled doesn't exist as a pref at all anymore.)

Status: ASSIGNED → RESOLVED
Closed: 2 months ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: