Open Bug 1914409 Opened 2 months ago Updated 22 hours ago

NS_BINDING_ABORTED error when navigating to http://guinea-pig.webdriver.io/ due to HTTPS-only mode

Categories

(Remote Protocol :: WebDriver BiDi, defect, P3)

defect

Tracking

(Not tracked)

People

(Reporter: whimboo, Unassigned)

References

(Blocks 1 open bug)

Details

(Whiteboard: [webdriver:m14])

Attachments

(1 file)

(In reply to Christian Bromann from bug 1908515 comment #12)

I've created a reproduction case: https://github.com/christian-bromann/bidi-issue-ff .. just run npm install and then node test.js.

As it looks like this happens only for the first time I navigate to that page. Further navigation commands return success. To reproduce the following code can be run in the BiDi demo client:

(async function() {
    await sendCommand("session.new", { capabilities: {} });

    await sendCommand("session.subscribe", {"events":["log.entryAdded","browsingContext.contextCreated","browsingContext.contextDestroyed"]});
    await sendCommand("script.addPreloadScript", {"functionDeclaration":"function customElementWrapper() {\n    const origFn = customElements.define.bind(customElements);\n    customElements.define = function (name, Constructor, options) {\n        class WdioWrapperElement extends Constructor {\n            connectedCallback() {\n                super.connectedCallback && super.connectedCallback();\n                let parentNode = this;\n                while (parentNode.parentNode) {\n                    parentNode = parentNode.parentNode;\n                }\n                console.debug('[WDIO]', 'newShadowRoot', this, parentNode);\n            }\n            disconnectedCallback() {\n                super.disconnectedCallback && super.disconnectedCallback();\n                console.debug('[WDIO]', 'removeShadowRoot', this);\n            }\n        }\n        return origFn(name, WdioWrapperElement, options);\n    };\n}"});
  
    let res = await sendCommand("browsingContext.getTree", {});

    const context = res.result.contexts[0].context;
    await sendCommand("browsingContext.navigate", {
      context,
      url: "http://guinea-pig.webdriver.io/",
      wait: "complete"
    });

    // Do stuff ...
  })()

(In reply to Alexandra Borovova [:Sasha] from bug 1908515 comment #15)

I did a bit of testing and I think with the http://guinea-pig.webdriver.io/ page the issue is that it's http page, I've tried also a couple other pages (e.g. http://help.websiteos.com/websiteos/example_of_a_simple_html_page.htm) and they also triggered NS_BINDING_ABORTED error on the first navigation.

(In reply to Henrik Skupin [:whimboo][⌚️UTC+2] from bug 1908515 comment #16)

Ah, could this be maybe related to the HTTPS-only mode and that we are trying to forward to https://guinea-pig.webdriver.io/ but that is not available and we run into an error page.

Attached file BCWebProgress:5 log

As the log shows we seem to return early because of a STOP_STATE for about:home (which is the currently loaded page), and then we continue with loading the page:

1724337703839	RemoteAgent	TRACE	[4] NavigationListenerChild Loading state: flags: 131088, status: 2152398850,  isStart: false, isStop: true, isNetwork: false, isBindingAborted: true, targetURI: http://guinea-pig.webdriver.io/
1724337703839	RemoteAgent	TRACE	[4] NavigationListenerChild Loading state: flags: 983041, status: 0,  isStart: true, isStop: false, isNetwork: true, isBindingAborted: false, targetURI: http://guinea-pig.webdriver.io/
[Parent 14298: Main Thread]: I/BCWebProgress OnStateChange({isTopLevel:1, isLoadingDocument:1}, {URI:http://guinea-pig.webdriver.io/, originalURI:http://guinea-pig.webdriver.io/}, STATE_STOP|STATE_IS_NETWORK|STATE_IS_WINDOW, NS_BINDING_ABORTED) on {top:1, id:4, url:about:home}
1724337703844	RemoteAgent	TRACE	[4] ProgressListener Loading state: isStart=false isStop=true status=0x804b0002, loadType=0x200001
1724337703844	RemoteAgent	TRACE	[4] ProgressListener Stop: has error=true url=about:home
1724337703845	RemoteAgent	DEBUG	WebDriverBiDiConnection 75ef6ea6-8096-44f0-8ebb-192781f5912b <- {"type":"error","id":9,"error":"unknown error","message":"Error: NS_BINDING_ABORTED","stacktrace":"#checkLoadingState@chrome://remote/content/shared/Navigate.sys.mjs:328:28\nonStateChange@chrome://remote/content/shared/Navigate.sys.mjs:423:28\n"}
1724337703846	RemoteAgent	TRACE	[594297b9-cb22-483a-b9c4-38c8313b5596] Skipping already tracked navigation, navigationId: 35407337-ba06-40eb-8295-ee19c5dadab6

This issue is actually related to the HTTPS-only mode settings in Firefox. A workaround for now is to set the preference dom.security.https_only_mode_ever_enabled_pbm to true so that this behavior is limited to private browsing windows, which are by default not used.

We have to check how best we can handle such cases with WebDriver by using the WebProgress listener.

Priority: -- → P3
Summary: NS_BINDING_ABORTED error when navigating to http://guinea-pig.webdriver.io/ → NS_BINDING_ABORTED error when navigating to http://guinea-pig.webdriver.io/ due to HTTPS-only mode

As discussed internally lets set as backlog for M12 for now.

Severity: -- → S3
Whiteboard: [webdriver:m12]
Whiteboard: [webdriver:m12] → [webdriver:m13]
Whiteboard: [webdriver:m13] → [webdriver:m14]
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: