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.

Reply via email to