<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="#0563C1" vlink="#954F72">
<div class="WordSection1">
<p class="MsoNormal">I’m porting a Chrome extension to a Firefox extension that will use the WebExtension API.  These extensions use Native Messaging to communicate with an application.  I had expected to be able to use the same manifest (json) file for the
 application.  The specs for the manifest in Chrome and Firefox are very similar, differing only in the keywords used to set the IDs of the extensions that the application can communicate with.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Chrome uses this in the json:<o:p></o:p></p>
<p class="MsoNormal">     <span style="font-size:9.5pt;font-family:Consolas;color:#2E75B6">
"allowed_origins"</span><span style="font-size:9.5pt;font-family:Consolas;color:black">: [
</span><span style="font-size:9.5pt;font-family:Consolas;color:#A31515">"<ID of the extension>"</span><span style="font-size:9.5pt;font-family:Consolas;color:black"> ]<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:9.5pt;font-family:Consolas;color:black"><o:p> </o:p></span></p>
<p class="MsoNormal">Firefox uses:<o:p></o:p></p>
<p class="MsoNormal" style="text-autospace:none">    <span style="font-size:9.5pt;font-family:Consolas;color:#2E75B6">
"allowed_extensions"</span><span style="font-size:9.5pt;font-family:Consolas;color:black">: [
</span><span style="font-size:9.5pt;font-family:Consolas;color:#A31515">"<ID of the extension>"</span><span style="font-size:9.5pt;font-family:Consolas;color:black"> ]<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:9.5pt;font-family:Consolas;color:black"><o:p> </o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><o:p> </o:p></p>
<p class="MsoNormal" style="text-autospace:none">I had expected that I could just add the “allowed_extensions” keyword and array to the manifest, allowing the use of a single manifest file for both browsers.  Chrome seems happy to have both keywords present
 in the file.  It just ignores the one it does not care about.  Firefox does not like it so much.  It refuses to establish the Port connection between the extension and the app when the “allowed_origins” is present.<o:p></o:p></p>
<p class="MsoNormal" style="text-autospace:none"><o:p> </o:p></p>
<p class="MsoNormal" style="text-autospace:none">Is this the expected behavior or is it a bug in how Firefox is parsing the json?<o:p></o:p></p>
<p class="MsoNormal" style="text-autospace:none"><o:p> </o:p></p>
<p class="MsoNormal" style="text-autospace:none">The work-around is no big deal.  I will need to use a separate manifest file for Chrome and Firefox.  It just seems unexpected to me.<o:p></o:p></p>
<p class="MsoNormal" style="text-autospace:none"><o:p> </o:p></p>
<p class="MsoNormal" style="text-autospace:none">Wayne<o:p></o:p></p>
</div>
</body>
</html>