Status: Untriaged
Owner: ----
New issue 4071 by [email protected]: Prefetcher is overly aggressive and
prefetching content within plaintext tags
https://code.google.com/p/v8/issues/detail?id=4071
x-post from https://code.google.com/p/chromium/issues/detail?id=483253
Version of Google Chrome: 42.0.2311.90
Summary:
At Mobify, we use the plaintext tag to prevent resources from loading, in
order to optimally rewrite the website to be mobile-friendly using
JavaScript templating. You can read more about how this works here:
https://hacks.mozilla.org/2013/03/capturing-improving-performance-of-the-adaptive-web/.
A recent change to V8 seems to have enabled the prefetcher thread on every
page load instead of waiting until an external resource is found in the
HTML. This change now causes 'resource leakage' as multiple resources are
downloaded before the plaintext tag can be written into the document.
Affected URLs:
buy.garmin.com, shop.foxhead.com, shop.lululemon.com, www.10-s.com,
www.adweek.com, www.afloral.com, www.aicpa.org, www.anntaylor.com,
www.appleseeds.blair.com, www.bedfordfair.blair.com, www.beyondtherack.com,
www.bicycling.com, www.blackcircles.com, www.blair.com, www.bodycandy.com,
www.bosch-bt.ru, www.bosch-home.at, www.bosch-home.be, www.bosch-home.ca,
www.bosch-home.cl, www.bosch-home.co.kr, www.bosch-home.co.kr,
www.bosch-home.co.nz, www.bosch-home.co.uk, www.bosch-home.com,
www.bosch-home.com.au, www.bosch-home.com.hk, www.bosch-home.com.my,
www.bosch-home.com.sg, www.bosch-home.com.tw, www.bosch-home.comus,
www.bosch-home.dk, www.bosch-home.es, www.bosch-home.fi, www.bosch-home.fr,
www.bosch-home.gr, www.bosch-home.lu, www.bosch-home.ma, www.bosch-home.nl,
www.bosch-home.no, www.bosch-home.pe, www.bosch-home.pl, www.bosch-home.pt,
www.bosch-home.ro, www.bosch-home.se, www.brides.com,
www.burlingtoncoatfactory.com, www.californiaclosets.com, www.carnival.com,
www.chefscatalog.com, www.chewy.com, www.christies.com,
www.clearlycontacts.ca, www.clearlycontacts.co.nz,
www.clearlycontacts.com.au, www.coastal.com, www.coastallens.com,
www.coasthotels.com, www.conns.com, www.contactsan.com, www.crocs.ca,
www.crocs.co.jp, www.crocs.co.kr, www.crocs.co.nl, www.crocs.co.uk,
www.crocs.com, www.crocs.de, www.crocsaustralia.com.au, www.ctshirts.com,
www.drapers.blair.com, www.eddiebauer.com, www.extrastores.comar-sa,
www.frenchtoast.com, www.goldviolin.blair.com, www.goldviolin.blair.com,
www.gq.com, www.hautelook.com, www.ideel.com, www.inkcartridges.com,
www.ioffer.com, www.ivivva.com, www.jtv.com, www.lancome-usa.com,
www.lhw.com, www.linensource.blair.com, www.loft.com, www.matalan.co.uk,
www.maxlens.com, www.menshealth.com, www.mystarbucksidea.com, www.neff.de,
www.nordstromrack.com, www.normthompson.blair.com,
www.oldpueblotraders.blair.com, www.oldpueblotraders.blair.com,
www.outlet.blair.com, www.outrigger.com, www.oxo.com, www.perfumania.com,
www.petflow.com, www.prevention.com, www.productsandservices.bt.com,
www.pureformulas.com, www.roadrunnersports.com, www.runnersworld.com,
www.sahalie.blair.com, www.sharperimage.com, www.siemens-home.at,
www.siemens-home.be, www.siemens-home.co.il, www.siemens-home.co.uk,
www.siemens-home.com, www.siemens-home.com.au, www.siemens-home.com.hk,
www.siemens-home.de, www.siemens-home.dk, www.siemens-home.es,
www.siemens-home.fi, www.siemens-home.fr, www.siemens-home.gr,
www.siemens-home.lu, www.siemens-home.nl, www.siemens-home.no,
www.siemens-home.pl, www.siemens-home.pt, www.siemens-home.se,
www.skinnyties.com, www.solutions.blair.com, www.spectrum.ieee.org,
www.stelladot.com, www.superdry.com, www.superdry.de, www.superdry.dk,
www.superdry.es, www.superdry.fi, www.superdry.fr, www.superdry.it,
www.superdry.nl, www.superdrystore.ca, www.superdrystore.no,
www.superdrystore.se, www.supergroup.co.uk, www.techvibes.com,
www.theinstitute.ieee.org, www.theknot.com, www.theory.com,
www.thermador.com, www.thinkgeek.com, www.threadless.com,
www.togshop.blair.com, www.togshop.blair.com, www.tommybahama.com,
www.triabeauty.com, www.unicef.org, www.vincecamuto.com,
www.vineyardvines.com, www.whsmith.co.uk, www.whsmith.com,
www.wintersilks.blair.com, www.womenshealthmag.com, www.wwd.com,
www.yasuilens.com and others.
Other browsers tested:
Safari (Desktop/Mobile) : OK
Chrome 42.*+ (Desktop) : FAIL
Chrome 42.*+ (Android) : FAIL
Chrome 42.*+ (iOS) : FAIL
Chrome 41.* (Desktop) : OK
Chrome 41.* (Android) : OK
Chrome 41.* (iOS) : OK
What steps will reproduce the problem?
1. Launch Chrome 42.*+
2. Load the minimal test case attached
3. Fire up the developer tools and pay attention to the network tab
What is the expected result?
No network requests should be made since the plaintext tag we're writing
out should stop any further requests from being made on the page. This is
the bahaviour you see in the first attached screenshot where mobify.js is
the first resource that loads.
What happens instead?
Network requests for the scripts and images are made which seem to be
initialized by the prefetcher. This was not the default behaviour in
previous versions of Chrome, as the prefetcher thread did not spawn until
an external resource was discovered in the HTML. The most recent change
(http://blog.chromium.org/2015/03/new-javascript-techniques-for-rapid.html)
in V8 now seemingly starts a prefetcher thread immediately instead of
waiting until an external resource is discovered in the HTML. This
effectively breaks the plaintext tag, since by definition: "The HTML
Plaintext Element (<plaintext>) renders everything following the start tag
as raw text, without interpreting any HTML. There is no closing tag, since
everything after it is considered raw text." This behaviour can be seen in
the second attached screenshot.
Attachments:
capturing-test-case.html 745 bytes
Screen Shot 2015-04-30 at 1.44.12 PM.png 901 KB
Screen Shot 2015-04-30 at 1.46.35 PM.png 783 KB
--
You received this message because this project is configured to send all
issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings
--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
---
You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.