Last Comment Bug 83663 - back-end implementation to store Alternate style sheet settings [AltSS]
: back-end implementation to store Alternate style sheet settings [AltSS]
Status: NEW
[Hixie-P0]
:
Product: SeaMonkey
Classification: Client Software
Component: UI Design (show other bugs)
: Trunk
: All All
: P3 enhancement with 83 votes (vote)
: Future
Assigned To: jag (Peter Annema)
:
Mentors:
: 51692 91109 111937 122985 137228 142060 153158 162442 163391 173799 178924 180779 182876 186026 243841 (view as bug list)
Depends on: 63213 200930
Blocks: altss 108391
  Show dependency treegraph
 
Reported: 2001-06-01 08:56 PDT by Mikko Rantalainen
Modified: 2012-12-21 14:40 PST (History)
66 users (show)
See Also:
Crash Signature:
(edit)
QA Whiteboard:
Iteration: ---
Points: ---


Attachments
pseudo-code for fantasai@escape.com 2001-07-01 03:27 (3.54 KB, text/plain)
2001-11-09 10:55 PST, fantasai
no flags Details

Description Mikko Rantalainen 2001-06-01 08:56:51 PDT
When visiting a site and user selects alternative style sheet from View-Use
Style Sheet and goes through a link next page uses default style sheet even it
provided similarly named style sheet. For example page 1 could provide style
sheets "Hicolor" (default) and "Monocrome". Now if user selects "Monocrome"
style, display is updated accordingly, but when user clicks a link to go to page
2 mozilla uses "Hicolor" instead of expected "Monocrome". Mozilla should use
identically called style sheet instead of default one if one exists.

Some things to consider: if site A provides style sheet "Style2" and site B
provides similarly named style sheet should we use that instead of default one?
How do we detect site change? Or should mozilla use same [different from
default] stylesheet only if that's linked to same resource? This would limit
support to linked style sheets only. See bug 63213.
Comment 1 Boris Zbarsky [:bz] 2001-06-01 09:02:44 PDT
ccing mpt for UI-type comments.  status => NEW.
Comment 2 Matthew Paul Thomas 2001-06-24 07:35:10 PDT
Certainly, style sheet selection (like text size selection, and encoding
selection) should persist from page A to page B in the same window (or in a link
spawned from that window), where a style sheet with the same name *or* URL is
offered for both those pages. If it didn't, that would be annoying. (In the edge
case where page B offers both a style sheet with the same name but a different
URL, and a style sheet with the same URL but a different name, use the one with
the same URL.)

This behavior should be overridden where I have already been to page B and
chosen a different style sheet -- so I can choose one style sheet for page A and
another for page B, and flick between them without having to constantly change
the style sheet settings. That means that any non-default style sheet (and
encoding, and text size) selection for each page should be stored in the global
history entry (and, ideally, bookmarks entry) for that page. However, that
should be filed as a separate bug which does not need to block this one.
Comment 3 Pierre Saslawsky 2001-07-15 13:35:55 PDT
Interesting suggestion...  The discussion around alternate stylesheets takes 
place under bug 6782. Marking dup.


*** This bug has been marked as a duplicate of 6782 ***
Comment 4 Pierre Saslawsky 2001-07-19 17:06:01 PDT
*** Bug 91109 has been marked as a duplicate of this bug. ***
Comment 5 James Lariviere 2001-10-24 07:50:00 PDT
I think that this is really a dupe of bug 51692.  Seems that 6782 is more about 
gui additions while this is about remembering the altSS choice for the site.  
This is just for reference.

Comment 6 fantasai 2001-10-26 14:33:51 PDT
Splitting up bug 6782 ("UI for alternate and user stylesheets").

"One bug report == one issue is one of the golden rules of Bugzilla because it
enables independent tracking and prioritization of each issue."
                                              -- ekrock@netscape.com, bug 4510

Comments from bug 6782:


------- Gervase Markham <gerv@mozilla.org> 2001-06-28 03:49 -------

And, while I'm here, I want to chip in on this from 2.4:
>   o A selected alternate style will remain in effect as long as it is 
>    available or until the user selects another style.
>      - How is the availability of an author style to be determined?

This is tricky. I say that if the URI is the same, we assume it's exactly the
same. If the domain is the same AND the style name is the same but the URI is
different, we reload the style but keep it applied. Otherwise, we drop it.
Better to remove style if in doubt rather than apply the wrong style to a random
page. Authors should not do silly things like having the same URI refer to two
different style sets, and if they do, they should expect to confuse user agents.

Has the W3C group thought of this? Perhaps a unique "style id" attribute on the
Style tag - different from the Title, which is meant for presentation to the
user.

Gerv


------- fantasai@escape.com 2001-06-28 12:01 -------

|      - How is the availability of an author style to be determined?

We need to be able to handle the following situation:

Set 1:
 <link rel="stylesheet" media="print" title="Printer" href="styles/bw-base.css">
 <link rel="stylesheet" title="Red" href="styles/color-base.css">
 <link rel="alternate stylesheet" title="Green" href="styles/color-base.css">

Set 2:
 <link rel="stylesheet" media="print" title="Printer" href="styles/bw-base.css">
 <link rel="stylesheet" media="print" title="Printer"
       href="styles/printer/main.css">
 <link rel="stylesheet" title="Red" href="styles/color-base.css">
 <link rel="stylesheet" title="Red" href="styles/red/main.css">
 <link rel="alternate stylesheet" title="Green" href="styles/color-base.css">
 <link rel="alternate stylesheet" title="Green" href="styles/green/main.css">

Set 3:
 <link rel="stylesheet" media="print" title="Printer" href="styles/bw-base.css">
 <link rel="stylesheet" title="Red" href="styles/color-base.css">
 <link rel="stylesheet" title="Red" href="styles/red/gloss.css">
 <link rel="alternate stylesheet" title="Green" href="styles/color-base.css">
 <link rel="alternate stylesheet" title="Green" href="styles/green/gloss.css">

Set 4 (different site?):
 <link rel="alternate stylesheet" title="Green" href="styles/forest.css">

Set 5:
 <link rel="stylesheet" media="print" title="Printer" href="styles/bw-base.css">
 <link rel="stylesheet" media="print" title="Printer"
       href="styles/printer/main.css">
 <link rel="stylesheet" title="Red" href="styles/color-base.css">
 <link rel="stylesheet" title="Red" href="styles/red/main.css">

Set 6:
 <link rel="stylesheet" media="print" title="Printer" href="styles/bw-base.css">
 <link rel="stylesheet" media="print" title="Printer"
       href="styles/printer/main.css">
 <link rel="stylesheet" title="Blue" href="styles/color-base.css">
 <link rel="stylesheet" title="Blue" href="styles/blue/main.css">
 <link rel="alternate stylesheet" title="Red" href="styles/color-base.css">
 <link rel="alternate stylesheet" title="Red" href="styles/red/main.css">

If I visit 2, "Red" will be selected because it is the preferred style. If I 
then visit 6, the preferred style, "Blue", will be selected because I did not 
actually select "Red". Preferred styles do not set the user selection.

If I pick "Green" in set 1, 2, or 3, it should be selected every time I visit 
any one of them, but not selected for set 4. So, if the title is the same and at 
least one of the (resolved) URIs is the same, then it's the same Style.

If I then visit 5, "Red" will be selected, because "Green" is not available, and 
"Red" is the preferred style. When I go to 3, "Green" will once more be 
selected.

If I visit 6, "Blue" will be selected, because "Green" is not available, and 
"Blue" is the preferred style. If I select "Red" from the Use Style menu, and 
then return to 3, "Red" will be selected in 3 because I consciously chose it.

An automatically assigned style never overwrites the user's selection.


------- Gervase Markham <gerv@mozilla.org> 2001-06-29 15:00 -------

> We need to be able to handle the following situation:

Right. So can you suggest an algorithm, please? :-)

Gerv


------- fantasai@escape.com 2001-07-01 03:27 -------

> Right. So can you suggest an algorithm, please? :-)

Yes, I can. :-)

Here 'tis, since you asked:

In the following text, "alternate styles" includes "preferred styles" (but not 
vice versa).
"Page-Defined Style" refers to the default (preferred) style choice when no 
preferred stylesheet exists.

"None":
  "none" is a persistent option. That is, once it is selected, it does not get
  unselected until the user specifically selects something else.

Style History format:
A history is kept of all alternate styles selected.
The Style History contains
  - a list of all alternate Styles used, sorted by last-visited date
  - a list of all alternate Styles dropped in favor of "Page-Defined Style"
    (may be a list of references to Styles in visited Styles list)
  Each Style consists of
    - a name (title)
    - a list of Stylesheets sorted by last-visited date
    Each Stylesheet holds
      - a URI
      - a last-visited date
  The last-visited date of a Style is the most recent last-visited date in its
    list of Stylesheets.

The Style History gets cleared with the regular History, and Stylesheets expire 
from it in the same time period regular Pages do from the regular History.
If a Style has no more Stylesheets, then it, too, expires.

Adding to the Style History: **
  - Persistent stylesheets are never added
  - Alternate stylesheets are added when selected
  - Preferred stylesheets are -only- added if selected either
      - by the History
      - by the User when switching from alternate to preferred
  - Preferred stylesheets are -not- added if
      - they are automatically selected (defaulted to)
      - they are selected by the User when switching from none to preferred
  - If "Page-Defined Style" is explicitly selected over a previously selected
    alternate style, then that Style gets added to the list of dropped styles.
    The Style is removed from this list the next time it is selected.

Selecting an Alternate Style:
  1.) All the alternate styles in the page are organized into Alternate Styles.
      An Alternate Style consists of
        - a name
        - a list of stylesheet URIs
  2.) The Alternate Styles are checked against the dropped Styles list
      Iterate over the dropped Styles until a match is found or the list ends.
      For each dropped Style -
        Iterate over the list of Alternate Styles
        For each Alternate Style - 
          Check the name of the Alternate Style against the archived Style
          If the name matches
            Iterate over the list of stylesheet URIs in the matching Alternate
                                                                     Style
            For each Alternate Style -
              Check the archived Style's list of Stylesheets for a matching URI
              If one is found, the Alternate Style matches; cache a reference to 
                                                            the Style and break
  3.) To select the Alternate Style, the Style History visited list is
      iterated over until a matching Style is found, the archived Style being
      examined matches a dropped style (we cached the most recent one in step 2)
      or the list ends.
      For each archived Style - 
        Iterate over the list of Alternate Styles
        For each Alternate Style - 
          Check the name of the Alternate Style against the archived Style
          If the name matches
            Iterate over the list of stylesheet URIs in the matching Alternate
                                                                     Style
            For each Alternate Style - 
              Check the archived Style's list of Stylesheets for a matching URI
              If one is found, the Alternate Style matches; select it and break
      If no matching Style is found, use the Preferred Style (or Page-Defined
      Style, if there is none)--but do not add it to the Style History!

** This is a departure from the Summary in that once explicitly selected, the
default style is treated more like another alternate stylesheet than like a
persistent option. To restore the Summary's behavior, remove the last three
"Adding to the Style History" rules and exclude "preferred style" from the
definition of "alternate style" in the entire text.

You did ask...



------- James Lariviere <jameslariviere@yahoo.com> 2001-07-01 05:29 -------

So far I think that fantasai@escape.com's last outline is the best.

Personally my $.02, without persistent alternate stylesheets (i.e. mozilla
remembers the selected alternate stylesheet for a whole given site and every
revisit until another is selected), mozilla implementation is only a token 
gesture.
I know as a web developer of sites I would use alternate stylesheets but can not
justfy to my boss the effort or cost needed to make the site additions without a
browser correctly implementing them.


------- Gervase Markham <gerv@mozilla.org> 2001-07-01 08:09 -------

> Here 'tis, since you asked:

OK, that blows my mind. Someone who understands style sheets better will have to 
review it. But well done for writing it, because it needed writing.

Are we going to make an attempt on this bug without History support, or is it 
not worth it? I have a mental handle on how to do it without, but if we have to 
integrate with History that'll mean a whole lot of changes over there, and 
it'll be far more complex. Perhaps a separate bug should be filed? Something 
like "allow generic metadata to be associated with items in History"...

Gerv


------- fantasai@escape.com 2001-07-01 08:36 -------

As I see it, the Style History needs to be recorded separately, not integrated
into the regular History. Otherwise we get the scenario where I switch styles,
go back one page, and Mozilla switches the styles back to what I had before.


------- Pierre Saslawsky <pierre@netscape.com> 2001-10-11 20:09 -------

I propose a simple popup menu that would show the list 
of stylesheets and an item "Remember for this site" that would be checked by 
default.  The definition of "site" should not be based on the host name but on 
the URL of the directory that contains the current page.  Also, I don't think it 
would be useful to rememmber the setting per page.  Authors will provide 
stylesheets (read "skins") for their entire sites, not for individual pages.


            +-------------------------+
            |  None                   |
     Style: |- Default                |
            |  Old Style              |
            |  Modernist              |
            |  Midnight               |
            |  Ultra Marine           |
            |-------------------------|
            |v Remember for this site |
            +-------------------------+


------- fantasai@escape.com 2001-10-11 22:35 -------

>an item "Remember for this site" that would be checked by default.

The user shouldn't have to think about this. The stylesheet selection should 
persist automatically.

> Also, I don't think it would be useful to rememmber the setting per page.

Agreed.


------- Sascha Claus <SC_LE@gmx.de> 2001-10-12 10:18 -------

> My vote goes to adding the stylesheets in a Document Toolbar
> and an item "Remember for this site" that would be checked by default.

ACK

> The definition of "site" should not be based on the host name but on 
> the URL of the directory that contains the current page.

Or remember the location + title (specified by <link>) of the stylesheets.


------- Pierre Saslawsky <pierre@netscape.com> 2001-10-12 15:31 -------

Agreed on all suggestions.  I especially like Sacha's idea to remember the 
location and title of the stylesheets.  It makes the implementation much more 
efficient.  Another advantage is that if different sites share the same set of 
stylesheets, it allows us to select the last stylesheet that was used on any of 
these sites.


------- Jesse Ruderman <jruderman@hmc.edu> 2 2001-10-15 21:37 -------

I don't like the idea of sharing style sheet prefs between sites.  If we did 
that, a site could get a good idea of what other types of sites I visit by 
seeing which style sheet my browser chooses for me when given various 
combinations of choices.  (If every site gave the same set of choices, that 
wouldn't be a large privacy problem, but most sites that have alternate style 
sheets give them relatively unique names.)


------- Sascha Claus <SC_LE@gmx.de> 2001-10-16 00:03 -------

> I don't like the idea of sharing style sheet prefs between sites.  If we did 
> that, a site could get a good idea of what other types of sites I visit by 
> seeing which style sheet my browser chooses for me when given various 

If the Browser remembers the location, the SS must the same as at the other 
site, it must have the same location. So the other site has to look at foreign 
logs.
An option to turn on/off this would be useful.

OTOH: Sites might copy the most popular SS to get a better design.


------- Jesse Ruderman <jruderman@hmc.edu> 2 2001-10-16 14:52 -------

Sascha: a site can use javascript to find out what style sheet is being used to 
view the page.  One was is to use the getComputedStyle() function, which tells 
the page what styles have been applied to a given element.


------- _basic@yahoo.com 2001-10-16 21:40 -------

Jesse: Wouldn't user style sheets be a privacy problem too? If you are really
worried about privacy problems could you not use the style sheets in the way you
described?


------- Jesse Ruderman <jruderman@hmc.edu> 2 2001-10-18 12:48 -------

Basic: it would be nice if a web site couldn't guess at the rules in my user 
style sheet, but they can, and I don't consider that to be a huge privacy hole, 
partly because few users have user style sheets.  If Mozilla remembered which 
stylesheets I chose from a web site and then applied those choices to other 
pages, that would allow a site to guess at what other sites I have visited, 
which I consider more of a problem.


------- fantasai@escape.com 2001-10-19 14:08 -------

> I don't like the idea of sharing style sheet prefs between sites.  If we did 
> that, a site could get a good idea of what other types of sites I visit

Define "site". Give an example where selecting a stylesheet by name + uri 
creates a privacy problem. Explain how we can avoid this problem without giving 
up style selection memory. 
(There's a sample set in [fantasai@escape.com 2001-06-28 12:01]--you might find 
it useful.)


------- Pierre Saslawsky <pierre@netscape.com> 2001-10-19 14:40 -------

Agreed: there is no real privacy problem here and if there is one, it is even 
much smaller than issues raised by cookies.  BTW, we could reuse the prefs: if 
cookies are disabled for a domain, we don't remember the stylesheet selection.
Comment 7 fantasai 2001-10-26 15:44:12 PDT
*** Bug 51692 has been marked as a duplicate of this bug. ***
Comment 8 Jesse Ruderman 2001-10-27 03:36:57 PDT
There's a difference between cookies and automatically sharing style sheet 
choices across all sites.  Cookies allow a group of sites to collude to track 
you across only those sites.  Automatically sharing style sheet choices:
- would allow a site to figure which other sites you have visited and chosen 
style sheets for.
- might allow a site to gather enough information about your style sheet 
choices on other sites to distinguish you from other users.
Comment 9 fantasai 2001-10-27 13:59:33 PDT
Jesse, would you please reply to [fantasai@escape.com 2001-10-19 14:08]?
You keep complaining that remembering a style selection "between sites" would 
compromise privacy, but you aren't saying how, you aren't even saying what you 
mean by that, and you aren't offering any alternatives. Repeating yourself isn't 
getting us anywhere; you need to explain.
Comment 10 Jesse Ruderman 2001-10-27 18:22:10 PDT
Suppose netscape.com had stylesheets "blue 1" and "mozmodern", and slashdot.org 
had stylesheets "circuitboard green", "osdn", and "light".  Also suppose that I 
visit these sites, and select "light" at slashdot.

Then I go to a malicious site, which first gives me a page with the 
stylesheets "blue 1" and "mozmodern".  These might be the same as on 
netscape.com, in which case the site would use getComputedStyle to determine 
which on Mozilla uses, or they might be on the malicious site's server, in 
which case the server operator could look at logs to find out which one Mozilla 
uses.  The site then forwards me to another page and does the same 
for "circuitboard green", "osdn", and "light".

Since I selected "light" while I was on Slashdot, the malicious site is now 
able to tell that I read Slashdot, and probably regularly since I bothered to 
change stylesheets.

The solution is to limit style sheet choices in the same way we limit scripts: 
as long as two pages are on the same server, same port, and same protocol, 
style sheet choices should be remembered.
Comment 11 Sascha Claus 2001-10-28 03:53:14 PST
I suggested, Mozilla should remember title *and location*. So there is only a
problem if a site offers the same set of SSs and gets the current SS with JS.
But then this must come to the server, e. g. via hidden forms.

As I said: An option to turn on/off this would be useful.
Comment 12 Jesse Ruderman 2001-10-29 12:09:47 PST
What do you mean by "So there is only a problem if a site offers the same set 
of SSs and gets the current SS with JS"?  That's like saying that pop-up 
windows are only a problem when a site calls window.open.
Comment 13 Sascha Claus 2001-10-29 13:50:15 PST
When Mozilla remembers the title (specified by <link> element), then there must
be a SS with the same name/title, or Mozilla won't load it. My idea was to
remember title *and* location.
The malicius site out of your example would have to link the stylesheets from
netscape.com and slashdot.org, not only offer SS with the same titles. When the
site uses getComputedStyle, the result must be transmitted to the server.

> That's like saying that pop-up 
> windows are only a problem when a site calls window.open.

1) The site must offer the same SS at the same location (same URI).
2) The site must use getComputedStyle (or anything else).
3) The storing of AltSS must be enabled. (A lot of people don't like this idea :-/ )
Comment 14 Jesse Ruderman 2001-10-29 14:21:56 PST
I think storing style sheet choices is a great idea, it's just that I think 
each choice should only be remembered for a single hostname because I don't 
want someone who sends me a URL over instant messenger to be able to find out 
that I read slashdot.
Comment 15 Filip Dziembowski 2001-11-01 21:54:05 PST
Hello to all:

It seems to me that both Sascha and Jesse are on the same page both want SS to 
be remembered by location == hostname / title.  I think it would be silly to 
remember styles that cross over servers or domainnames if virtual servers are 
used.  Hence the best solution is to have a style sheet history that is 
perticular to a hostname (location). Remember them by last selected, and if 
that is not available on some pages then just display what is availabe but keep 
the title in history.  If tricky or dumb web site developers change the uri to 
a perticular SS title then it wouldn't be the browsers responsibility to 
remember that.
Comment 16 fantasai 2001-11-04 08:03:56 PST
> remembered by location == hostname / title

That the style selection should be based on both location and title has been, 
IIRC, undisputed since even before SC_LE@gmx.de joined the conversation.

Location should be resolved URI, not hostname. Host != site, whatever the 
History people may think. We're not going to guess sites' URI boundaries here; 
we can do better than that.

If we're going to have a server/port/protocol check for security purposes, it 
should be just that and not interfere with the rest of the logic. Also, if we 
are going to have such a check, it should be optional and off by default: style 
selection, IMO, doesn't pose a significant privacy problem, and this 
type of restriction cripples the selection memory on sites that span multiple 
servers, such as Yahoo, About, eBay, mp3.com, and a slew of others.
Comment 17 fantasai 2001-11-09 10:55:49 PST
Created attachment 57249 [details]
pseudo-code for fantasai@escape.com 2001-07-01 03:27
Comment 18 fantasai 2001-11-09 11:02:26 PST
I think it would be both easier and more efficient if we used only one style 
list--used a 'dropped' attribute instead of a separate dropped styles list. In 
this case, the date on the stylesheets would also need to be updated when a 
style is dropped in favor of Page-Defined Style.

re: multiple windows viewing the same site
Should changing the Style on one window affect them all?
IMO, a change in one window should affect the history in all of them, but it 
shouldn't trigger a reflow. The new style should take effect on the next page 
load rather than immediately.
Comment 19 timeless 2001-11-26 08:02:18 PST
*** Bug 111937 has been marked as a duplicate of this bug. ***
Comment 20 Christopher Aillon (sabbatical, not receiving bugmail) 2002-02-01 10:03:02 PST
*** Bug 122985 has been marked as a duplicate of this bug. ***
Comment 21 Kevin McCluskey (gone) 2002-02-22 09:54:45 PST
Bulk moving Moz1.2 bugs to future-P2. I will pull from this list when scheduling
work post Mozilla1.0
Comment 22 Mikko Rantalainen 2002-02-23 05:09:30 PST
I think a nice way to do this is to simply store a list of recently selected
location/title combos and for those really paranoid about privacy you could
implement a pref to break JS API to query SS. This way only original stylesheet
provider could get info about which SS you're using but they could do that
anyway because they have the logs. I mean window.open is already "broken" if the
user decides so and I haven't heard anybody being unhappy with it (I don't care
if pop-up advertisers are unhappy). Another way to solve this is to allow
paranoid people always load *all* linked style sheets no matter if they are used
- how's that for wasting bandwidth.
Comment 23 Boris Zbarsky [:bz] 2002-02-23 10:47:57 PST
> always load *all* linked style sheets

This is what we already do....  All linked sheets are loaded; the alternate ones
are deferred to after the main document has been loaded and parsed, while the
non-alternate ones are loaded synchronously.  Otherwise stylesheet switching
would take forever... :)

So from a security standpoint this is a non-issue.

Comment 24 rossi 2002-03-20 10:26:45 PST
adding cc, and i don't think this is enhancement...
Comment 25 Jonadab the Unsightly One (Nathan Eady) 2002-03-21 09:09:35 PST
> i don't think this is enhancement

I assume you mean that browsers should be expected to do this,
that while the spec AFAIK doesn't state it directly it should
be read between the lines as the only sensible interpretation 
of multiple linked stylesheets.  If that's what you mean, I
agree, but it is nevertheless an enhancement because AFAIK _no_
current browser already does this correctly.  Mozilla will be
leading the way and enhancing the state of the art in browser
technology on this point, methinks.  If IE or Opera already
does this, nobody has told me about it.  Even more significantly,
no previous incarnation of Mozilla or Netscape had this right, 
either.  That doesn't mean Mozilla shouldn't implement this -- 
it absolutely should -- but it does make it an enhancement.  

Being an enhancement does not necessarily imply that it
is a gratuitous feature, only that it's something we've
never done before.  
Comment 26 Christopher Aillon (sabbatical, not receiving bugmail) 2002-04-12 21:48:49 PDT
*** Bug 137228 has been marked as a duplicate of this bug. ***
Comment 27 Kelson 2002-04-25 16:35:19 PDT
From comment 25: "it is nevertheless an enhancement because AFAIK _no_
current browser already does this correctly."

Konqueror 3.0 and Galeon 1.2.1 both do this (although Galeon appears to render
using the preferred stylesheet while loading, then switch to the previously
selected one).
Comment 28 Boris Zbarsky [:bz] 2002-05-03 10:53:28 PDT
*** Bug 142060 has been marked as a duplicate of this bug. ***
Comment 29 David Baron :dbaron: ⌚️UTC-7 (review requests must explain patch) 2002-06-19 21:13:19 PDT
Assigning pierre's remaining Style System-related bugs to myself.
Comment 30 Jesse Ruderman 2002-06-20 11:06:13 PDT
*** Bug 153158 has been marked as a duplicate of this bug. ***
Comment 31 fantasai 2002-08-02 06:16:27 PDT
*** Bug 159387 has been marked as a duplicate of this bug. ***
Comment 32 Boris Zbarsky [:bz] 2002-08-13 02:31:17 PDT
*** Bug 162442 has been marked as a duplicate of this bug. ***
Comment 33 David Baron :dbaron: ⌚️UTC-7 (review requests must explain patch) 2002-08-18 18:14:17 PDT
*** Bug 163391 has been marked as a duplicate of this bug. ***
Comment 34 David Baron :dbaron: ⌚️UTC-7 (review requests must explain patch) 2002-10-10 13:25:01 PDT
*** Bug 173799 has been marked as a duplicate of this bug. ***
Comment 35 Boris Zbarsky [:bz] 2002-11-07 13:29:08 PST
*** Bug 178924 has been marked as a duplicate of this bug. ***
Comment 36 Boris Zbarsky [:bz] 2002-11-18 13:16:43 PST
*** Bug 180779 has been marked as a duplicate of this bug. ***
Comment 37 Olivier Cahagne 2002-12-01 04:22:49 PST
*** Bug 182876 has been marked as a duplicate of this bug. ***
Comment 38 Patrick Fromberg 2002-12-02 04:48:48 PST
Now, this thread is discussing very subtil problems about the alternate
stylesheets. I think the main issue somehow got forgotten. As the subtile
problems seem to be fixed first, and the main issue has to wait some years, I
recommend to those, who need the feature now, to write following code into the
onload and unload event handlers. Not nice, but it works and without cookies.

function myUnload () {
if (navigator.appName.match(/netscape/i)
  for(i=0; (a = document.getElementsByTagName("link")[i]); i++)
    if(a.getAttribute("rel").indexOf("style") != -1 &&
       a.getAttribute("title") && a.disabled == false)
    {
        top.name="stylesheetname"+a.getAttribute("title");
    }
}
function myOnload (d)
{
  var x = top.name.match(/stylesheetname(.*)/i);
  if (navigator.appName.match(/netscape/i) && x && x.length>1)
      selectStylesheet(x[1]);
}
Comment 39 Jonadab the Unsightly One (Nathan Eady) 2002-12-02 07:24:05 PST
Comment #27
This I did not know.  Perhaps I should upgrade Galeon occasionally :-)

Comment #38:  
Clever, but we've already been down the road of convincing page authors to
jump through obscure hoops because of browser inadequacies, and I don't think
most of us want to go back to that way of doing things.  I realise Opera and 
IE don't do this right either yet (see my earlier comment), but they should,
and so should Mozilla, and then page authors won't HAVE to load up with tons
of javascript just to give the user some style options.
Comment 40 Jonadab the Unsightly One (Nathan Eady) 2002-12-02 07:57:07 PST
Regarding the controversy over spanning domains:  I can see both sides of
thise one.  Not storing them across hostnames would break sites with more
than one server (_lots_ of sites these days), so that's bad, but it's still
better than what we have now.  On the other hand, if we do persist the user's
choice across hostnames, there's a (minor IMO) privacy issue, but _only_ if 
the user takes advantage of the (currently mostly non-working) feature, so
again it's still better than what we have now.  

What about Yet Another Paranoid Privacy Pref, "Reveal stylesheet preferences
across sites"?  The default value wouldn't matter, because both sets of users
who would care (those who want alternate styles remembered and those who are
careful about privacy) already go through the prefs and change stuff.  People
who don't change settings aren't going to be affected by this either way.

Or we could _attempt_ to determine whether two hostnames are part of the same
overall site, but that gets hard, particularly in the country-code TLDs.

Personally, I want slashdot and sourceforge (both part of OSDN) to be able
to provide the same set of style options, and if I choose on one, I want 
that choice to persist on the other.  But I can see the other side.  A pref
is probably in order, IMO.  But _either_ implementation improves on the
current situation.
Comment 41 Patrick Fromberg 2002-12-02 09:08:16 PST
> Regarding the controversy over spanning domains:  I can see both
> sides of thise one.

Remembering the stylesheets on a per hostname basis can be later extended. The
other way roud is difficult. It is the minimum requirement anyway, that must be met.

> What about Yet Another Paranoid Privacy Pref, "Reveal stylesheet
> preferences across sites"?  The default value wouldn't matter,
> because both sets of users

I think ist is true, the privacy issue is relevant. Especially, if stylesheet
say "Big Letters". Ensurances will be very keen on such data. What could be done
as a comprmise is to work on a per hostname basis, but extend the caching of the
style preferences. So, I will have to ajust the style for new sites,
but I will not have to reajust them, when cache data expires. This later case
might be in practice more often and anoying, than the crosshostname situation.
Comment 42 Gervase Markham [:gerv] 2002-12-02 11:01:25 PST
> I think ist is true, the privacy issue is relevant. Especially, if stylesheet
> say "Big Letters". Ensurances will be very keen on such data.

Oh, for goodness sake. 

Any insurance company which has time to write a program which looks at the 404s
for stylesheet requests on its webservers, checks the referrers, goes to the
referring sites, downloads their style sheets and parses them to see if that
person (who they would need to actually identify in another way, and see if they
were actually a customer) has a possible disability which they are not revealing
is one that's about to go bust because it wastes its employees time. 

Can we please get real about this tiny, tiny potential privacy leak, let the
ultra-paranoid build their own browser which has different behaviour (market
niche for Beonex, perhaps), and get on with actually _fixing_ this bug instead
of talking about it?

Gerv
Comment 43 Hixie (not reading bugmail) 2002-12-02 18:17:27 PST
1. There wouldn't be a 404 since if the style set doesn't exist on the new page,
there would be no stylesheet to fetch (and indeed if the style sets were
different then it would be pointless to try to use the same style set).

2. Even if there was a way to get information that way, you'd get a lot more
information just from the referrer itself. And that is something Beonex can
already turn off.

Gerv is right that it is ridiculous to be talking about privacy leaks here.
Comment 44 David Baron :dbaron: ⌚️UTC-7 (review requests must explain patch) 2002-12-18 08:39:25 PST
*** Bug 186026 has been marked as a duplicate of this bug. ***
Comment 45 Robert Morris 2003-07-31 20:53:13 PDT
Removing mozilla1.1 keyword; clearly, it didn't make it. ;) Oh, and adding self
to CC list...
Comment 46 Boris Zbarsky [:bz] 2004-05-17 13:12:43 PDT
*** Bug 243841 has been marked as a duplicate of this bug. ***
Comment 47 Keks 2004-07-25 07:47:31 PDT
(In reply to comment #18)
> re: multiple windows viewing the same site
> Should changing the Style on one window affect them all?

Yes.

> IMO, a change in one window should affect the history in all of them, but it 
> shouldn't trigger a reflow. The new style should take effect on the next page 
> load rather than immediately.

No, immediately, i think. When i change the style, i want to see the effect --
on all pages.

Keks
Comment 48 Hixie (not reading bugmail) 2004-07-25 08:18:57 PDT
I don't think it should change other pages. When you do font zoom it doesn't 
affect other pages. This should be conceptually the same.
Comment 49 Keks 2004-07-25 09:02:28 PDT
(In reply to comment #48)
> I don't think it should change other pages. When you do font zoom it doesn't 
> affect other pages. This should be conceptually the same.

Font zoom ist temporarily, style selection is permanent (it should be permanent)
and it affects the other pages -- after reloading them. But why require a reload?

Yours, Keks
(Sorry for my english! ;) )
Comment 50 fantasai 2004-07-25 11:45:41 PDT
No, it should not cause a reflow in all pages because you might, in fact, want
to have different style sets selected on different pages. A prime example would be
switching between "show differences" and "normal", where the first would highlight
INS and DEL and the other would just hide DEL.
Comment 51 Peter Weilbacher 2004-08-28 09:22:04 PDT
How exactly is this done in Konqueror? It is supposed to have the perfect
implementation for this problem, if I believe the reviews and comments I have
read (don't have Konqueror myself). Can that behaviour not just be copied?
Comment 52 Krzysztof Jurewicz 2005-04-26 08:36:00 PDT
This bug has a status NEW and doesn't have any patches associated with it but it
seems to be partially fixed because bug 216537 which depends on this bug also
seems to be partially fixed because Firefox now remembers selected stylesheet
(although bug 216537 also ha a status NEW). It is a bit unclear to me but maybe
I haven't noticed something which is obvious for everybody.

Anyway I would like to write that Firefox remembers stylesheets when they are
linked via <link> tag but when the same thing is done via XML declaration (like
on site http://egree.jogger.pl ), it doesn't work.
Comment 53 Adam Hauner 2005-04-26 08:44:55 PDT
Maybe you should notice, that this bug is for Mozilla Suite.
Comment 54 Krzysztof Jurewicz 2005-04-26 09:39:02 PDT
Yes, it is, but it blocks bug 216537, so IMHO stylesheet switching shouldn't
work in Firefox if this bug isn't fixed (from comments for bug 216537: "bug
83663. That's where the back-end work will happen; this bug is just for the
Firefox front end.").
Comment 55 Worontzoff Philippe 2005-04-26 10:29:39 PDT
I've got FireFox 1.0.3 and it don't remember the alternate style sheet, as much
with the link element as with the xml-stylesheet element.
Comment 56 Krzysztof Jurewicz 2005-04-26 10:35:39 PDT
My Firefox 1.0.3 for GNU/Linux does remember it on site http://aviary.pl/site .
Comment 57 Boris Zbarsky [:bz] 2005-04-26 10:39:09 PDT
Guys, could we cut the spam?  Firefox has a sorta-fix for this that doesn't
really work quite right but works in some cases and is done completely in the
UI.  This bug is about doing this in the back end and doing it right, which
blocks Firefox doing it right.
Comment 58 Krzysztof Jurewicz 2005-04-26 10:53:12 PDT
You talking to me? ;) If so, then yes, of course :).
Comment 59 fantasai 2005-04-26 17:55:59 PDT
What's "working" is probably the site recording the choices you make through the
FF UI and remembering them through its own JavaScript. A lot of JS style
switchers have this side-effect. It has nothing to do with Firefox or Mozilla
remembering anything.
Comment 60 Worontzoff Philippe 2005-06-26 12:35:54 PDT
There is an extention that work, it should be integrated to FireFox, this would
solve this bug :
https://addons.mozilla.org/extensions/moreinfo.php?application=firefox&numpg=10&id=192
Comment 61 Steffen Wilberg 2005-12-16 01:15:59 PST
Tweaking the summary per comment 57 and bug 216537 comment 14 (was: Alternate style sheet setting not stored [AltSS]).

Note You need to log in before you can comment on or make changes to this bug.