Opened 5 years ago

Closed 5 years ago

Last modified 5 years ago

#673 closed defect (fixed)

Use of xmlns attribute in XSLT template causes Chrome to display a blank page.

Reported by: Innominate Assignee:
Priority: P2 Milestone: Adblock-Plus-1.8.4-for-Chrome-Opera-Safari
Module: Platform Keywords:
Cc: sebastian, mapx, philll Blocked By:
Blocking: Platform:
Ready: no Confidential: no
Tester: Verified working: no
Review URL(s):

http://codereview.adblockplus.org/6316561677680640

Description

Environment

Windows 7
Chrome 35.0.1916.153

Adblock Plus 1.8.3
All filter lists disabled, ABP disabled for the site.

How to reproduce

Use <html xmlns="http://www.w3.org/1999/xhtml"> in an XSLT template.

Disabling adblock's filters, or disabling it sitewide has no effect. Disabling the extension resolves the issue.

Observed behaviour

A blank page is displayed.

Example: https://innomi.com/abp/broken.xml

Expected behaviour

The page should render.

Example: https://innomi.com/abp/works.xml

Change History (6)

comment:1 Changed 5 years ago by mapx

  • Cc sebastian mapx added
  • Component changed from Unknown to Platform
  • Priority changed from Unknown to P2

comment:2 Changed 5 years ago by philll

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

See #659

comment:3 Changed 5 years ago by sebastian

  • Cc philll added
  • Resolution duplicate deleted
  • Status changed from closed to reopened

It's similar to, but not a duplicate of #659. Both issues result in rendering the page blank, because <shadow> is just an ordinary element, but not an insertion point in the context of XML.

However in #659 an ordinary XML document was used. And since #581, no shadow root is created anymore when document.documentElement is not an HTMLElement, which fixes that issue.

But here we have an XHTML document that was created by an XSLT transform. So we need to do something else to fix this issue.

comment:4 Changed 5 years ago by sebastian

  • Review URL(s) modified (diff)
  • Status changed from reopened to reviewing

In the case of an XHTML element created by and XSLT transform, document.documentElement is an HTMLElement. However elements returned by document.createElement() don't behave like they would in HTML. I am not sure whether this a Chrome bug or just how XSLT is supposed to work. But we can just work around that issue by checking whether documentis an HTMLDocument.

Last edited 5 years ago by sebastian (previous) (diff)

comment:5 Changed 5 years ago by sebastian

  • Resolution set to fixed
  • Status changed from reviewing to closed

comment:6 Changed 5 years ago by sebastian

  • Milestone set to Adblock-Plus-for-Chrome-Opera-Safari-next
Note: See TracTickets for help on using tickets.