Opened 3 months ago

Last modified 3 months ago

#7447 new defect

Tab loading indicator shown indefinitely when Adblock Plus is installed and enabled

Reported by: greiner Assignee:
Priority: Unknown Milestone:
Module: Platform Keywords:
Cc: kzar, sebastian, ukacar, mjethani Blocked By:
Blocking: Platform: Chrome
Ready: no Confidential: no
Tester: Unknown Verified working: no
Review URL(s):

Description (last modified by mjethani)

Environment

Ubuntu 18.10
Chromium 73 or Opera 58
Adblock Plus 3.5.1

How to reproduce

  1. Create an empty HTML page and add a <script> tag in its <body> with the below content.
  2. Access HTML page through local web server
  3. Whitelist page
  4. Reload page
window.addEventListener("load", function()
{
  let iframe = document.createElement("iframe");
  document.body.appendChild(iframe);
  
  let doc = iframe.contentWindow.document;
  doc.write("");
});

See also https://www.pixfuture.com/adtests/hb.html

Observed behaviour

Tab's loading indicator keeps spinning regardless of whether page is whitelisted.

Expected behaviour

Tab's loading indicator goes away quickly.

Notes

  • When Adblock Plus is uninstalled / totally disabled the problem no longer happens.
  • We can't reproduce the problem on Firefox 66.0.2.
  • This appears to be a bug in Chrome (see https://crbug.com/951694)

Change History (9)

comment:1 Changed 3 months ago by kzar

  • Cc sebastian added

comment:2 Changed 3 months ago by greiner

  • Description modified (diff)

comment:3 Changed 3 months ago by kzar

  • Cc ukacar added
  • Description modified (diff)

comment:4 Changed 3 months ago by greiner

  • Description modified (diff)
  • Summary changed from Tab loading indicator shown indefinitely when whitelisted to Tab loading indicator shown indefinitely when Adblock Plus is installed and enabled

The example code's behavior was independent of whether Adblock Plus was installed, unlike what we see on the linked page. Therefore I updated the code in the ticket description to match the page's behavior.

comment:5 Changed 3 months ago by sebastian

  • Cc mjethani added

comment:6 Changed 3 months ago by mjethani

I'm able to reproduce this with the following sample extension on Google Chrome Canary (Version 75.0.3759.4 (Official Build) canary (64-bit)):

{
  "manifest_version": 2,
  "name": "chrome-postload-bug-example",
  "version": "1",
      
  "content_scripts": [
    { 
      "all_frames": true, 
      "matches": ["<all_urls>"],
      "match_about_blank": true,
      "run_at": "document_end",
      "js": ["content.js"]
    }
  ]
}
// content.js
console.log("content.js");

This appears to be an issue with Chrome. If there's a content script that must run at document_end, with the HTML in the issue report above, the page will continue to appear to load forever. This is the case even if the content script is blank.

comment:7 Changed 3 months ago by sebastian

Nice find! We should file a Chrome bug. Other than that, I don't see anything we can do about it.

comment:8 Changed 3 months ago by mjethani

I have reported it now at https://crbug.com/951694

comment:9 Changed 3 months ago by mjethani

  • Description modified (diff)
Note: See TracTickets for help on using tickets.