Skip to content

ondravondra/adobo-ie

Repository files navigation

Table of Contents

Adobo IE library

Description

The Adobo IE library is used to create extension for IE with JS codebase shared with other browsers. It supplies the api for the extension as well as background/content script support.

Modules

libcomhelper

Static library with useful classes mostly for atl com operations.

libhtmlpanel

Static library containing a window with webbrowser control used for creating html toolbars and popup windows. The webbrowser control is restricted so the html inside it is protected from unwanted user modification.

libsalsitaextension

Static library containing helper classes and template classes used to create the BHO com class (CSalsitaExtension) and toolbar com class (CSalsitaToolbar). It handles script execution and most of the stuff so the programmer must only write code which is specific to the particular extension.

magpie

Created by Arne Seib and extended by Ondrej Vondra this is the core of the scripting functionality. Provides active script execution environment with support for JS debugging. Also provides salsita api for the scripts.

APIs provided to the scripts

  • salsita api
    • provides implementation for methods like sendRequest
    • dispatch interface ISalsitaApiInternal
    • needs background script to work, clients ask the background script service for ISalsitaApiService implementation and pass it to IMagpieApplication::CreateSalsitaApi.
    • extension scripts can access it using wrappers defined in salsita.js
  • salsita content script only api
    • provides implementation for methods tied to a browser window like openPopupWindow
    • dispatch interface ISalsitaContentApi
    • instance created using IMagpieApplication::CreateSalsitaContentApiImplementation
    • client initializes it by passing IUnknown obtained in SetSite, this is converted to IWebBrowser2
    • extension scripts can access it using wrappers defined in salsita.js
  • salsita IE framework
    • contains IE specific methods for operations like creating XMLHttpRequest or making javascript variables available in global scope
    • dispatch interface ISalsitaFramework
    • visible to the scripts as salsitaFramework

scriptservice

This library is used to create background script com exe server. Particular extension project will make its own executable containing a COM singleton class. This class extends CScriptServiceFactory defining the guid and implementing among others the method SetupScriptServiceInstance for initializing background script service instance (which will always be singleton per user session).

The scriptservice library creates implementation for ISalsitaApiService and makes it available to content script clients using IScriptServiceInstanceClient::GetSalsitaApiService. The ISalsitaApiService implementation is of course also passed to the instance of IMagpieApplication which runs the background script in the script service exe server.

Installing Adobo

The Adobo library can be installed as a shared library or it can be used as side by side assembly (or rather assemblies). For information how to use Adobo without registering it globally in the system, see Registration-Free-README.mediawiki

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published