Compare Revisions

Overview of Mozilla embedding APIs

Change Revisions

Revision 96768:

Revision 96768 by Dosido on

Revision 96769:

Revision 96769 by Dosido on

Mozilla embedding APIs overview
Mozilla embedding APIs overview
"Embedding Mozilla"
"Embedding Mozilla"

Revision 96768
Revision 96769
n137      This function is the equivilent of do_QueryInterface exceptn137      This function is the equivilent of do_QueryInterface except
> that it performs the QI through a weak reference.http://www.mozi> that it performs the QI through a weak reference.
> Mozilla Embedding APIs 
n171      <b>nsServiceManager</b> The Service Manager is the central n171      <b>nsServiceManager</b>
>repository for accessing instances of the various XPCOM services. 
> Each service is represented by a singleton object which is insta 
>ntiated the first time it is requested and remains alive until th 
>e Service Manager is shut down, or the service is explicitly unlo 
172    </p>
173    <p>
174      The Service Manager is the central repository for accessing
 > instances of the various XPCOM services. Each service is represe
 >nted by a singleton object which is instantiated the first time i
 >t is requested and remains alive until the Service Manager is shu
 >t down, or the service is explicitly unloaded.
nn194      <b>nsMemory</b>
195    </p>
196    <p>
191      <b>nsMemory</b> The nsMemory service provides the global me197      The nsMemory service provides the global memory manager imp
>mory manager implementation for XPCOM. In addition to memory allo>lementation for XPCOM. In addition to memory allocation and relea
>cation and release, this service provides low memory notification>se, this service provides low memory notifications, called a memo
>s, called a memory pressure observers, which are notified when me>ry pressure observers, which are notified when memory is low - th
>mory is low - thus allowing cached resources to be freed.>us allowing cached resources to be freed.
nn220      <b>nsComponentManager</b>
221    </p>
222    <p>
214      <b>nsComponentManager</b> The nsComponentManager service is223      The nsComponentManager service is responsible for creating 
> responsible for creating new instances of XPCOM components. The >new instances of XPCOM components. The Component Manager is also 
>Component Manager is also responsible for registering and managin>responsible for registering and managing the class factories used
>g the class factories used for component creation...> for component creation...
n243      <b>nsURILoader</b> The nsURILoader service is responsible fn252      <b>nsURILoader</b>
>or targeting a URI at an appropriate content handler. A content h 
>andler may be an existing or new window, a helper application or  
>the Unknown Content Handler - if no other handler can be found fo 
>r the content-type. 
253    </p>
254    <p>
255      The nsURILoader service is responsible for targeting a URI 
 >at an appropriate content handler. A content handler may be an ex
 >isting or new window, a helper application or the Unknown Content
 > Handler - if no other handler can be found for the content-type.
nn275      <b>nsUnknownContentTypeHandler</b>
276    </p>
277    <p>
263      <b>nsUnknownContentTypeHandler</b> The UnknownContentTypeHa278      The UnknownContentTypeHandler service is the last resort of
>ndler service is the last resort of the URILoader when no other c> the URILoader when no other content handler can be located. If n
>ontent handler can be located. If no registered content handlers >o registered content handlers are available, the UnknownContentTy
>are available, the UnknownContentTypeHandler is notified.>peHandler is notified.
nn307      <b>Preferences Service</b>
308    </p>
309    <p>
292      <b>Preferences Service</b> The Preferences service provides310      The Preferences service provides access to persistent data 
> access to persistent data stored within a user's profile directo>stored within a user's profile directory.
n313    <h4 name="Profile_Manager_Service">n331    <p>
314      Profile Manager Service332      <b>Profile Manager Service</b>
315    </h4>333    </p>
n322    <h4 name="Document_Loader_Service_.28WebProgress.29">n340    <p>
323      Document Loader Service (WebProgress)341      <b>Document Loader Service (WebProgress)</b>
324    </h4>342    </p>
nn434      <b>Overview:</b>
435    </p>
436    <p>
416      <b>Overview:</b> Most of Gecko's functionality is exposed t437      Most of Gecko's functionality is exposed through the nsWebB
>hrough the nsWebBrowser component. The WebBrowser provides a simp>rowser component. The WebBrowser provides a simple mechanism for 
>le mechanism for other applications to leverage Gecko functionali>other applications to leverage Gecko functionality. Each instance
>ty. Each instance of a WebBrowser encapsulates a full featured HT> of a WebBrowser encapsulates a full featured HTML content area.
>ML content area. 
nn483      <b>Web Navigation</b>
484    </p>
485    <p>
462      <b>Web Navigation</b> The nsIWebNavigation interface is use486      The nsIWebNavigation interface is used to load URIs into th
>d to load URIs into the WebBrowser and provide access to session >e WebBrowser and provide access to session history capabilities -
>history capabilities - such as back and forward.> such as back and forward.
463    </p>
464    <p>487    </p>
465      <b>Clipboard</b> The WebBrowser exposes access to the syste
>m clipboard via the nsIClipboardCommands interface. This interfac 
>e supports cut/copy/paste operations on the current selection wit 
>hin the WebBrowser window. 
466    </p>488    <p>
489      <b>Clipboard</b>
467    <p>490    </p>
468      <b>Printing (not yet implemented)</b> Printing the contents
> of a DOMWindow within a WebBrowser is a two step process. First, 
> the printer and page options are collected via the nsIPrintOptio 
>ns interface. On most platforms this involves displaying a native 
> Print dialog box. Once all of the options have been set, the nsI 
>WebBrowserPrint interface is used to print the contents of the de 
>sired DOMWindow. 
469    </p>491    <p>
492      The WebBrowser exposes access to the system clipboard via t
 >he nsIClipboardCommands interface. This interface supports cut/co
 >py/paste operations on the current selection within the WebBrowse
 >r window.
470    <p>493    </p>
494    <p>
495      <b>Printing (not yet implemented)</b>
496    </p>
497    <p>
498      Printing the contents of a DOMWindow within a WebBrowser is
 > a two step process. First, the printer and page options are coll
 >ected via the nsIPrintOptions interface. On most platforms this i
 >nvolves displaying a native Print dialog box. Once all of the opt
 >ions have been set, the nsIWebBrowserPrint interface is used to p
 >rint the contents of the desired DOMWindow.
499    </p>
500    <p>
501      <b>Searching</b>
502    </p>
503    <p>
471      <b>Searching</b> Searching within a nsWebBrowser is control504      Searching within a nsWebBrowser is controlled via the nsIWe
>led via the nsIWebBrowserFind interface. The search is always per>bBrowserFind interface. The search is always performed within the
>formed within the DOMWindow which currently has the focus.> DOMWindow which currently has the focus.
472    </p>
473    <p>505    </p>
506    <p>
507      <b>Focus Management</b>
508    </p>
509    <p>
474      <b>Focus Management</b> Focus managment within the WebBrows510      Focus managment within the WebBrowser is accessed via the n
>er is accessed via the nsIWebBrowserFocus interface.>sIWebBrowserFocus interface.
n480      <b>Context Menu notifications</b> Right-click context menu n516      <b>Context Menu notifications</b>
>notifications are passed up to the embedding application through  
>the nsIContextMenuListener interface. These notifications allow t 
>he embedding application to display context menus based on user a 
>ctivity within the WebBrowser (such as a right-click on a hyperte 
>xt link). 
481    </p>
482    <p>517    </p>
518    <p>
519      Right-click context menu notifications are passed up to the
 > embedding application through the nsIContextMenuListener interfa
 >ce. These notifications allow the embedding application to displa
 >y context menus based on user activity within the WebBrowser (suc
 >h as a right-click on a hypertext link).
520    </p>
521    <p>
522      <b>Saving Documents</b>
523    </p>
524    <p>
483      <b>Saving Documents</b> <b>Notification Interfaces which th525      <b>Notification Interfaces which the embedding application 
>e embedding application should implement</b>>should implement</b>
t492      <b>nsISupports</b> Base Component Object Model interface. Tt534      <b>nsISupports</b>
>his interface provides runtime interface discovery and a referenc 
>e counted memory model fashioned after the Microsoft COM IUnknown 
> interface. <i>Interface status...</i> none <i>Interface definiti 
>on:</i> nsISupportsUtils.h 
493    </p>
494    <p>535    </p>
495      <br>
496      <b>nsIInterfaceRequestor</b> This Interface provides an int
>erface discovery mechanism which does not imply aggregation. <i>I 
>nterface status...</i> none <i>Interface definition:</i> nsIInter 
497    </p>536    <p>
537      Base Component Object Model interface. This interface provi
 >des runtime interface discovery and a reference counted memory mo
 >del fashioned after the Microsoft COM IUnknown interface.
498    <p>538    </p>
499      <b>nsIWeakReference</b> This interface is used to retern a 
>proxy reference to a component. <i>Interface status...</i> being  
>reviewed <i>Interface definition:</i> nsIWeakReference.idl 
500    </p>539    <p>
540      <i>Interface status...</i> none
501    <p>541    </p>
502      <b>nsISimpleEmunerator</b> This interface provides a simple
> enumeration abstraction. <i>Interface status...</i> being review 
>ed <i>Interface definition:</i> nsISimpleEnumerator.idl 
503    </p>542    <p>
543      <i>Interface definition:</i> nsISupportsUtils.h
504    <p>544    </p>
505      <b>nsIServiceManager</b> This interface allows access to gl
>obal services within mozilla. <i>Interface status...</i> none <i> 
>Interface definition:</i> nsIServiceManager.h 
506    </p>545    <p>
546      <br>
547      <b>nsIInterfaceRequestor</b>
507    <p>548    </p>
508      <b>nsIShutdownListener</b> This interface is used to receiv
>e notifications when the Service Manager is being shutdown. <i>In 
>terface status...</i> none <i>Interface definition:</i> nsIServic 
509    </p>549    <p>
550      This Interface provides an interface discovery mechanism wh
 >ich does not imply aggregation. <i>Interface status...</i> none
510    <p>551    </p>
511      <b>nsIComponentManager</b> This interface allows new instan
>ces of registered XPCOM components to be instantiated. <i>Interfa 
>ce status...</i> none <i>Interface definition:</i> nsIComponentMa 
512    </p>552    <p>
553      <i>Interface definition:</i> nsIInterfaceRequestor.idl
513    <p>554    </p>
514      <b>nsIFactory</b> This interface is used by the Component M
>anager to create new instances of a particular XPCOM component. E 
>ach component must provide a factory implementation for creating  
>new instances. <i>Interface status...</i> none <i>Interface defin 
>ition:</i> nsIFactory.idl 
515    </p>555    <p>
556      <b>nsIWeakReference</b>
516    <p>557    </p>
517      <b>nsIMemory</b> This interface provides access to the glob
>al memory management functionality. <i>Interface status...</i> be 
>ing reviewed <i>Interface definition:</i> nsIMemory.idl 
518    </p>558    <p>
559      This interface is used to retern a proxy reference to a com
519    <p>560    </p>
520      <b>nsIDOMWindow</b> This interface is used to represent the
> window containing a specific document. <i>Interface status...</i 
>> being reviewed <i>Interface definition:</i> nsIDOMWindow.idl 
521    </p>561    <p>
562      <i>Interface status...</i> being reviewed
522    <p>563    </p>
523      <b>nsIBaseWindow</b> This interface provides access to vari
>ous window operations. <i>Interface status...</i> being reviewed  
><i>Interface definition:</i> nsIBaseWindow.idl 
524    </p>564    <p>
565      <i>Interface definition:</i> nsIWeakReference.idl
525    <p>566    </p>
526      <b>nsIRequest</b> This interface provides a means to contro
>l various operations. <i>Interface status...</i> being reviewed < 
>i>Interface definition:</i> nsIRequest.idl 
527    </p>567    <p>
568      <b>nsISimpleEmunerator</b>
528    <p>569    </p>
529      <b>nsIWebBrowser</b> This is the primary interface to the W
>ebBrowser component. <i>Interface status...</i> being reviewed <i 
>>Interface definition:</i> nsIWebBrowser.idl 
530    </p>570    <p>
571      This interface provides a simple enumeration abstraction.
531    <p>572    </p>
532      <b>nsIWebBrowserSetup</b> This interface is used to enable 
>or disable various capabilities of a nsWebBrowser instance. <i>In 
>terface status...</i> being reviewed <i>Interface definition:</i> 
> nsIWebBrowserSetup.idl 
533    </p>573    <p>
574      <i>Interface status...</i> being reviewed
534    <p>575    </p>
535      <b>nsIWebBrowserChrome</b> This interface provides access t
>o the window containing an nsWebBrowser instance. <i>Interface st 
>atus...</i> being reviewed <i>Interface definition:</i> nsIWebBro 
536    </p>576    <p>
577      <i>Interface definition:</i> nsISimpleEnumerator.idl
537    <p>578    </p>
538      <b>nsIWebNavigation</b> This interface exposes the web navi
>gation functionality of the nsWebBrowser component. <i>Interface  
>status...</i> being reviewed <i>Interface definition:</i> nsIWebN 
539    </p>579    <p>
580      <b>nsIServiceManager</b>
540    <p>581    </p>
541      <b>nsIWebBrowserPersist</b> This interface exposes the save
>-as functionality of the nsWebBrowser component. <i>Interface sta 
>tus...</i> being reviewed <i>Interface definition:</i> nsIWebBrow 
542    </p>582    <p>
583      This interface allows access to global services within mozi
543    <p>584    </p>
544      <b>nsIWebBrowserPrint</b> This interface allows printing of
> individual (or a collection of) DOM Windows within a nsWebBrowse 
>r component. <i>Interface status...</i> being reviewed <i>Interfa 
>ce definition:</i> nsIWebBrowserPrint.idl 
545    </p>585    <p>
586      <i>Interface status...</i> none
546    <p>587    </p>
547      <b>nsIWebBrowserFind</b> This interface exposes the searchi
>ng capabilities of the nsWebBrowser component. <i>Interface statu 
>s...</i> none <i>Interface definition:</i> nsIWebBrowserFind.idl 
548    </p>588    <p>
589      <i>Interface definition:</i> nsIServiceManager.h
549    <p>590    </p>
550      <b>nsIWebBrowserFocus</b> This interface provides access to
> the focus information of a nsWebBrowser instance. <i>Interface s 
>tatus...</i> being reviewed <i>Interface definition:</i> nsIWebBr 
551    </p>591    <p>
592      <br>
593      <b>nsIShutdownListener</b>
552    <p>594    </p>
553      <b>nsIWebProgress</b> <i>Interface status...</i> <i>Interfa
>ce definition:</i> 
554    </p>595    <p>
596      This interface is used to receive notifications when the Se
 >rvice Manager is being shutdown.
555    <p>597    </p>
556      <b>nsIWebProgressListener</b> <i>Interface status...</i> <i
>>Interface definition:</i> 
557    </p>598    <p>
599      <i>Interface status...</i> none
558    <p>600    </p>
559      <b>nsIPrompt</b> <i>Interface status...</i> <i>Interface de
560    </p>601    <p>
602      <i>Interface definition:</i> nsIServiceManager.h
561    <p>603    </p>
562      <b>nsIPrefs</b> <i>Interface status...</i> <i>Interface def
563    </p>604    <p>
605      <br>
606      <b>nsIComponentManager</b>
564    <p>607    </p>
565      <b>nsIProfile</b> <i>Interface status...</i> <i>Interface d
566    </p>608    <p>
609      This interface allows new instances of registered XPCOM com
 >ponents to be instantiated.
567    <p>610    </p>
568      <b>nsIDirectoryServiceProvider</b> <i>Interface status...</
>i> <i>Interface definition:</i> 
569    </p>611    <p>
612      <i>Interface status...</i> none
570    <p>613    </p>
571      <b>nsILocalFile</b> <i>Interface status...</i> <i>Interface
> definition:</i> 
572    </p>614    <p>
615      <i>Interface definition:</i> nsIComponentManager.idl
573    <p>616    </p>
574      <b>nsIFile</b> <i>Interface status...</i> <i>Interface defi
575    </p>617    <p>
618      <br>
619      <b>nsIFactory</b>
576    <p>620    </p>
577      <b>nsIClipboardCommands</b> <i>Interface status...</i> <i>I
>nterface definition:</i> 
578    </p>621    <p>
622      This interface is used by the Component Manager to create n
 >ew instances of a particular XPCOM component. Each component must
 > provide a factory implementation for creating new instances.
579    <p>623    </p>
580      <b>nsISelection</b> <i>Interface status...</i> <i>Interface
> definition:</i> 
581    </p>624    <p>
625      <i>Interface status...</i> none
582    <p>626    </p>
583      <b>nsIURILoader</b> <i>Interface status...</i> <i>Interface
> definition:</i> 
584    </p>627    <p>
628      <i>Interface definition:</i> nsIFactory.idl
585    <p>629    </p>
586      <b>nsIURIContentListener</b> <i>Interface status...</i> <i>630    <p>
>Interface definition:</i> 
631      <br>
632      <b>nsIMemory</b>
633    </p>
634    <p>
635      This interface provides access to the global memory managem
 >ent functionality.
636    </p>
637    <p>
638      <i>Interface status...</i> being reviewed
639    </p>
640    <p>
641      <i>Interface definition:</i> nsIMemory.idl
642    </p>
643    <p>
644      <br>
645      <b>nsIDOMWindow</b>
646    </p>
647    <p>
648      This interface is used to represent the window containing a
 > specific document.
649    </p>
650    <p>
651      <i>Interface status...</i> being reviewed
652    </p>
653    <p>
654      <i>Interface definition:</i> nsIDOMWindow.idl
655    </p>
656    <p>
657      <br>
658      <b>nsIBaseWindow</b>
659    </p>
660    <p>
661      This interface provides access to various window operations
662    </p>
663    <p>
664      <i>Interface status...</i> being reviewed
665    </p>
666    <p>
667      <i>Interface definition:</i> nsIBaseWindow.idl
668    </p>
669    <p>
670      <br>
671      <b>nsIRequest</b>
672    </p>
673    <p>
674      This interface provides a means to control various operatio
675    </p>
676    <p>
677      <i>Interface status...</i> being reviewed
678    </p>
679    <p>
680      <i>Interface definition:</i> nsIRequest.idl
681    </p>
682    <p>
683      <br>
684      <b>nsIWebBrowser</b>
685    </p>
686    <p>
687      This is the primary interface to the WebBrowser component.
688    </p>
689    <p>
690      <i>Interface status...</i> being reviewed
691    </p>
692    <p>
693      <i>Interface definition:</i> nsIWebBrowser.idl
694    </p>
695    <p>
696      <br>
697      <b>nsIWebBrowserSetup</b>
698    </p>
699    <p>
700      This interface is used to enable or disable various capabil
 >ities of a nsWebBrowser instance.
701    </p>
702    <p>
703      <i>Interface status...</i> being reviewed
704    </p>
705    <p>
706      <i>Interface definition:</i> nsIWebBrowserSetup.idl
707    </p>
708    <p>
709      <br>
710      <b>nsIWebBrowserChrome</b>
711    </p>
712    <p>
713      This interface provides access to the window containing an 
 >nsWebBrowser instance.
714    </p>
715    <p>
716      <i>Interface status...</i> being reviewed
717    </p>
718    <p>
719      <i>Interface definition:</i> nsIWebBrowserChrome.idl
720    </p>
721    <p>
722      <br>
723      <b>nsIWebNavigation</b>
724    </p>
725    <p>
726      This interface exposes the web navigation functionality of 
 >the nsWebBrowser component.
727    </p>
728    <p>
729      <i>Interface status...</i> being reviewed
730    </p>
731    <p>
732      <i>Interface definition:</i> nsIWebNavigation.idl
733    </p>
734    <p>
735      <br>
736      <b>nsIWebBrowserPersist</b>
737    </p>
738    <p>
739      This interface exposes the save-as functionality of the nsW
 >ebBrowser component.
740    </p>
741    <p>
742      <i>Interface status...</i> being reviewed
743    </p>
744    <p>
745      <i>Interface definition:</i> nsIWebBrowserPersist.idl
746    </p>
747    <p>
748      <br>
749      <b>nsIWebBrowserPrint</b>
750    </p>
751    <p>
752      This interface allows printing of individual (or a collecti
 >on of) DOM Windows within a nsWebBrowser component.
753    </p>
754    <p>
755      <i>Interface status...</i> being reviewed
756    </p>
757    <p>
758      <i>Interface definition:</i> nsIWebBrowserPrint.idl
759    </p>
760    <p>
761      <br>
762      <b>nsIWebBrowserFind</b>
763    </p>
764    <p>
765      This interface exposes the searching capabilities of the ns
 >WebBrowser component.
766    </p>
767    <p>
768      <i>Interface status...</i> none
769    </p>
770    <p>
771      <i>Interface definition:</i> nsIWebBrowserFind.idl
772    </p>
773    <p>
774      <br>
775      <b>nsIWebBrowserFocus</b>
776    </p>
777    <p>
778      This interface provides access to the focus information of 
 >a nsWebBrowser instance.
779    </p>
780    <p>
781      <i>Interface status...</i> being reviewed
782    </p>
783    <p>
784      <i>Interface definition:</i> nsIWebBrowserFocus.idl
785    </p>
786    <p>
787      <br>
788      <b>nsIWebProgress</b>
789    </p>
790    <p>
791      <i>Interface status...</i>
792    </p>
793    <p>
794      <i>Interface definition:</i>
795    </p>
796    <p>
797      <br>
798      <b>nsIWebProgressListener</b>
799    </p>
800    <p>
801      <i>Interface status...</i>
802    </p>
803    <p>
804      <i>Interface definition:</i>
805    </p>
806    <p>
807      <br>
808      <b>nsIPrompt</b>
809    </p>
810    <p>
811      <i>Interface status...</i>
812    </p>
813    <p>
814      <i>Interface definition:</i>
815    </p>
816    <p>
817      <br>
818      <b>nsIPrefs</b>
819    </p>
820    <p>
821      <i>Interface status...</i>
822    </p>
823    <p>
824      <i>Interface definition:</i>
825    </p>
826    <p>
827      <br>
828      <b>nsIProfile</b>
829    </p>
830    <p>
831      <i>Interface status...</i>
832    </p>
833    <p>
834      <i>Interface definition:</i>
835    </p>
836    <p>
837      <br>
838      <b>nsIDirectoryServiceProvider</b>
839    </p>
840    <p>
841      <i>Interface status...</i>
842    </p>
843    <p>
844      <i>Interface definition:</i>
845    </p>
846    <p>
847      <br>
848      <b>nsILocalFile</b>
849    </p>
850    <p>
851      <i>Interface status...</i>
852    </p>
853    <p>
854      <i>Interface definition:</i>
855    </p>
856    <p>
857      <br>
858      <b>nsIFile</b>
859    </p>
860    <p>
861      <i>Interface status...</i>
862    </p>
863    <p>
864      <i>Interface definition:</i>
865    </p>
866    <p>
867      <br>
868      <b>nsIClipboardCommands</b>
869    </p>
870    <p>
871      <i>Interface status...</i>
872    </p>
873    <p>
874      <i>Interface definition:</i>
875    </p>
876    <p>
877      <br>
878      <b>nsISelection</b>
879    </p>
880    <p>
881      <i>Interface status...</i>
882    </p>
883    <p>
884      <i>Interface definition:</i>
885    </p>
886    <p>
887      <br>
888      <b>nsIURILoader</b>
889    </p>
890    <p>
891      <i>Interface status...</i>
892    </p>
893    <p>
894      <i>Interface definition:</i>
895    </p>
896    <p>
897      <br>
898      <b>nsIURIContentListener</b>
899    </p>
900    <p>
901      <i>Interface status...</i>
902    </p>
903    <p>
904      <i>Interface definition:</i>
905    </p>
906    <p>
907      <br>

Back to History