Skip to content
This repository was archived by the owner on Apr 12, 2024. It is now read-only.
This repository was archived by the owner on Apr 12, 2024. It is now read-only.

$SnifferProvider incorrectly detect NW.js as not supporting history API #15474

Closed
@ghostoy

Description

@ghostoy

Note: for support questions, please use one of these channels: https://github.com/angular/angular.js/blob/master/CONTRIBUTING.md#question. This repository's issues are reserved for feature requests and bug reports.

Do you want to request a feature or report a bug?

bug

What is the current behavior?

$SnifferProvider detects NW.js as Chrome App, therefore not supporting history API. This caused angular-ui-router buggy with html5Mode on.

If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem via https://plnkr.co or similar (template: http://plnkr.co/edit/tpl:yBpEi4).

Load an Angular.js app in NW.js and check the value of $sniffer.history in DevTools. See nwjs/nw.js#5478 for sample app.

What is the expected behavior?

Should return true for NW.js app

What is the motivation / use case for changing the behavior?

See nwjs/nw.js#5478

Which versions of Angular, and which browser / OS are affected by this issue? Did this work in previous versions of Angular? Please also test with the latest stable and snapshot (https://code.angularjs.org/snapshot/) versions.

1.5.7

Other information (e.g. stacktraces, related issues, suggestions how to fix)

NW.js app can make use both Chrome App APIs and Node.js APIs. So $SnifferProvider detects NW.js app as Chrome App. But NW.js app supports HTML5 history API, which is different from Chrome App.

Fix can be done by changing following lines in $SnifferProvider:

        isNwjs = $window.nw && $window.nw.process,
        hasHistoryPushState = (isNwjs || !isChromePackagedApp) && $window.history && $window.history.pushState,

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions