Bug 126309 (@importSave)

save page does not save @import -ed CSS

NEW
Unassigned

Status

()

Firefox
File Handling
16 years ago
a year ago

People

(Reporter: Mrten, Unassigned)

Tracking

(Depends on: 1 bug)

unspecified
Points:
---
Dependency tree / graph
Bug Flags:
blocking-aviary1.5 -

Firefox Tracking Flags

(Not tracked)

Details

(URL)

(Reporter)

Description

16 years ago
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (Windows; U; WinNT4.0; en-US; rv:0.9.8+) Gecko/20020217
BuildID:    2002021708

if you save a page completely, you'd expect to see all the CSS that is used to
be saved. however, when saving this URL, there is a snippet of code

<style type="text/css" media="all">@import "styles/sophisto.css";</style>

which the file 'sophisto.css' is never to be found in the directory with files.


Reproducible: Always
Steps to Reproduce:
save the page
go to directory
miss file

Comment 1

16 years ago
To adam.  This is not a duplicate, I think, but bug 115107 needs to get fixed
first.
Assignee: law → adamlock
Status: UNCONFIRMED → NEW
Depends on: 115107
Ever confirmed: true
OS: Windows NT → All
Hardware: PC → All

Comment 2

16 years ago
Another page with the same problem :
http://webnouveau.net/

Comment 3

16 years ago
.
Target Milestone: --- → Future

Comment 4

15 years ago
*** Bug 162108 has been marked as a duplicate of this bug. ***
QA Contact: sairuh → petersen

Comment 5

15 years ago
Hasn't the future arrived by now? How hard would this be to fix? Can we please
have some attention to this soon?

Comment 6

15 years ago
*** Bug 202737 has been marked as a duplicate of this bug. ***

Comment 7

14 years ago
*** Bug 223406 has been marked as a duplicate of this bug. ***

Comment 8

14 years ago
*** Bug 224586 has been marked as a duplicate of this bug. ***

Comment 9

14 years ago
*** Bug 225009 has been marked as a duplicate of this bug. ***

Comment 10

14 years ago
*** Bug 235791 has been marked as a duplicate of this bug. ***

Comment 11

14 years ago
*** Bug 236069 has been marked as a duplicate of this bug. ***

Comment 12

14 years ago
Also Save Page As does not flatten the url() items in the CSS file(s). 

In the HTML, an image element is correctly flattened, e.g.
    <img src="http://www.somewhere.com/logo.png">
becomes
    <img src="saveasfolder/logo.png">

In CSS, images should also be flattened - but are not. E.g.
    body { background-image: url(http://www.somewhere.com/background.png); }
should become 
    body { background-image: url(saveasfolder/background.png); }

The same applies for the other syntactic variants of the same thing (i.e. with
or without ' quote marks, with or without the url() lexical token.

Rick :-)

Comment 13

14 years ago
rick: that's bug 115107, which oddly enough is listed in the dependencies. in
the future, please at least check depencies before you comment about something
which you think might be related. ideally you'd do a normal bug search....

Comment 14

14 years ago
*** Bug 237106 has been marked as a duplicate of this bug. ***
Blocks: 115634

Comment 15

13 years ago
This page is an example of the problem:

http://weblogs.mozillazine.org/hyatt/ 

In that case, it is exacerbated by the fact that a JavaScript script selects the
css file to use (after user action). These alternate css files are not saved.

Comment 16

13 years ago
similar to not saving CSS images:
CSS not fixed up by webbrowserpersist (background images not saved)
http://bugzilla.mozilla.org/show_bug.cgi?id=115107

there is a work in progress patch there, but hasn't been rolled into nightly
build as of last month (may2004)

Comment 17

13 years ago
*** Bug 252392 has been marked as a duplicate of this bug. ***

Comment 18

13 years ago
please see also http://bugzilla.mozilla.org/show_bug.cgi?id=115107#c67

voting for both bugs

Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.2) Gecko/20040803
MultiZilla/1.6.4.0b Mnenhy/0.6.0.104

Comment 19

13 years ago
*** Bug 263600 has been marked as a duplicate of this bug. ***

Comment 20

13 years ago
Sorry for spamming, but would this be really hard to fix?

It's really annoying when you want to save a page to:
 - Open the file
 - Find where the css file is located
 - Open the css file and save it
 - Modify the page to use the local version of the css file

'Save page' does this perfectly when the css file is not @imported, so is it so
hard to include the support for the @import tag? It seems so, since this bug was
opened more than 2.5 years ago... 

Comment 21

13 years ago
*** Bug 267662 has been marked as a duplicate of this bug. ***

Comment 22

13 years ago
*** Bug 271626 has been marked as a duplicate of this bug. ***

Comment 23

13 years ago
*** Bug 273091 has been marked as a duplicate of this bug. ***
*** Bug 278895 has been marked as a duplicate of this bug. ***
Alias: @importSave

Updated

13 years ago
Alias: @importSave → &importSave

Comment 25

13 years ago
Sorry for rereporting this bug, but it didn't come up in response to my query. Anyway, it is nigh on 
three years old, and is simply a matter of resolving the @import tags. Can you fix it?

Comment 26

13 years ago
you can fix it.
Alias: &importSave → @importSave
Assignee: adamlock → ionFreeman

Comment 27

13 years ago
Please calm down. 
http://bugzilla.mozilla.org/page.cgi?id=etiquette.html


Assignee: ionFreeman → adamlock

Comment 28

13 years ago
*** Bug 281478 has been marked as a duplicate of this bug. ***

Updated

13 years ago
Flags: blocking-aviary1.1+
Please don't set blocking flags, other than to request them (?).
Flags: blocking-aviary1.1+

Updated

13 years ago
Flags: blocking-aviary1.1?

Comment 30

13 years ago
*** Bug 287525 has been marked as a duplicate of this bug. ***
Flags: blocking-aviary1.1? → blocking-aviary1.1-

Comment 31

12 years ago
*** Bug 294724 has been marked as a duplicate of this bug. ***
*** Bug 297180 has been marked as a duplicate of this bug. ***
*** Bug 309632 has been marked as a duplicate of this bug. ***
*** Bug 309737 has been marked as a duplicate of this bug. ***

Comment 35

12 years ago
*** Bug 314665 has been marked as a duplicate of this bug. ***

Comment 36

12 years ago
I am putting up a $25 bounty for this bug. This is very basic fdunctionality from an end-users standpoint -- something that people should expect to just work. The average joe isn't going to be able to manually download and modify the css files.

Anybody else want to contribute to this?

PS: If anybody does fix it, email me your paypal information.
*** Bug 321349 has been marked as a duplicate of this bug. ***

Comment 38

12 years ago
*** Bug 326131 has been marked as a duplicate of this bug. ***

Comment 39

12 years ago
Here's the problem that I've found, and correct me if I'm wrong because I'm not intimately familiar with the code:

At the moment, nsWebBrowserPersist.cpp uses a Tree Walker (line 1581) to go through each and every "tag set" (node) and find references to external objects. Since the CSS is not parsed in the DOM, the Tree Walker doesn't find these images and stuff. Therefore, the style sheets also need to be parsed or stuff inside import() and url() would need to be collected as well.
*** Bug 337114 has been marked as a duplicate of this bug. ***

Comment 41

11 years ago
*** Bug 343627 has been marked as a duplicate of this bug. ***

Comment 42

11 years ago
For those of you still interested, I've created an extension to serve as a temporary fix to the problem. < https://addons.mozilla.org/firefox/2925/ >
Until I or someone else has the time to re-write nsWebBrowserPersist however, this is the best solution.
*** Bug 355366 has been marked as a duplicate of this bug. ***

Comment 44

11 years ago
I'll throw $25 in to that bounty. It's the kind of thing that we need to make "just work".

(In reply to comment #36)
> I am putting up a $25 bounty for this bug. This is very basic fdunctionality
> from an end-users standpoint -- something that people should expect to just
> work. The average joe isn't going to be able to manually download and modify
> the css files.
> 
> Anybody else want to contribute to this?
> 
> PS: If anybody does fix it, email me your paypal information.
> 
Duplicate of this bug: 370152

Comment 46

11 years ago
I tried to use the "Save Complete" extension mentioned in comment 42, but it garbled the web page on disk in FF 2.0.0.3.  I have found that ScrapBook (https://addons.mozilla.org/en-US/firefox/addon/427) works well, and "Mozilla Archive Format" (https://addons.mozilla.org/en-US/firefox/addon/212) looks interesting for Firefox 1.5.x users.

Comment 47

10 years ago
The issue (and I don't know where I saw this comment in the first place) is that, for this problem to be corrected, either the CSS parser needs to be rewritten to allow its usage by nsWebBrowserPersist for properly parsing and replacing urls in stylesheets, or a simplified CSS parser must be written for nsWebBrowserPersist, which would result in duplicated code. The best solution seems to be a full rewrite of the CSS parser to allow proper search-and-replace for urls in stylesheets, although this will take a lot of work. If someone is willing to mentor me, I have done enough research that I am pretty sure I know what needs to be done.

As a side note, the issue in comment 46 with the "Save Complete" extension has been fixed, and although it has problems with a specific time of @import rule, it is a lot better than the save functionality provided by nsWebBrowserPersist. The extension can be found at <https://addons.mozilla.org/en-US/firefox/addon/4723>.

Comment 48

10 years ago
Stephen: see bug 115107 comment 88 (that suggestion also applies to this bug - the suggested fixup interface could collect the URLs it fixes up and pass them to StoreURI, thus causing the URIs referenced from @import to be saved). I actually half-implemented that suggestion and it seemed to work fine before it fell off my plate :(

I can help you with the easier things, as time permits, if you take that approach.

Comment 49

10 years ago
The issue that I have with working through the DOM is that, currently, anything modified by Firefox before being saved is "corrected". If the page had html like <a href=http://www.google.com>google.com</a>, the address is now enclosed in quotes. Although this is perfectly acceptable for those simply trying to save a page for later, it is not acceptable for web-developers, who would prefer that nothing was changed in their code before being saved. This is why I prefer the, albeit less effective, method of using regular expressions. The URLs can be easily collected through the DOM interfaces (see code in extension mentioned in comment 47 for example). However replacing only those URLs that need to be replaced is difficult, as a regular expression cannot ever beat a full parser for shear flexibility.

Comment 50

10 years ago
Web developers have lots of ways to get the exact source of the page.. that's not an issue in my opinion. Regular expressions are a no-go, since you can't parse HTML properly using them, plus we already have a working parser - why would we write and maintain another, regexp-based one? For a single questionable web developer use-case?

Updated

10 years ago
Duplicate of this bug: 388565

Updated

10 years ago
Duplicate of this bug: 398839

Updated

9 years ago
Duplicate of this bug: 428046

Updated

9 years ago
Duplicate of this bug: 431605
Assignee: adamlock → nobody
QA Contact: chrispetersen → file-handling
Target Milestone: Future → ---

Comment 55

9 years ago
firefox 3 has been release but this bug not be cleared. look at the starting bug date, why?

Updated

9 years ago
Flags: blocking1.9.1?

Comment 56

9 years ago
the original *simple* example may be "questionable", but there are plenty of recursive usage out there where one .css imports others via @import() ... i'm not suggesting that creating a dedicated parser is a good idea, just that the idea of writing off css @import() as questionable is ridiculousness.

Comment 57

9 years ago
I'm not getting your point. You expect your saved page to look like the original. Actually Firefox is not saving all files. There is no discussion here.

Comment 58

9 years ago
my comment was a specific reply to Comment #50.  take a chill pill.

Comment 59

9 years ago
#57: then why does it save the images and re-write the paths to them? What's wrong with expecting to be able to have a saved page look the same as the original one? Or am I misunderstanding your comment?

Comment 60

9 years ago
For most people the aim is to make a local copy of the page view some strongly appreciate a copy of the files structure.

Both are unhappy because a part of the css is lost.

Comment 61

9 years ago
Nop.
For people who wants files from the serveur, they'll need the css file linked in the @import directive.
For people who needs a copy (sort of screenshot), they'll want the same style to be applied, including those imported.

Not conflictual. Yes, the @import url should be rewritten locally for this to work properly.

(ps->Mike Frysinger=>i'm not so fluent, what's a chill pill? bad medicine probably...)
Flags: blocking1.9.1? → blocking1.9.1-

Updated

8 years ago
Duplicate of this bug: 498472

Updated

8 years ago
Duplicate of this bug: 524301

Updated

8 years ago

Comment 64

6 years ago
Until this bug is fixed, couldn't Firefox display a warning saying that some CSS files are missing when doing the "Save Page As" / "Web Page, complete"? (I don't know the Firefox internals, but since the page is already displayed, I suppose that Firefox could have this information quite easily.)

This would avoid to make the user wonder why a saved page looks wrong when opened, because Firefox doesn't display any error when a CSS file is not found.

Comment 65

5 years ago
Please ficks this bug. I am dying. I can't wait any longer. I want to see this bug ficked before I pass away. I want to enjoy my life. Please

Comment 66

5 years ago
@ Lil B: Others are not responsible for your life. Suggestion: Why don't you use the maff add-on ?? It not only saves an identical, faithful copy of the web page, it also saves disk space due to zip compression!

Comment 67

5 years ago
@chrizoo : You have no humor.
@lilb : I am only waiting since 2008, take the queue :)
@mozilla : This is a bug, please fix

Comment 68

5 years ago
A reminder: there's 50$ bounty for fixing this bug from https://bugzilla.mozilla.org/show_bug.cgi?id=126309#c36 and https://bugzilla.mozilla.org/show_bug.cgi?id=126309#c44.
Please hurry up while they are still alive. Are they?
P.S. The future in now.

Comment 69

4 years ago
Wow, no patch since 11 years for this annoying bug :o

Updated

3 years ago
Duplicate of this bug: 1106261

Comment 71

3 years ago
Happy New Year, bug !

Comment 72

3 years ago
Remember bug when we used to play? Let's get together again some time and work it out again, like we used to again, let's again. Merry new year to yours and of course your others. Promise, Lil B

Comment 73

3 years ago
The bounty should be adjusted for inflation, in fact I'll throw all my gold nuggets into a new river. I am going to invest in this bug instead. Promise, Lil B

Comment 74

3 years ago
If you are serious about the bounty, please consider putting it up at https://www.bountysource.com/issues/3508687-save-page-does-not-save-import-ed-css to streamline the process.
Component: File Handling → File Handling
Product: Core → Firefox
Version: Trunk → unspecified
You need to log in before you can comment on or make changes to this bug.