Closed Bug 1531413 Opened 5 years ago Closed 5 years ago

Save Page As, Complete doesn't save the page correctly

Categories

(Firefox :: File Handling, defect)

65 Branch
defect
Not set
normal

Tracking

()

RESOLVED WONTFIX

People

(Reporter: epistemepromeneur, Unassigned)

References

()

Details

User Agent: Mozilla/5.0 (X11; Linux x86_64; rv:65.0) Gecko/20100101 Firefox/65.0

Steps to reproduce:

go to https://www.lemonde.fr/les-decodeurs/article/2019/02/28/sept-idees-recues-sur-l-evolution-de-la-france-depuis-trente-ans_5429436_4355770.html

in this page there are statistical graphics.

try to record it

Actual results:

you get "failed"

retry
you get "finished"

open with FF the recorded page.

FF displays a non html page and no statistical graphics

Expected results:

page is correctly recorded

FF display the recorded page as a copy fo the original.

Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:67.0) Gecko/20100101 Firefox/67.0
20190228113108

In the latest Nightly with a brand new profile, saving completes on the first attempt for me.

STR

  1. https://www.lemonde.fr/les-decodeurs/article/2019/02/28/sept-idees-recues-sur-l-evolution-de-la-france-depuis-trente-ans_5429436_4355770.html
  2. Ctrl+S to bring up the save dialog.
  3. Save as type: Web Page, complete; "Save" button.
  4. Open a new tab and close the one from step 1.
  5. Ctrl+Shift+Del to bring up the clear data dialog. Clear all items, with time range everything.
  6. Alt+F, k to enable Work Offline mode.
  7. Drag and drop the saved HTML file onto the Firefox window to open it.

Expected results
A complete copy of the web page that can be viewed offline.

Actual results

  • The charts aren't interactive. In the original page, hovering over spots in the charts displays tooltips.
  • Main image is missing. It opens up fine if I open up the Inspector tool, then right-click the respective <img class="initial loading" and choose Open Link in New Tab.
  • The ad images are missing, though they show up on the original page. Some are img elements with a src that still points to the web, while others are div elements with a background-image that points to the web.
  • Browser Console shows attempted requests to the original site, as well as requests to local resources in places that don't exist:
XHRGEThttps://service.cmp.oath.com/cmp/v0/measurement/events?ev_type=A&gdpr=S&p_domain=&ev_duration=10
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://service.cmp.oath.com/cmp/v0/measurement/events?ev_type=A&gdpr=S&p_domain=&ev_duration=10. (Reason: CORS request did not succeed).
XHRGEThttps://service.cmp.oath.com/cmp/v0/measurement/events?ev_type=A&gdpr=S&p_domain=&ev_duration=10&fired=false
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://service.cmp.oath.com/cmp/v0/measurement/events?ev_type=A&gdpr=S&p_domain=&ev_duration=10&fired=false. (Reason: CORS request did not succeed).
GEThttps://img.lemde.fr/2019/02/25/0/0/1329/1072/688/0/60/0/31de3c2_B82uBPuuexosyPOFRGQHgIAH.png
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at file:///dist/assets/fonts/the-antiqua-b/TheAntiquaB_LT_800.woff. (Reason: CORS request not http).
downloadable font: download failed (font-family: "The Antiqua B" style:normal weight:800 stretch:100 src index:2): bad URI or cross-site access not allowed source: file:///dist/assets/fonts/the-antiqua-b/TheAntiquaB_LT_800.woff unknown:5:11
downloadable font: no supported format found (font-family: "The Antiqua B" style:normal weight:800 stretch:100 src index:4) source: (end of source list) unknown:5:11
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at file:///dist/assets/fonts/marr-sans-cond/MarrSansCondensed-Medium-Web.woff2. (Reason: CORS request not http).
downloadable font: download failed (font-family: "Marr Sans Condensed" style:normal weight:500 stretch:100 src index:1): bad URI or cross-site access not allowed source: file:///dist/assets/fonts/marr-sans-cond/MarrSansCondensed-Medium-Web.woff2 unknown:5:466
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at file:///dist/assets/fonts/marr-sans-cond/MarrSansCondensed-Medium-Web.woff. (Reason: CORS request not http).
downloadable font: download failed (font-family: "Marr Sans Condensed" style:normal weight:500 stretch:100 src index:2): bad URI or cross-site access not allowed source: file:///dist/assets/fonts/marr-sans-cond/MarrSansCondensed-Medium-Web.woff unknown:5:466
downloadable font: no supported format found (font-family: "Marr Sans Condensed" style:normal weight:500 stretch:100 src index:3) source: (end of source list) unknown:5:466
GEThttps://img.lemde.fr/2019/02/25/0/0/1329/1072/688/0/60/0/31de3c2_B82uBPuuexosyPOFRGQHgIAH.png
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at file:///dist/assets/fonts/marr-sans/MarrSans-Medium-Web.woff2. (Reason: CORS request not http).
downloadable font: download failed (font-family: "Marr Sans" style:normal weight:500 stretch:100 src index:1): bad URI or cross-site access not allowed source: file:///dist/assets/fonts/marr-sans/MarrSans-Medium-Web.woff2 unknown:1:2887
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at file:///dist/assets/fonts/marr-sans/MarrSans-Medium-Web.woff. (Reason: CORS request not http).
downloadable font: download failed (font-family: "Marr Sans" style:normal weight:500 stretch:100 src index:2): bad URI or cross-site access not allowed source: file:///dist/assets/fonts/marr-sans/MarrSans-Medium-Web.woff unknown:1:2887
downloadable font: no supported format found (font-family: "Marr Sans" style:normal weight:500 stretch:100 src index:3) source: (end of source list) unknown:1:2887
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at file:///dist/assets/fonts/marr-sans-cond/MarrSansCondensed-Semibold-Web.woff2. (Reason: CORS request not http).
downloadable font: download failed (font-family: "Marr Sans Condensed" style:normal weight:600 stretch:100 src index:1): bad URI or cross-site access not allowed source: file:///dist/assets/fonts/marr-sans-cond/MarrSansCondensed-Semibold-Web.woff2 unknown:1:3687
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at file:///dist/assets/fonts/marr-sans-cond/MarrSansCondensed-Semibold-Web.woff. (Reason: CORS request not http).
downloadable font: download failed (font-family: "Marr Sans Condensed" style:normal weight:600 stretch:100 src index:2): bad URI or cross-site access not allowed source: file:///dist/assets/fonts/marr-sans-cond/MarrSansCondensed-Semibold-Web.woff unknown:1:3687
downloadable font: no supported format found (font-family: "Marr Sans Condensed" style:normal weight:600 stretch:100 src index:3) source: (end of source list) unknown:1:3687
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at file:///dist/assets/fonts/the-antiqua-b/TheAntiquaB_LT_700.woff. (Reason: CORS request not http).
downloadable font: download failed (font-family: "The Antiqua B" style:normal weight:700 stretch:100 src index:2): bad URI or cross-site access not allowed source: file:///dist/assets/fonts/the-antiqua-b/TheAntiquaB_LT_700.woff unknown:1:963
downloadable font: no supported format found (font-family: "The Antiqua B" style:normal weight:700 stretch:100 src index:4) source: (end of source list) unknown:1:963
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at file:///dist/assets/fonts/marr-sans/MarrSans-Semibold-Web.woff2. (Reason: CORS request not http).
downloadable font: download failed (font-family: "Marr Sans" style:normal weight:600 stretch:100 src index:1): bad URI or cross-site access not allowed source: file:///dist/assets/fonts/marr-sans/MarrSans-Semibold-Web.woff2 unknown:1:3283
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at file:///dist/assets/fonts/marr-sans/MarrSans-Semibold-Web.woff. (Reason: CORS request not http).
downloadable font: download failed (font-family: "Marr Sans" style:normal weight:600 stretch:100 src index:2): bad URI or cross-site access not allowed source: file:///dist/assets/fonts/marr-sans/MarrSans-Semibold-Web.woff unknown:1:3283
downloadable font: no supported format found (font-family: "Marr Sans" style:normal weight:600 stretch:100 src index:3) source: (end of source list) unknown:1:3283
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at file:///dist/assets/fonts/the-antiqua-b/TheAntiquaB_LT_500.woff. (Reason: CORS request not http).
downloadable font: download failed (font-family: "The Antiqua B" style:normal weight:500 stretch:100 src index:2): bad URI or cross-site access not allowed source: file:///dist/assets/fonts/the-antiqua-b/TheAntiquaB_LT_500.woff unknown:1:11
downloadable font: no supported format found (font-family: "The Antiqua B" style:normal weight:500 stretch:100 src index:4) source: (end of source list) unknown:1:11
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at file:///dist/assets/fonts/marr-sans/MarrSans-Regular-Web.woff2. (Reason: CORS request not http).
downloadable font: download failed (font-family: "Marr Sans" style:normal weight:400 stretch:100 src index:1): bad URI or cross-site access not allowed source: file:///dist/assets/fonts/marr-sans/MarrSans-Regular-Web.woff2 unknown:1:2487
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at file:///dist/assets/fonts/marr-sans/MarrSans-Regular-Web.woff. (Reason: CORS request not http).
downloadable font: download failed (font-family: "Marr Sans" style:normal weight:400 stretch:100 src index:2): bad URI or cross-site access not allowed source: file:///dist/assets/fonts/marr-sans/MarrSans-Regular-Web.woff unknown:1:2487
downloadable font: no supported format found (font-family: "Marr Sans" style:normal weight:400 stretch:100 src index:3) source: (end of source list) unknown:1:2487
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at file:///dist/assets/fonts/the-antiqua-b/TheAntiquaB_LT_500_italic.woff. (Reason: CORS request not http).
downloadable font: download failed (font-family: "The Antiqua B" style:italic weight:500 stretch:100 src index:2): bad URI or cross-site access not allowed source: file:///dist/assets/fonts/the-antiqua-b/TheAntiquaB_LT_500_italic.woff unknown:1:466
downloadable font: no supported format found (font-family: "The Antiqua B" style:italic weight:500 stretch:100 src index:4) source: (end of source list) unknown:1:466
ReferenceError: jQuery is not defined jquery_007.js:12:7
SecurityError: The operation is insecure. Sept idées reçues sur l’évolution de la France « depuis trente ans ».html:10
ReferenceError: jQuery is not defined jquery_006.js:19:7
ReferenceError: jQuery is not defined jquery.js:12:7
ReferenceError: jQuery is not defined jquery_003.js:12:7
ReferenceError: Highcharts is not defined annotations-6-1-1.js:9:25
ReferenceError: Highcharts is not defined accessibility-6-1-1.js:10:25
ReferenceError: jQuery is not defined jquery_005.js:24:9
ReferenceError: jQuery is not defined jquery_002.js:12:7
GEThttps://ssl.ligatus.com/render/ligrend.js?ts=2.28
GEThttps://image.cp.ligatus.com/cache?url=https%3A%2F%2Fstorage.googleapis.com%2Fveeseo-cpp-images%2F39102809-c9ce-4374-9dc2-de15ed83337f.jpg&w=350
GEThttps://static.ligatus.com/images/various/fr/lemonde/logo_publicite.svg
GEThttps://static.ligatus.com/images/various/Ligatus_356x200_2.jpg
GEThttps://image.cp.ligatus.com/cache?url=https%3A%2F%2Fstorage.googleapis.com%2Fveeseo-cpp-images%2Fe6f1bfee-225d-4f8d-884b-4aa2a094137e.jpg&w=350
GEThttps://cdn.lqmcdn.com/crtvs%2F10fc4a7e-7c7d-40a7-afe9-f7baf14ed5b0%2F0ab8926275004099921eeddbfa57a61d.jpg
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at file:///dist/assets/fonts/marr-sans-cond/MarrSansCondensed-Bold-Web.woff2. (Reason: CORS request not http).
downloadable font: download failed (font-family: "Marr Sans Condensed" style:normal weight:700 stretch:100 src index:1): bad URI or cross-site access not allowed source: file:///dist/assets/fonts/marr-sans-cond/MarrSansCondensed-Bold-Web.woff2 unknown:1:4157
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at file:///dist/assets/fonts/marr-sans-cond/MarrSansCondensed-Bold-Web.woff. (Reason: CORS request not http).
downloadable font: download failed (font-family: "Marr Sans Condensed" style:normal weight:700 stretch:100 src index:2): bad URI or cross-site access not allowed source: file:///dist/assets/fonts/marr-sans-cond/MarrSansCondensed-Bold-Web.woff unknown:1:4157
downloadable font: no supported format found (font-family: "Marr Sans Condensed" style:normal weight:700 stretch:100 src index:3) source: (end of source list) unknown:1:4157
GEThttps://www.lemonde.fr/dist/assets/img/logos/pwa-180.png
GEThttps://www.lemonde.fr/dist/assets/img/logos/favicon.ico
Loading failed for the <script> with source “https://ssl.ligatus.com/render/ligrend.js?ts=2.28”. Sept idées reçues sur l’évolution de la France « depuis trente ans ».html:1:1
[Exception... "Favicon at "https://www.lemonde.fr/dist/assets/img/logos/pwa-180.png" failed to load."  nsresult: "0x804b0010 (NS_ERROR_OFFLINE)"  location: "JS frame :: resource:///modules/FaviconLoader.jsm :: onStopRequest :: line 192"  data: no]
[Exception... "Favicon at "https://www.lemonde.fr/dist/assets/img/logos/favicon.ico" failed to load."  nsresult: "0x804b0010 (NS_ERROR_OFFLINE)"  location: "JS frame :: resource:///modules/FaviconLoader.jsm :: onStopRequest :: line 192"  data: no]
Loading failed for the <script> with source “file:///assets-redaction/js/grumpycharts/highcharts-6-1-1.js”. Sept idées reçues sur l’évolution de la France « depuis trente ans ».html:1:1
Error: Script error
http://requirejs.org/docs/errors.html#scripterror require.js:8:194
GEThttps://asset.lemde.fr/medias/legacy/libs/jquery/2.1.0/jquery.js
Loading failed for the <script> with source “https://asset.lemde.fr/medias/legacy/libs/jquery/2.1.0/jquery.js”. Sept idées reçues sur l’évolution de la France « depuis trente ans ».html:1:1
Error: Script error
http://requirejs.org/docs/errors.html#scripterror require.js:8:194
Error: Load timeout for modules: jquery-ui/core,jquery-ui/tooltip,jquery-ui/slider,//s1.lemde.fr/assets-redaction/js/grumpycharts/accessibility-6-1-1.js,//s1.lemde.fr/assets-redaction/js/grumpycharts/annotations-6-1-1.js,jquery-ui/widget,jquery-ui/position,jquery-ui/mouse
http://requirejs.org/docs/errors.html#timeout require.js:8:194
XHRGEThttps://service.cmp.oath.com/cmp/v0/vendor_list/global
GEThttps://wrapper.lemde.fr/glmaw.v0.1.0.js
Loading failed for the <script> with source “file:///bucket/26b7a25481ab67c7711c4fd103e959a878184e1d/js/anltcs.bundle.js”. Sept idées reçues sur l’évolution de la France « depuis trente ans ».html:11298:1
Loading failed for the <script> with source “file:///bucket/26b7a25481ab67c7711c4fd103e959a878184e1d/js/forecast.bundle.js”. Sept idées reçues sur l’évolution de la France « depuis trente ans ».html:11298:1
Loading failed for the <script> with source “file:///bucket/26b7a25481ab67c7711c4fd103e959a878184e1d/js/ads.bundle.js”. Sept idées reçues sur l’évolution de la France « depuis trente ans ».html:11300:1
Loading failed for the <script> with source “file:///bucket/26b7a25481ab67c7711c4fd103e959a878184e1d/js/scls.bundle.js”. Sept idées reçues sur l’évolution de la France « depuis trente ans ».html:11298:1
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://service.cmp.oath.com/cmp/v0/vendor_list/global. (Reason: CORS request did not succeed).
Loading failed for the <script> with source “https://wrapper.lemde.fr/glmaw.v0.1.0.js”. Sept idées reçues sur l’évolution de la France « depuis trente ans ».html:11300:1
Error: ConsentString - You must provide an object when setting the global vendor list common.js:12:26342
Error: ConsentString - You must provide an object when setting the global vendor list common.js:12:26342
Use of nsIFile in content process is deprecated. NetUtil.jsm:245:12
Source map error: TypeError: NetworkError when attempting to fetch resource.
Resource URL: file:///C:/Users/GingerbreadMan/Desktop/Sept%20id%C3%A9es%20re%C3%A7ues%20sur%20l%E2%80%99%C3%A9volution%20de%20la%20France%20%C2%AB%C2%A0depuis%20trente%C2%A0ans%C2%A0%C2%BB_files/article.css
Source Map URL: article.css.map
GEThttps://img.lemde.fr/ext/80x53/uri/smmf.logic-immo.com/mmf/ads/photo-prop-440x330/87d/7/7cf16c99-578f-4ae7-85d0-9246d2cddfc6.jpg
GEThttps://img.lemde.fr/ext/80x53/uri/smmf.logic-immo.com/mmf/ads/photo-prop-440x330/0f4/f/f6c1596a-d840-4866-bbfd-f4acff6d4db9.jpg
GEThttps://img.lemde.fr/ext/80x53/uri/smmf.logic-immo.com/mmf/ads/photo-prop-440x330/ced/9/9b71c30d-3947-4c9d-8264-cd1ecff2e0fd.jpg
GEThttps://img.lemde.fr/ext/80x53/uri/sphoto2.lacentrale.fr/photo/lc/E1/04/06/E104068989.jpg
GEThttps://img.lemde.fr/ext/80x53/uri/sphoto2.lacentrale.fr/photo/lc/W1/01/31/W101319499.jpg
GEThttps://img.lemde.fr/ext/80x53/uri/sphoto2.lacentrale.fr/photo/lc/E1/04/07/E104071097.jpg
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at file:///ajax/recommandations/8. (Reason: CORS request not http).
GEThttps://img.lemde.fr/ext/80x53/uri/smmf.logic-immo.com/mmf/ads/photo-prop-440x330/24c/a/ad22d7bb-facf-41d4-b8d5-83d1ca9e8e27.jpg
GEThttps://img.lemde.fr/ext/80x53/uri/smmf.logic-immo.com/mmf/ads/photo-prop-440x330/4a9/7/7707e122-c1b5-4d16-9b2a-7198b0c40a9c.jpg
GEThttps://img.lemde.fr/ext/80x53/uri/smmf.logic-immo.com/mmf/ads/photo-prop-440x330/cab/1/1f9e960b-d7e9-4186-87c1-ab1f4b486c8e.jpg
GEThttps://img.lemde.fr/ext/80x53/uri/sphoto2.lacentrale.fr/photo/lc/E1/04/00/E104002071.jpg
GEThttps://img.lemde.fr/ext/80x53/uri/sphoto2.lacentrale.fr/photo/lc/E1/03/87/E103877669.jpg
GEThttps://img.lemde.fr/ext/80x53/uri/sphoto2.lacentrale.fr/photo/lc/W1/01/25/W101254937_17.jpg
Error: ConsentString - You must provide an object when setting the global vendor list common.js:12:26342
Error while calling actor 'domnode's method 'getImageData' protocol.js:1042:13
imageToImageData@resource://devtools/server/actors/inspector/utils.js:248:9
async*getImageData@resource://devtools/server/actors/inspector/node.js:432:32
handler@resource://devtools/shared/protocol.js:1189:37
onPacket@resource://devtools/server/main.js:1291:58
receiveMessage@resource://devtools/shared/transport/child-transport.js:66:16
MessageListener.receiveMessage*_addListener@resource://devtools/shared/transport/child-transport.js:40:14
ready@resource://devtools/shared/transport/child-transport.js:57:10
_onConnection@resource://devtools/server/main.js:880:15
connectToParent@resource://devtools/server/main.js:296:17
onConnect<@resource://devtools/server/startup/frame.js:59:35
exports.makeInfallible/<@resource://devtools/shared/ThreadSafeDevToolsUtils.js:109:22
MessageListener.receiveMessage*@resource://devtools/server/startup/frame.js:80:5
@resource://devtools/server/startup/frame.js:160:5
protocol.js:1045:15
Error: ConsentString - You must provide an object when setting the global vendor list common.js:12:26342
Status: UNCONFIRMED → NEW
Component: Untriaged → File Handling
Ever confirmed: true
OS: Unspecified → All
Hardware: Unspecified → All
See Also: → 1327563, 1387383, 1454239
Summary: can't record a page → Save Page As, Complete doesn't save the page correctly

Do other browsers do a better job?

Fundamentally, this is an impossible problem. If we save just the HTML as it is at that point, without any scripts, things don't work well.

If we save the HTML with scripts, the scripts will re-run when you open the saved HTML, but the modified HTML will not match the script's expectations.

It is impossible for the browser to divine which strategy works best for the webpage.

Flags: needinfo?(gingerbread_man)
Flags: needinfo?(epistemepromeneur)

Chrome fails as well.

Pocket does a better job: web page is recorded and well displayed (HTML) but there is no statistical graphics.
And we get a bonus: a link to the original.

I suggest Firefox must do this minimum job (record text and add a link to original page) and warn that the page is incomplete.

Flags: needinfo?(epistemepromeneur)

We won't be addressing this specific issue individually, as the root cause isn't fixable "just" for lemonde or something like that.

We don't currently have plans to rewrite "save as" functionality from scratch (which is effectively what comment #3 would require). There are all kinds of things we could do here (e.g. a library / list of saved pages and their originals, and, when opening them, controls over whether they're allowed to make remote requests, etc. etc.), but no plans to do them at this time.

Status: NEW → RESOLVED
Closed: 5 years ago
Flags: needinfo?(gingerbread_man)
Resolution: --- → WONTFIX

(In reply to :Gijs (he/him) from comment #2)

Do other browsers do a better job?

For what it's worth, Vivaldi loads the main image, but only when saving as MHTML (bug 40873). The charts are still static. I haven't checked the ad images beause this is already closed and I don't see the point in turning off my ad blocker in this case.

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