Microsoft Edge notification in an extension
<p>Can I use notifications in an Edge extension?</p>

<p>I'm converting a chrome extension to Edge and this extension uses notifications but it's crashing in Edge.  After some research I found Edge notifications are different from chrome.  So I created a test html page and ran it on IIS localhost.</p>

<pre><code>&lt;!DOCTYPE html&gt;

&lt;html lang="en-US"&gt;
&lt;head&gt;
&lt;meta charset="UTF-8" /&gt;
&lt;title&gt;Test Notifications&lt;/title&gt;

&lt;/head&gt;
&lt;body&gt;
&lt;script&gt;
        if ( "Notification" in window ) {
            let ask = Notification.requestPermission();

            ask.then( permissions =&gt; {
                if (permissions === "granted") {
                let message = new Notification ("Title", { body: "Hello Nurse", icon: "icons/icon.png" });

                }
            });
        }
&lt;/script&gt;

    &lt;h2&gt;Test Notifications&lt;/h2&gt;
    &lt;p&gt;Please turn on notifications&lt;/p&gt;

&lt;/body&gt;
&lt;/html&gt;
</code></pre>

<p>Notifications worked!  Now I tried plugging this into the extension and I don't get the permission window.  Do you know why that's not coming up?  Sometimes I get a message saying notifications is disabled for unknown sources.  I click the button that says "turn on anyways" but notification still doesn't show up.  </p>

<p>Are notifications blocked on all extensions or is it because I loaded this from my machine instead of the store?  When this gets delivered to the store, will the notifications work?</p>

<hr>

<h2>Edit, Additional Information</h2>

<p>I always forget something when writing these questions.</p>

<p>Manifest.json</p>

<pre><code>{
"manifest_version": 2,
"name": "__MSG_extension_name__",
"version": "XXXXX",
"description": "__MSG_extension_description__",
"author": "XXXXX",
"icons": {
    "16": "icons/icon16.png",
    "32": "icons/icon32.png",
    "48": "icons/icon48.png",
    "64": "icons/icon64.png",
    "128": "icons/icon.png"
},
"default_locale": "en_US",
"browser_action": {
    "default_icon": {
        "16": "icons/icon16.png",
        "32": "icons/icon32.png",
        "48": "icons/icon48.png",
        "64": "icons/icon64.png",
        "128": "icons/icon.png"
    },
    "default_title": "__MSG_extension_name__",
    "default_popup": "popup.html"
},
"background": {
    "page": "background.html",
    "persistent": true
}, 
"homepage_url": "http://www.xxxxx.com/",
"inprivate": "spanning",
"minimum_edge_version": "33.14281.1000.0",
"offline_enabled": true,
"permissions": [
    "&lt;all_urls&gt;",
    "notifications",
    "tabs",
    "webRequest",
    "webRequestBlocking",
    "webNavigation",
    "storage",
    "unlimitedStorage",
    "contextMenus"
],
"content_scripts": [
    {
        "css": [
            "css/script.css",
            "lib/jQuery-ui/jquery-ui.css"
        ],
        "js": [
            "lib/jQuery/jquery.min.js",
            "lib/jQuery-ui/jquery-ui.min.js",
            "js/script.min.js",
            "js/xxxxx.JSInterface.Types.min.js",
            "js/xxxxx.JSInterface.Utility.min.js",
            "js/xxxxx.JSInterface.API.min.js",
            "content_script.min.js"
        ],
        "matches": [
            "http://*/*",
            "https://*/*"
        ],
        "run_at": "document_end",
        "all_frames": true
    }
],
"web_accessible_resources": [
    "css/script.css",
    "icons/*.png",
    "img/*.png",
    "js/script.min.js",
    "js/xxxxx.JSInterface.Types.min.js",
    "js/xxxxx.JSInterface.Utility.min.js",
    "js/xxxxx.JSInterface.API.min.js",
    "lib/jQuery/jquery.min.js",
    "lib/jQuery-ui/jquery-ui.min.js",
    "lib/jQuery-ui/images/*.png",
    "lib/Fancytree/dist/skin-win8/ui.fancytree.css",
    "lib/Fancytree/dist/skin-win8/icons.gif",
    "lib/Fancytree/dist/skin-lion/ui.fancytree.css",
    "lib/Fancytree/dist/skin-lion/icons.gif",
    "lib/DataTables/media/images/*.png"
],
"-ms-preload": {
    "backgroundScript": "backgroundScriptsAPIBridge.js",
    "contentScript": "contentScriptsAPIBridge.js"
}
}
</code></pre>

<p>I tried to edit out all my company information, if I forgot any please let me know.</p>

<p>To summarize this I have a background page that loads 5 javaScript files.  Also have a pop up html file that pops up to as for user name and password.  This file has it's own javaScript file that checks the user name and password and notifies the results.</p>