New issue
Advanced search Search tips

Issue 843887 link

Starred by 3 users

Issue metadata

Status: Available
Owner: ----
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Windows , Mac
Pri: 3
Type: Bug



Sign in to add a comment

HTMLLinkElement.disabled = false; doesn't enable alternate stylesheet when changed the first time

Reported by stephan....@helionweb.de, May 17

Issue description

UserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/65.0.3325.181 Chrome/65.0.3325.181 Safari/537.36

Steps to reproduce the problem:
1. Download all files and put them in the same directory
2. Open switch_once.html
3. The text is displayed in black (unstyled)

What is the expected behavior?
The text should be displayed in green (the alternate stylesheet should be used).

What went wrong?
Enabling the alternate stylesheet by setting the link elements "disabled" attribute to false doesn't work at first (HTMLLinkElement interface). Doesn't work:

link_element.disabled = false;

But the following code works:

link_element.disabled = false;
link_element.disabled = true;
link_element.disabled = false;

This is only necessary once after the page is loaded. After that setting the attribute once works properly.

Did this work before? N/A 

Does this work in other browsers? Yes

Chrome version: 65.0.3325.181  Channel: stable
OS Version: Linux Mint 17 Qiana
Flash Version: 

Also tested in Firefox 60 Win7 (works), IE 10 Win7 (works) and Chrome 66 Win7 (doesn't work).

Doesn't make a difference if the code is opened as a local file (file://...) or via HTTP.

Using link_element.sheet.disabled (StyleSheet interface) doesn't help either.

The same also happens when the code is executed at "DOMContentLoaded" instead of "load" or when the code is manually executed in the console. It's independent of event timing.

Both HTML files contain commented out workaround code that make it work.

I also included an interactive switcher (interactive_switcher.html) as that's how I stumbled over the bug. When you first switch to the "green" style the normal stylesheet gets disabled but the alternate stylesheet isn't enabled. But when switching back to blue and then to green again it works.
 
blue.css
39 bytes View Download
green.css
40 bytes View Download
switch_once.html
703 bytes View Download
interactive_switcher.html
1.1 KB View Download
Not sure where to put this, but these two issues might be related:

https://bugs.webkit.org/show_bug.cgi?id=25287
https://bugs.chromium.org/p/chromium/issues/detail?id=695984
Labels: Needs-Milestone
Cc: kkaluri@chromium.org
Labels: OS-Mac OS-Windows
Status: Untriaged (was: Unconfirmed)
Able to reproduce this issue on Windows 10, Linux & Mac 10.13.3 with chrome Stable #66.0.3359.181, Beta #67.0.3396.48, Dev #68.0.3432.3, Canary #68.0.3436.0 and also on earlier version M60-#60.0.3072.0

This is a non-regression issue, hence marking it as untiraged

Attaching the screen-shot for reference.
Issue 843887.png
52.1 KB View Download
Labels: -Pri-2 -Needs-Milestone Pri-3
Status: Available (was: Untriaged)
I just found out that the workaround can be simplified a bit. This code is enough to switch between two styles:

    blue_style.disabled = true;
    green_style.disabled = true;  // workaround
    green_style.disabled = false;

Seems like executing green_style.disabled = true; once is enough to "fix" the bug. Even if the stylesheet is already disabled (because it's an alternate stylesheet). Maybe that helps narrowing down the bug.

Sign in to add a comment