Compare Revisions

Getting the page URL in NPAPI plugin

Change Revisions

Revision 70913:

Revision 70913 by Nickolay on

Revision 70914:

Revision 70914 by Nickolay on

Title:
Getting the page URL in NPAPI plugin
Getting the page URL in NPAPI plugin
Slug:
Getting_the_page_URL_in_NPAPI_plugin
Getting_the_page_URL_in_NPAPI_plugin
Tags:
Add-ons, Plugins
Add-ons, Plugins
Content:

Revision 70913
Revision 70914
n8      Sometimes, you want to restrict a plugin to be loadable onln8      Sometimes, you want to restrict an <a href="en/Plugins">NPA
>y from a certain URL or domain or scheme. Or whenever you make ne>PI plugin</a> to be loadable only from a certain URL or domain or
>twork requests yourself, you almost always need to enforce same-o> scheme. Or whenever you make network requests yourself, you almo
>rigin policy.>st always need to enforce same-origin policy.
n11      There's unfortunately no trivial way to do that, but you can11      There's unfortunately no trivial way to do that, but you ca
>n still do it, by asking the browser for the page URL during plug>n still do it, by asking the browser for the page URL during plug
>in init. Then you can just refuse to do anything, if you don't li>in initialization. Then you can just refuse to do anything, if yo
>ke the URL, or you can compare it with the other URL you want to >u don't like the URL, or you can compare it with the other URL yo
>contact.>u want to contact.
n62      If you want the URI of the resource for which the plug-in in62      If you want the URI of the resource for which the plug-in i
>s invoked, the most NPAPI-friendly way to do that is to get it fr>s invoked, the most NPAPI-friendly way to do that is to get it fr
>om the NPStream that is passed to NPP_NewStream.>om the {{template.Npapi("NPStream")}} that is passed to {{templat
 >e.Npapi("NPP_NewStream")}}.
n84      The NPAPI gives you the ability to get access to the nsIDOMn84      The NPAPI gives you the ability to get access to the <a hre
>Window object which contains the current plugin via the <a class=>f="en/NsIDOMWindow">nsIDOMWindow</a> object which contains the cu
>"external" href="http://lxr.mozilla.org/mozilla/source/modules/pl>rrent plugin via the <a class="external" href="http://lxr.mozilla
>ugin/base/public/npapi.h#420">NPNVDOMElement enum</a> passed to N>.org/mozilla/source/modules/plugin/base/public/npapi.h#420">NPNVD
>PN_GetValue. This returns an addrefed <a class="external" href="h>OMElement enum</a> passed to {{template.Npapi("NPN_GetValue")}}. 
>ttp://lxr.mozilla.org/mozilla/source/dom/public/idl/core/nsIDOMEl>This returns an addrefed <a class="external" href="http://lxr.moz
>ement.idl">nsIDOMElement</a> interface pointer from which you can>illa.org/mozilla/source/dom/public/idl/core/nsIDOMElement.idl">ns
> call .ownerDocument (on <a class="external" href="http://lxr.moz>IDOMElement</a> interface pointer from which you can call <code>.
>illa.org/mozilla/source/dom/public/idl/core/nsIDOMNode.idl#82">ns>ownerDocument</code> (on <a class="external" href="http://lxr.moz
>IDOMNode</a>), QueryInterface that object to <a class="external" >illa.org/mozilla/source/dom/public/idl/core/nsIDOMNode.idl#82">ns
>href="http://lxr.mozilla.org/mozilla/source/dom/public/idl/core/n>IDOMNode</a>), QueryInterface that object to <a class="external" 
>sIDOM3Document.idl#63">nsIDOM3Document</a>, and call .documentURI>href="http://lxr.mozilla.org/mozilla/source/dom/public/idl/core/n
>.>sIDOM3Document.idl#63">nsIDOM3Document</a>, and call <code>.docum
 >entURI</code>.
t92      <li>compatible with older versions of the browser (probablyt92      <li>compatible with older versions of the Mozilla (probably
> back to Mozilla 1.0)> back to Mozilla 1.0)

Back to History