Opened on 06/12/2017 at 03:53:53 AM

Closed on 06/13/2017 at 12:32:54 PM

#5310 closed defect (invalid)

Multiple versions of the same page showing in the Back buttons

Reported by: toml-in-pbi Assignee:
Priority: Unknown Milestone:
Module: Unknown Keywords:
Cc: trev Blocked By:
Blocking: Platform: Firefox
Ready: no Confidential: no
Tester: Unknown Verified working: no
Review URL(s):

Description

Environment

Windows 10 Pro 1607
Firefox 53.0.3 64 bit
Adblock Plus 2.9.1
Easylist and Adblock Warning Removal List

How to reproduce

  1. http://www.theblaze.com/news/2017/06/11/more-footage-released-of-cnn-allegedly-staging-pro-muslim-protest-and-its-incredibly-damming/
  2. (IMPORTANT) Wait 2 or 3 minutes for the page to COMPLETELY LOAD ALL LINKS
  3. Watch the NEWS video while on this page.
  4. Click and hold the (Firefox browser) back button

Observed behaviour

You will observe Multiple Versions of the SAME page in the Back Button.

  1. After DISABLING Adblock Plus, the problem goes away.

Expected behaviour

During Step number 2, you should ONLY see ONE copy of the page link in history (instead of multiple-sometimes 6 or 7 pages are erroneously shown.)

Attachments (1)

Adblock Plus Bug.JPG (231.2 KB) - added by toml-in-pbi on 06/12/2017 at 03:54:32 AM.

Download all attachments as: .zip

Change History (3)

Changed on 06/12/2017 at 03:54:32 AM by toml-in-pbi

comment:1 Changed on 06/12/2017 at 04:24:03 PM by mapx

  • Cc trev added

comment:2 Changed on 06/13/2017 at 12:32:54 PM by trev

  • Resolution set to invalid
  • Status changed from new to closed

I could trace this behavior to http://launch.newsinc.com/185/js/models/Ndn/Widget.js script in that webpage, it has the following function:

function startSession(e) { // http://launch.newsinc.com/185/js/models/Ndn/Widget.js:158
  n.prototype.startSession.apply(this, arguments);
  var t = e.duration,
    i = s.generateCode(e),
    o = this.get("iframeElement").contentDocument;
  if (o.open(), o.write(i), o.close(), this.debug({
      iframeContent: i
    }, !0), this.trigger("adRequest", {
      receivedData: {},
      playerInstanceType: 6
    }), this.trigger("adStart", {}), this.set("duration", t), t > 0) {
    var a = this;
    setTimeout(this.makeSessionClosure(function() {
      a.trigger("adEnd"), a.endSession()
    }), 1e3 * t)
  }
}

Note the o.open(), o.write(i), o.close() part - it will replace the contents of a frame in that page. As a side-effect, this will also generate a new history entry, if you go back the contents of this ad frame will be restored. Aren't you happy about that? :-)

You can contact the website owner and point out that in year 2017 they are no longer restricted to page manipulation methods that were available in 1995. But there is little else I can help you with, I'm not going to spend time on figuring out why that website's code took a different turn with ads blocked.

Add Comment

Modify Ticket

Change Properties
Action
as closed .
The resolution will be deleted. Next status will be 'reopened'.
to The owner will be changed from (none).
 
Note: See TracTickets for help on using tickets.