Search completed in 1.00 seconds.
Introduction to progressive web apps - Progressive web apps (PWAs)
overview: progressive web
apps next this article provides an introduction to progressive web
apps (pwas), discussing what they are and the advantages they offer over regular web
apps.
... pwas are web
apps developed using a number of specific technologies and standard patterns to allow them to take advantage of both web and native app features.
... for example, web
apps are more discoverable than native
apps; it's a lot easier and faster to visit a website than to install an application, and you can also share web
apps by simply sending a link.
...And 18 more matches
Structural overview of progressive web apps - Progressive web apps (PWAs)
while progressive web
apps (pwas) can do anything any web content can do, they need to have a particular structure and include specific components in order to be recognized as a web app that can be used both on the web and installed and run as a local application.
... responsive: responsive web design also applies to progressive web
apps, as both are mainly for mobile devices.
... <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>js13kgames a-frame entries</title> <meta name="description" content="a list of a-frame entries submitted to the js13kgames 2017 competition, used as an example for the mdn articles about progressive web
apps."> <meta name="author" content="end3r"> <meta name="theme-color" content="#b12a34"> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta property="og:image" content="icons/icon-512.png"> <link rel="shortcut icon" href="favicon.ico"> <link rel="stylesheet" href="style.css"> <link rel="manifest" href="js13kpwa.webmanifest"> <script src="data/games.js" defer></script> ...
...And 3 more matches
Installing and uninstalling web apps - Progressive web apps (PWAs)
the option to install a web application is part of the progressive web app philosophy—giving web
apps the same user experience advantages as native
apps so they can be competitive.
...by reducing the user experience differential between the web app and native
apps on the user's device, you reduce both the loss of any muscle memory they have revolving around the native interface of the device and the sensation of "something isn't quite right" that users can experience when switching between native and web-based
apps.
Progressive web apps (PWAs)
progressive web
apps are web
apps that use emerging web browser apis and features along with traditional progressive enhancement strategy to bring a native app-like user experience to cross-platform web applications.
... progressive web
apps are a useful design pattern, though they aren't a formalized standard.
... manifest file a json file that controls how your app appears to the user and ensures that progressive web
apps are discoverable.
...And 14 more matches
nsIAppShellService
xpfe/
appshell/nsi
appshellservice.idlscriptable provides the
appshellservice.
... inherits from: nsisupports last changed in gecko 8.0 (firefox 8.0 / thunderbird 8.0 / seamonkey 2.5) implemented by: @mozilla.org/
appshell/
appshellservice;1 as a service: var
appshellservice = components.classes["@mozilla.org/
appshell/
appshellservice;1"] .getservice(components.interfaces.nsi
appshellservice); method overview void closetoplevelwindow(in nsixulwindow awindow); obsolete since gecko 1.8 void createhiddenwindow(in nsi
appshell a
appshell); native code only!
... boolean createstartupstate(in long awindowwidth, in long awindowheight); obsolete since gecko 1.8 nsixulwindow createtoplevelwindow(in nsixulwindow aparent, in nsiuri aurl, in pruint32 achromemask, in long ainitialwidth, in long ainitialheight, in nsi
appshell a
appshell); nsiwebnav createwindowlessbrowser (in bool aischrome) void destroyhiddenwindow(); void doprofilestartup(in nsicmdlineservice acmdlineservice, in boolean caninteract); obsolete since gecko 1.8 void ensure1window(in nsicmdlineservice acmdlineservice); obsolete since gecko 1.8 void enterlastwindowclosingsurvivalarea(); obsolete since gecko 1.8 void exitlastwindowclosingsurvivalarea(); obsolete since gecko 1.8 void gethiddenwindowandjscontext(out ns...
...And 12 more matches
nsIAppStartup
toolkit/components/startup/public/nsi
appstartup.idlscriptable this interface is intended to be used as application startup service.
...to use the service: var
appstartup = components.classes["@mozilla.org/toolkit/app-startup;1"] .getservice(components.interfaces.nsi
appstartup); method overview void createhiddenwindow(); boolean createstartupstate(in long awindowwidth, in long awindowheight); obsolete since gecko 1.9.1 void destroyhiddenwindow(); void doprofilestartup(in nsicmdlineservice acmdlineservice, in boolean caninteract); obsolete since gecko 1.9.1 void ensure1window(in nsicmdlineservice acmdlinese...
...rvice); obsolete since gecko 1.9.1 void enterlastwindowclosingsurvivalarea(); void exitlastwindowclosingsurvivalarea(); void getstartupinfo(); void hidesplashscreen(); obsolete since gecko 1.9.1 void initialize(in nsisupports native
appsupportorsplashscreen); obsolete since gecko 1.9.1 void quit(in pruint32 amode); void restartinsafemode(in pruint32 aquitmode); void run(); attributes attribute type description interrupted boolean true if the startup process was interrupted by an interactive prompt.
...And 4 more matches
Progressive web app structure - Progressive web apps (PWAs)
previous overview: progressive web
apps next now that we know the theory behind pwas, let's look at the recommended structure of an actual app.
... responsive: responsive web design also applies to progressive web
apps, as both are mainly for mobile devices.
...ucture looks like this: the html from the html point of view, the app shell is everything outside the content section: <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>js13kgames a-frame entries</title> <meta name="description" content="a list of a-frame entries submitted to the js13kgames 2017 competition, used as an example for the mdn articles about progressive web
apps."> <meta name="author" content="end3r"> <meta name="theme-color" content="#b12a34"> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta property="og:image" content="icons/icon-512.png"> <link rel="shortcut icon" href="favicon.ico"> <link rel="stylesheet" href="style.css"> <link rel="manifest" href="js13kpwa.webmanifest"> <script src="data/games.js" defer></script> ...
...And 3 more matches
Webapps.jsm
the web
apps.jsm modules exposes the domapplicationregistry, which is responsible for managing all of the open web
apps.
... importing components.utils.import("resource://gre/modules/web
apps.jsm"); // exported symbol is domapplicationregistry method overview init: function() loadcurrentregistry: function() notify
appsregistrystart: function notify
appsregistrystart() notify
appsregistryready: function notify
appsregistryready() sanitizeredirects: function sanitizeredirects(asource) _savewidgetsfullpath: function(amanifest, adestapp) appkind: function(aapp, amanifest) updatepermissionsforapp: function(aid, aispreinstalled) updateofflinecacheforapp: function(aid) installpreinstalledapp: function installpreinstalledapp(aid) removeifhttpsduplicate: function(aid) installsystem
apps: function() loadandupdate
apps: function() updatedatastore: function(aid, aorigin, amanifesturl, amanifest) _registersystemme...
...ssagesforentrypoint: function(amanifest, aapp, aentrypoint) _registerinterappconnectionsforentrypoint: function(amanifest, aapp,) _registersystemmessages: function(amanifest, aapp) _registerinterappconnections: function(amanifest, aapp) _createactivitiestoregister: function(amanifest, aapp, aentrypoint, arunupdate) _registeractivitiesfor
apps: function(a
appstoregister, arunupdate) _registeractivities: function(amanifest, aapp, arunupdate) _createactivitiestounregister: function(amanifest, aapp, aentrypoint) _unregisteractivitiesfor
apps: function(a
appstounregister) _unregisteractivities: function(amanifest, aapp) _processmanifestforids: function(aids, arunupdate) observe: function(asubject, atopic, adata) addmessagelistener: function(amsgnames, aapp, amm) removemessagelistener: func...
...And 2 more matches
Progressive loading - Progressive web apps (PWAs)
previous overview: progressive web
apps in previous articles we covered apis that help us make our js13kpwa example a progressive web app: service workers, web manifests, notifications and push.
...you could try to make your
apps more bulletproof by making them work without javascript — either using <noscript> to show the image with final src already assigned, or by wrapping <img> tags with <a> elements pointing at the target images, so the user can click and access them when desired.
... final thoughts that's all for this tutorial series — we went through the source code of the js13kpwa example app and learned about the use of progressive web
apps features including an introduction, pwa structure, offline availability with service workers, installable pwas, and finally notifications.
...And 2 more matches
Add to Home screen - Progressive web apps (PWAs)
a2hs is thought to be part of the progressive web app philosophy — giving web
apps the same user experience advantages as native
apps so they can compete in today's ecosystem wars.
... regardless of which browser you are using, when you choose to add the app to your home screen, you'll see it appear along with a short title, in the same way that native
apps do.
...the most relevant one to a2hs is the splash screen displayed when the app icon on the home screen is tapped and it first starts to load (this currently appears only when
apps have been added to the home screen by chrome).
... adding an install button to make our pwa installable on desktop, we first added a button to our document to allow users to do the installation — this isn't made available automatically on desktop
apps, and the installation needs to be triggered by a user gesture: <button class="add-button">add to home screen</button> we then gave it some simple styling: .add-button { position: absolute; top: 1px; left: 1px; } javascript for handling the install at the bottom of our index.js file, we added some javascript to handle the installation.
Making PWAs work offline with Service workers - Progressive web apps (PWAs)
previous overview: progressive web
apps next now that we’ve seen what the structure of js13kpwa looks like and have seen the basic shell up and running, let's look at how the offline capabilities using service worker are implemented.
... var cachename = 'js13kpwa-v1'; var
appshellfiles = [ '/pwa-examples/js13kpwa/', '/pwa-examples/js13kpwa/index.html', '/pwa-examples/js13kpwa/app.js', '/pwa-examples/js13kpwa/style.css', '/pwa-examples/js13kpwa/fonts/graduate.eot', '/pwa-examples/js13kpwa/fonts/graduate.ttf', '/pwa-examples/js13kpwa/fonts/graduate.woff', '/pwa-examples/js13kpwa/favicon.ico', '/pwa-examples/js13kpwa/img/js13kgames.png', '/pwa-examples...
... var gamesimages = []; for(var i=0; i<games.length; i++) { gamesimages.push('data/img/'+games[i].slug+'.jpg'); } var contenttocache =
appshellfiles.concat(gamesimages); then we can manage the install event itself: self.addeventlistener('install', (e) => { console.log('[service worker] install'); e.waituntil( caches.open(cachename).then((cache) => { console.log('[service worker] caching all: app shell and content'); return cache.addall(contenttocache); }) ); }); there are two things that need an expla...
... previous overview: progressive web
apps next ...
Progressive web apps - MDN Web Docs Glossary: Definitions of Web-related terms
progressive web
apps is a term used to describe the modern state of web app development.
... this involves taking standard web sites/
apps that enjoy all the best parts of the web — such as discoverability via search engines, being linkable via urls, and working across multiple form factors — and supercharging them with modern apis (such as service workers and push) and features that confer other benefits more commonly attributed to native
apps.
... learn more the app center on mdn progressive web
apps on google developers ...
nsIAppShell
widget/public/nsi
appshell.idlnot scriptable interface for the native event system layer.
...suspendnative() suspends the use of additional platform-specific methods (besides the nsi
appshell->run() event loop) to run gecko events on the main application thread.
...but if the nsi
appshell->run() event loop is blocked when this call is made, gecko events will stop being processed until resumenative() is called (even if a plugin or library is temporarily processing events on a nested event loop).
The building blocks of responsive design - Progressive web apps (PWAs)
the markup is very simple: <x-deck selected-index="0"> <x-card> … </x-card> <x-card> … </x-card> <x-card> … </x-card> </x-deck> note: these weird x- elements may be unfamiliar; they are part of brick, mozilla's ui element library for mobile web
apps.
...if you want a solution that works across general web
apps, you could use the screen orientation api, and/or provide a message asking the user to rotate their screen if they are using the wrong orientation (for example, if window.innerwidth is larger than window.innerheight, assume the game is landscape mode and show a "please rotate" message.) viewport one last problem to mention for our example app is concerned with mobile browsers and media querie...
...yes, you want the images to be contained inside the app ui whether you are using it on desktop or mobile, but you should also consider that mobile
apps have much smaller viewport dimensions available than desktop
apps, so you should try to give mobile devices a smaller image to download.
Creating XULRunner Apps with the Mozilla Build System - Archive of obsolete content
so for most xulrunner
apps that use the mozilla build system, the top-level makefile will contain: dirs = components chrome app the installer/ subdirectory the installer/ makefile lets you create a setup program for distributing your application.
...finally, ben turner and the songbird folks were perhaps the first to write any documentation about building xulrunner
apps with the mozilla build system, something i know dave took advantage of.
nsIAppStartup_MOZILLA_2_0
toolkit/components/startup/public/nsi
appstartup.idlscriptable this lets you get information about the times at which key application startup events occurred.
... 1.0 66 introduced gecko 2.0 inherits from: nsisupports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) in gecko 4.0 this interface was merged into the nsi
appstartup interface.
nsIExternalHelperAppService
uriloader/exthandler/nsiexternalhelper
appservice.idlscriptable the external helper app service is used for finding and launching platform specific external applications for a given mime content type.
...to access this service, use: var externalhelper
appservice = components.classes["@mozilla.org/uriloader/external-helper-app-service;1"] .getservice(components.interfaces.nsiexternalhelper
appservice); method overview boolean applydecodingforextension(in autf8string aextension, in acstring aencodingtype); nsistreamlistener docontent(in acstring amimecontenttype, in nsirequest arequest, in nsiinterfacerequestor awindowcontext, in boolean aforcesave); methods applydecodingforextension() determines whether or not data whose filename has the specified extension should be decoded from the specified encoding type before ...
PWA developer guide - Progressive web apps (PWAs)
<<<--- web app basics introduction and getting started with pwa development some description installing and uninstalling web
apps an introductory guide to how a web app can be installed on the user's device...
...ne description alerting the user using notifications description creating a web app from an existing site description advanced topics pushing data from the server to your web application some description resource management description integration with the host device description security and privacy description gaming topics for web app developers description polishing web
apps web api equivalents for common native apis some description platform-specific tips and issues description web application performance guide description ensuring a good user experience description related topics some topic some description ...
Mozilla.dev.apps.firefox-2006-09-29 - Archive of obsolete content
summary: mozilla.dev.
apps.firefox - september 22-29, 2006 announcements bon echo 20060921 nightly to recieve "major update" offer mike beltnzer announced that 'users running the bon echo 20060921 nightly build will be offered the chance to upgrade to a "new version"' firefox start up performance boris zbarsky recently performed some profiling of firefox's start up - these are some of the details discussions problem handling dmg files on mac discussion about why sometimes dmg files are not mounted correctly after they are downloaded.
Signing Mozilla apps for Mac OS X
signing mozilla
apps without the signing server firefox and thunderbird are built using mozilla's release automation infrastructure.
appShellService
quitting mozilla: var cc = components.classes; var ci = components.interfaces; shell = cc["@mozilla.org/
appshell/
appshellservice;1"]; shell = shell.getservice(ci.nsi
appshellservice); shell.quit(3); // eforcequit bam!
nsIWebappsSupport
toolkit/components/web
apps/nsiweb
appssupport.idlscriptable please add a summary to this article.
Index - Web APIs
263 battery status api api,
apps, battery, battery api, battery status api, guide, mobile, obsolete, overview the battery status api, more often referred to as the battery api, provides information about the system's battery charge level and lets you be notified by events that are sent when the battery level or charging status change.
... 1329 file and directory entries api api, file system api, file and directory entries api, files, non-standard, overview, reference the file and directory entries api simulates a local file system that web
apps can navigate within and access files in.
... you can develop
apps which read, write, and create files and/or directories in a virtual, sandboxed file system.
...And 15 more matches
Index - Archive of obsolete content
485 helper
apps (and a bit of save as) outdated_articles, uriloader 486 hidden prefs this page has been flagged by editors or users as needing technical review.
... 556 migrate
apps from internet explorer to mozilla when netscape started the mozilla browser, it made the conscious decision to support w3c standards.
... 609 blogposts prism just browsing: mozilla prism update thanscorner: mozilla prism - webrunner with pazzaz mozilla prism - a revolution in web
apps thanscorner: mozilla webrunner 0.7 site specific browsers webrunner using webrunner webrunner + gears = offline desktop reader webrunner 0.5 webrunner 0.5 - mac support webrunner 0.5 - linux install webrunner, google reader, and google notebook distraction free gtd - 32+ web app files for online todo lists mozilla webrunner: a one-window, tabless browser with no url bar webrunner becomes prism - ...
...And 14 more matches
Theme changes in Firefox 2 - Archive of obsolete content
toolkit/moz
apps/preferences/fontscaling.xul - removed from firefox 2.
... moz
apps/extensions/about.css updated with a simplified set of style names, since several styles were identical.
... moz
apps/extensions/extensions.css css for the add-ons manager window.
...And 8 more matches
Index - MDN Web Docs Glossary: Definitions of Web-related terms
69 certified
apps, b2g, firefox os, glossary, security, trustworthy certified means that an application, content or data transmission has successfully undergone evaluation by professionals with expertise in the relevant field, thereby indicating completeness, security and trustworthiness.
... 169 gecko firefox os, gecko, glossary, infrastructure, intro, mozilla gecko is the layout engine developed by the mozilla project and used in many
apps/devices, including firefox and firefox os.
...though many programming languages support json, json is especially useful for javascript-based
apps, including websites and browser extensions.
...And 8 more matches
Introduction to the File and Directory Entries API - Web APIs
the file and directory entries api simulates a local file system that web
apps can navigate around.
... you can develop
apps that can read, write, and create files and directories in a sandboxed, virtual file system.
...these apis are a giant evolutionary leap for web
apps, which can now cache and process large amounts of data.
...And 7 more matches
Framework main features - Learn web development
angular
apps often make heavy use of typescript.
...while it is possible to build framework
apps without using these domain-specific languages, embracing them will streamline your development process and make it easier to find help from the communities around those frameworks.
...it was invented by the react team for use in react applications, but can be used to develop other applications — like vue
apps, for instance.
...And 5 more matches
Index of archived content - Archive of obsolete content
rapp addtab closetab deck getbrowserfordocument getbrowserforwindow gettabforbrowser gettabforid gettabforwindow loaduri quit selecttab tabs helper
apps.jsm home.jsm banner panels homeprovider.jsm homestorage nativewindow contextmenus doorhanger menu ...
...t client api syncing custom preferences force rtl gre gre registration gecko coding help wanted http class overview hacking wiki help viewer creating a help content pack helper
apps (and a bit of save as) hidden prefs how to write and land nanojit patches io guide/directory keys introducing the audio api extension isp data java in firefox extensions javascript os.shared javascript crypto crmf request object generatecrmfrequest() importus...
... statusbar litmus tests mac os x build prerequisites/fink makefile.mozextension.2 message summary database metro browser chrome tests microsummary topics microsummary xml grammar reference migrate
apps from internet explorer to mozilla modularization techniques monitoring downloads mozilla application framework mozilla application framework in detail mozilla crypto faq mozprocess mozprofile mozrunner nsc_setpin nanojit ...
...And 4 more matches
Getting started with Svelte - Learn web development
svelte: a new approach to building rich user interfaces svelte provides a different approach to building web
apps than some of the other frameworks covered in this module.
...you should see something like the following: <script> export let name; </script> <main> <h1>hello {name}!</h1> <p>visit the <a href="https://svelte.dev/tutorial">svelte tutorial</a> to learn how to build svelte
apps.</p> </main> <style> main { text-align: center; padding: 1em; max-width: 240px; margin: 0 auto; } h1 { color: #ff3e00; text-transform: uppercase; font-size: 4em; font-weight: 100; } @media (min-width: 640px) { main { max-width: none; } } </style> the <script> section the <script> block contains javascript that runs when a component in...
... <main> <h1>hello {name}!</h1> <p>visit the <a href="https://svelte.dev/tutorial">svelte tutorial</a> to learn how to build svelte
apps.</p> </main> svelte also supports tags like {#if...}, {#each...}, and {#await...} — these examples allow you to conditionally render a portion of the markup, iterate through a list of elements, and work with async values, respectively.
...And 4 more matches
Following the Android Toasts Tutorial from a JNI Perspective
we search dxr, and we find a getcontext static method belonging to the gecko
appshell class.
...we find an xml file showing the sig for gecko
appshell is org.mozilla.gecko.gecko
appshell.
... we will add this to our sig object in slash notation: gecko
appshell: 'lorg/mozilla/gecko/gecko
appshell;' we then instantiate the gecko
appshell class in jni and declare the getcontext method; dxr showed that this method accepted no arguments and returns a context, and we already had the sig for context in our sig object.
...And 4 more matches
Index - Developer guides
8 creating a cross-browser video player
apps, html5, video, full screen this article describes a simple html5 video player that uses the media and fullscreen apis and works across most major desktop and mobile browsers.
... 9 cross-browser audio basics
apps, audio, guide, html5, media, events this article provides: a basic guide to creating a cross-browser html5 audio player with all the associated attributes, properties, and events explained a guide to custom controls created using the media api 10 live streaming web audio and video guide, adaptive streaming live streaming technology is often employed to relay live events such as sports, concerts and more generally tv and radio programmes th...
... 11 media buffering, seeking, and time ranges
apps, buffer, html5, timeranges, video, buffering, seeking sometimes it's useful to know how much <audio> or <video> has downloaded or is playable without delay — a good example of this is the buffered progress bar of an audio or video player.
...And 4 more matches
Handling common accessibility problems - Learn web development
when we say accessibility in the context of web technology, most people immediately think of making sure websites/
apps are usable by people with disabilities, for example: visually impaired people using screen readers or magnification/zoom to access text people with motor function impairments using the keyboard (or other non-mouse features) to activate website functionality.
...really, the aim of accessibility is to make your websites/
apps usable by as many people in as many contexts as possible, not just those users using high-powered desktop computers.
... html semantic html (where the elements are used for their correct purpose) is accessible right out of the box — such content is readable by sighted viewers (provided you don't do anything silly like make the text way too small or hide it using css), but will also be usable by assistive technologies like screen readers (
apps that literally read out a web page to their user), and confer other advantages too.
...And 3 more matches
JNI.jsm
for example, the class of gecko
appshell has the fully-qualified class name of org.mozilla.gecko.gecko
appshell.
... the signature for this would be lorg.mozilla.gecko.gecko
appshell; but we pass here without the l and ;.
...however if it was a subclass such as geckointerface (org.mozilla.gecko.gecko
appshell.geckointerface), then this will cause a crash.
...And 3 more matches
The Publicity Stream API
[is this still doable?] the javascript library should be included from: https://my
apps.mozillalabs.com/jsapi/publicity.js all apis related to open web applications are accessed under the navigator.
apps object.
... publicity stream api (navigator.
apps.publicity.*) the publicity api is exposed as properties on the navigator.
apps.publicity object.
...this stream can be pulled down by getpublicitystream() and helps determine the results for getuserrecommended
apps().
...And 3 more matches
Index
62
appshellservice xpcom:language bindings, xpconnect quitting mozilla: 63 nsiprofile interfaces, xpcom, xpcom:language bindings, xpconnect this interface is obsolete; you should use nsitoolkitprofileservice instead; however, reference documentation for nsiprofile is available if you're working with old code.
...to use this service, use: 326 nsi
appshell interfaces, interfaces:scriptable, xpcom, xpcom api reference, xpcom interface reference creates an application shell.
... 327 nsi
appshellservice interfaces, interfaces:scriptable, reference, référence(2), xpcom, xpcom api reference, xpcom interface reference implemented by: @mozilla.org/
appshell/
appshellservice;1 as a service: 328 nsi
appstartup interfaces, interfaces:scriptable, xpcom, xpcom api reference, xpcom interface reference implemented by: @mozilla.org/toolkit/app-startup;1.
...And 3 more matches
Key Values - Web APIs
vk_
apps (0x5d) kvk_pc_contextmenu (0x6e) gdk_key_menu (0xff67) qt::key_menu (0x01000055) keycode_menu (82) "escape" [2] the esc (escape) key.
... [3] internet explorer (tested on release 9 and 11) and firefox 36 and earlier report "
apps" instead of "contextmenu" for the context menu key.
... keyboardevent.key value description virtual keycode windows mac linux android "
appswitch" presents a list of recently-used applications which lets the user change
apps quickly.
...And 3 more matches
MCD, Mission Control Desktop, AKA AutoConfig - Archive of obsolete content
abstract this document is a concrete example of a centralized auto-configuration of mozilla
apps, that are; firefox, thunderbird, mozilla suite 1.x.x, seamonkey and for the record, old netscape 4.x.
...it's mission is to enable completely automatic configuration of mozilla's
apps preferences based on users properties either retrieved from system environement variables or on an organisation ldap directory.
...choosing mozilla products allow us to use the same
apps while running either windows or linux systems (i suspect mac osx would be fine too).
...And 2 more matches
Prism - Archive of obsolete content
benefits separate process: web
apps can hog memory or processor cycles or even bring down the whole browser in extreme cases.
... minimal user interface: a general-purpose browser ui is not necessary or appropriate for most web
apps.
... customization:
apps can be run using a shared browser runtime and customized using client-side script (similar to greasemonkey).
...And 2 more matches
Building a Theme - Archive of obsolete content
an example of the content within a typical xpi file for a theme: example.xpi: /install.rdf /chrome.manifest /preview.png /icon.png /chrome/ browser/ communicator/ global/ moz
apps/ we'll want to create a file structure similar to the one above for our tutorial, so let's begin by creating a folder for your theme somewhere on your hard disk (e.g.
... global to chrome/global moz
apps to chrome/moz
apps now that you've copied the global and moz
apps folders, a handful of other folders from the browser/omni.ja archive are required.
... browser to chrome/browser/ communicator to chrome/communicator/ you should end up with this directory structure: <ext path>/ /install.rdf /chrome.manifest /chrome/ browser/ communicator/ global/ moz
apps/ after this, it would be a good idea to read the article setting up extension development environment and follow the directions there.
...And 2 more matches
Strategies for carrying out testing - Learn web development
smaller companies and individuals are generally not able to afford such a sophisticated lab, so tend to make do with smaller labs, emulators, virtual machines, and commercial testing
apps.
...the most common devices/browsers you'll want to test are as follows: the official android studio ide for developing android
apps is a bit heavy weight for just testing websites on google chrome or the old stock android browser, but it does come with a robust emulator.
...there are a number of popular virtual machine
apps available, such as parallels, vmware, and virtual box; we personally like the latter, because it is free.
...And 2 more matches
How Mozilla determines MIME Types
file uris for file: uris, mozilla will ask the externalhelper
appservice for a mime type.
... if the file starts with <?xml, asks the externalhelper
appservice for a mime type for the uri.
... the uri is handed to the externalhelper
appservice for mime type guessing if all else fails, the buffer (i.e.
...And 2 more matches
nsIWindowMediator
xpfe/
appshell/public/nsiwindowmediator.idlscriptable the window mediator is a mozilla component that keeps track of open windows.
... implemented by: @mozilla.org/
appshell/window-mediator;1 as a service: var windowmediator = components.classes["@mozilla.org/
appshell/window-mediator;1"] .getservice(components.interfaces.nsiwindowmediator); method overview void addlistener(in nsiwindowmediatorlistener alistener); boolean calculatezposition(in nsixulwindow inwindow, in unsigned long inposition, in nsiwidget inbelow, out unsigned long outposition, out nsiwidget outbelow); native code only!
... windowmediator = components.classes["@mozilla.org/
appshell/window-mediator;1"] .getservice(components.interfaces.nsiwindowmediator); if (!windowmediator.getouterwindowwithid) { windowmediator.getouterwindowwithid = function (aouterwindowid) { let win = this.getmostrecentwindow(); let winutil = win.queryinterface(components.interfaces.nsiinterfacerequestor) .getinterface(components.interfaces.nsidomwindowutils); retur...
...And 2 more matches
Tabbed browser - Archive of obsolete content
rfacerequestor) .getinterface(components.interfaces.nsidomwindow); mainwindow.gbrowser.addtab(...); from a dialog if your code is running in a dialog opened directly by a browser window, you can use: window.opener.gbrowser.addtab(...); if window.opener doesn't work, you can get the most recent browser window using this code: var wm = components.classes["@mozilla.org/
appshell/window-mediator;1"] .getservice(components.interfaces.nsiwindowmediator); var mainwindow = wm.getmostrecentwindow("navigator:browser"); mainwindow.gbrowser.addtab(...); opening a url in a new tab // add tab gbrowser.addtab("http://www.google.com/"); // add tab, then make active gbrowser.selectedtab = gbrowser.addtab("http://www.google.com/"); manipulating content of a...
... function openandreuseonetabperurl(url) { var wm = components.classes["@mozilla.org/
appshell/window-mediator;1"] .getservice(components.interfaces.nsiwindowmediator); var browserenumerator = wm.getenumerator("navigator:browser"); // check each browser instance for our url var found = false; while (!found && browserenumerator.hasmoreelements()) { var browserwin = browserenumerator.getnext(); var tabbrowser = browserwin.gbrowser; // check each...
... function openandreuseonetabperattribute(attrname, url) { var wm = components.classes["@mozilla.org/
appshell/window-mediator;1"] .getservice(components.interfaces.nsiwindowmediator); for (var found = false, index = 0, tabbrowser = wm.getenumerator('navigator:browser').getnext().gbrowser; index < tabbrowser.tabcontainer.childnodes.length && !found; index++) { // get the next tab var currenttab = tabbrowser.tabcontainer.childnodes[index]; // does this...
... var wm = components.classes["@mozilla.org/
appshell/window-mediator;1"] .getservice(components.interfaces.nsiwindowmediator); var recentwindow = wm.getmostrecentwindow("navigator:browser"); return recentwindow ?
Getting Started - Archive of obsolete content
skin\classic\moz
apps moz
apps contains all the styles and icons for the browser peripherals, such as the extension manager or update wizard.
...into this directory put a zip archive called my_theme.jar containing navigator, global, communicator, editor, help, messenger, messenger-newsblog and moz
apps directories from above.
...skin global my_theme jar:chrome/my_theme.jar!/global/ skin moz
apps my_theme jar:chrome/my_theme.jar!/moz
apps/ skin messenger my_theme jar:chrome/my_theme.jar!/messenger/ skin messenger-newsblog my_theme jar:chrome/my_theme.jar!/messenger-newsblog/ skin communicator my_theme jar:chrome/my_theme.jar!/communicator/ skin help my_theme jar:chrome/my_theme.jar!/help/ skin navigator my_theme jar:chrome/my_theme.jar!/navigator/ skin editor my_theme jar:chrome/my_theme.j...
...tests repackaging jar now all you need to do is repackage a jar file with the following directory structure, using your favorite archive manager to create a zip archive: /chrome/my_theme.jar!/communicator/* /chrome/my_theme.jar!/editor/* /chrome/my_theme.jar!/global/* /chrome/my_theme.jar!/help/* /chrome/my_theme.jar!/messenger/* /chrome/my_theme.jar!/messenger-newsblog/* /chrome/my_theme.jar!/moz
apps/* /chrome/my_theme.jar!/navigator/* /chrome.manifest /install.rdf /icon.png /preview.png make sure not to just zip up the my_theme parent directory since that will cause the drag and drop install in the next section to fail without error messages.
How to Quit a XUL Application - Archive of obsolete content
script can attempt to quit a xul application, or force the application to quit, using the nsi
appstartup interface.
... <script> function quit (aforcequit) { var
appstartup = components.classes['@mozilla.org/toolkit/app-startup;1'].
... getservice(components.interfaces.nsi
appstartup); // eattemptquit will try to close each xul window, but the xul window can cancel the quit // process if there is unsaved data.
...components.interfaces.nsi
appstartup.eforcequit : components.interfaces.nsi
appstartup.eattemptquit;
appstartup.quit(quitseverity); } </script> calling this function if there is an uncaught exception, to force the application to quit: <script> try { dosomething(); } catch (e) { quit(true); } </script> the "quit" menuitem should typically prompt the user if there is unsaved data: <menuitem label="quit" oncommand="quit(false);"/> ...
XULRunner tips - Archive of obsolete content
the following prefs must also be set to make the xpinstall dialog, extension manager, and theme manager work: pref("xpinstall.dialog.confirm", "chrome://moz
apps/content/xpinstall/xpinstallconfirm.xul"); pref("xpinstall.dialog.progress.skin", "chrome://moz
apps/content/extensions/extensions.xul?type=themes"); pref("xpinstall.dialog.progress.chrome", "chrome://moz
apps/content/extensions/extensions.xul?type=extensions"); pref("xpinstall.dialog.progress.type.skin", "extension:manager-themes"); pref("xpinstall.dialog.progress.type.chrome", "extension:manager-e...
...xtensions"); pref("extensions.update.enabled", true); pref("extensions.update.interval", 86400); pref("extensions.dss.enabled", false); pref("extensions.dss.switchpending", false); pref("extensions.ignoremtimechanges", false); pref("extensions.logging.enabled", false); pref("general.skins.selectedskin", "classic/1.0"); // nb these point at amo pref("extensions.update.url", "chrome://moz
apps/locale/extensions/extensions.properties"); pref("extensions.getmoreextensionsurl", "chrome://moz
apps/locale/extensions/extensions.properties"); pref("extensions.getmorethemesurl", "chrome://moz
apps/locale/extensions/extensions.properties"); if your application is based on gecko 2.0, you need to register a component through the new component registration because the extension manager uses fuel, namely appl...
... window url window type extension manager chrome://moz
apps/content/extensions/extensions.xul?type=extensions extension:manager-extensions theme manager chrome://moz
apps/content/extensions/extensions.xul?type=themes extension:manager-themes javascript console chrome://global/content/console.xul global:console about:config chrome://global/content/config.xul developer extensions venkman need a cu...
...lashcount", 2); // pref("alerts.slideincrement", 1); pref("alerts.slideincrementtime", 10); pref("alerts.totalopentime", 4000); pref("alerts.height", 50); if you are missing preferences that a dialog requires, you will get the following errors: component returned failure code: 0x8000ffff (ns_error_unexpected) [nsiprefbranch.getboolpref] error: dialog has no properties source file: chrome://moz
apps/content/downloads/u...ontenttype.xul line: 1 enabling password manager these preferences seem to be the default in firefox, however, they are missing in xulrunner.
Debug - Archive of obsolete content
the debug object only works in internet explorer and windows 8 and windows phone 8.1 store
apps.
... there are different ways to debug internet explorer and windows 8.x store
apps.
... in windows 8.x store
apps, the write and writeln functions of the debug object display strings in the visual studio output window at run time.
...also supported in store
apps (windows 8 and windows phone 8.1).
Game distribution - Game development
tizen is also putting a high value on supporting
apps written in javascript.
...plus, it's the most prominent mobile store, with hundreds of thousands of
apps, so it's extremely hard to stand out from the crowd.
...it's still quite hard to be noticed there as the number of
apps submitted daily is huge.
... phonegap — based on cordova, this is the most popular tool for building/packaging javascript
apps for native platforms.
Client-Server Overview - Learn web development
the first part is called the header, and contains useful information about the request, in the same way that an html head contains useful information about an html document (but not the actual content itself, which is in the body): get https://developer.mozilla.org/search?q=client+server+overview&topic=
apps&topic=html&topic=css&topic=js&topic=api&topic=webdev http/1.1 host: developer.mozilla.org connection: keep-alive pragma: no-cache cache-control: no-cache upgrade-insecure-requests: 1 user-agent: mozilla/5.0 (windows nt 10.0; wow64) applewebkit/537.36 (khtml, like gecko) chrome/52.0.2743.116 safari/537.36 accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 referer: h...
... the url parameters (q=client%2bserver%2boverview&topic=
apps&topic=html&topic=css&topic=js&topic=api&topic=webdev).
...more recently "single-page
apps" have become popular, where the whole website is written with a single html file that is dynamically updated when needed.
... websites created using this style of application push a lot of computational cost from the server to the web browser, and can result in websites that appear to behave a lot more like native
apps (highly responsive, etc.).
Getting started with Ember - Learn web development
use cases generally, emberjs works well for building
apps that desire either or both of the following traits: single page applications, including native-like web
apps, and progressive web
apps (pwas) ember works best when it is the entire front end of your application.
... ember-service-worker: configuring a pwa so that the app can be installed on mobile devices, just like
apps from the device's respective app-store.
... native mobile
apps ember can also be used with native mobile
apps with a native-mobile bridge to javascript, such as that provided by corber.
...as conventions are defined and shared, the opinions that back those conventions help reduce the menial differences between
apps — a common goal among all opinionated frameworks, across any language and ecosystem.
Introduction to automated testing - Learn web development
in this article, we look at what is available, how to use task runners, and how to use the basics of commercial browser test automation
apps such as lambdatest, sauce labs, browserstack, and testingbot.
... automation makes things easy throughout this module we have detailed loads of different ways in which you can test your websites and
apps, and explained the sort of scope your cross-browser testing efforts should have in terms of what browsers to test, accessibility considerations, and more.
...commercial cross-browser testing
apps like lambdatest, sauce labs, browserstack, and testingbot are based on selenium, but allow you to access their set up remotely using a simple interface, saving you the hassle of setting up your own testing system.
... you can then step up a gear, using an api to access functionality programmatically, which means that such
apps can be combined with task runners, such as your own local selenium environments and others, to create automated tests.
Localization Use Cases
declensions in gaia's browser app, there's an about-browser string defined as follows in
apps/browser/locales/browser: about-browser=about {{browserbrandshortname}} problem definition in many inflected languages (e.g.
... in shared/branding/official/branding, we can define browserbrandshortname as: <browserbrandshortname{ nominative: "firefox", genitive: "firefoxa", dative: "firefoxu", accusative: "firefox", locative: "firefoxu", instrumental:"firefoxom" }> and in shared/branding/unofficial/branding, we can define browserbrandshortname as follows, to mean web browser: now, coming back to
apps/browser/locales/browser, we can take advantage of the grammatical cases.
... slovenian uses the locative case with its about preposition: <aboutbrowser "o {{ browserbrandshortname.locative }}"> for the official branding, we get: o firefoxu and for the unofficial branding, we end up with: o brskalniku genders in the system app's
apps/system/locales/system, there's a string called crash-banner-os2.
...0 : 1; var sizeinfo = filesizeformatter.getreadablefilesize(size, fixeddigits); var _ = navigator.mozl10n.get; element.textcontent = _(l10nid, { size: sizeinfo.size, unit: _('byteunit-' + sizeinfo.unit) }); } the function is used like so: // application storage updateappfreespace: function storage_updateappfreespace() { var self = this; this.getfreespace(this.
appstorage, function(freespace) { devicestoragehelper.showformatedsize(self.
appstoragedesc, 'availablesize', freespace); }); }, problem definition for all values of freespace, the following string is enough to construct a grammatically-correct sentence in english: availablesize = {{$size}} {{$unit}} available however, other languages might need to pluralize this string with different...
nsIDOMStorageManager
dom/interfaces/storage/nsidomstoragemanager.idlscriptable this interface provides methods for managing data stored in the offline
apps cache.
... introduced gecko 1.9 inherits from: nsisupports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) implemented by @mozilla.org/dom/storagemanager;1 as a service: var domstoragemanager = components.classes["@mozilla.org/dom/storagemanager;1"] .getservice(components.interfaces.nsidomstoragemanager); method overview void clearoffline
apps(); nsidomstorage getlocalstorageforprincipal(in nsiprincipal aprincipal, in domstring adocumenturi); long getusage(in astring aownerdomain); methods clearoffline
apps() clears keys owned by offline applications.
...void clearoffline
apps(); parameters none.
... return value the space usage of the domain, in bytes.see also offline
apps dom storage structured client-side storage (html 5 specification) ...
nsIXULWindow
xpfe/
appshell/nsixulwindow.idlscriptable please add a summary to this article.
... void assumechromeflagsarefrozen(); void center(in nsixulwindow arelative, in boolean ascreen, in boolean aalert); nsixulwindow createnewwindow(in print32 achromeflags, in nsi
appshell a
appshell); nsidocshelltreeitem getcontentshellbyid(in wstring id); void removechildwindow(in nsixulwindow achild); void showmodal(); attributes attribute type description chromeflags pruint32 chromeflags are from nsiwebbrowserchrome.
... nsixulwindow createnewwindow( in print32 achromeflags, in nsi
appshell a
appshell ); parameters achromeflags see nsiwebbrowserchrome.
... a
appshell the app shell passed to nsi
appshellservice's createtoplevelwindow method.
Add to iPhoto
addimagebyurl: function(src) { corefoundation.init(); carbon.init();
appservices.init(); // download the image var filepath = this.downloadimage(src); var mutablearray = corefoundation.cfarraycreatemutable(null, 1, corefoundation.kcftypearraycallbacks.address()); if (mutablearray) { var url = corefoundation.cfurlcreatefromfilesystemrepresentation(null, filepath, filepath.length, false); corefoundation.cfarrayappendvalue(mutablearray, url); corefo...
...undation.cfrelease(url); // call launch services to open iphoto and deliver the image var ref = new carbon.struct_fsref; var appparams =
appservices.struct_lsapplicationparameters(0, 1, ref.address(), null, null, null, null); var
appstr = "file:///applications/iphoto.app"; var
appstrcf = corefoundation.cfstringcreatewithcharacters(null,
appstr,
appstr.length); var appurl = corefoundation.cfurlcreatewithstring(null,
appstrcf, null); corefoundation.cfrelease(
appstrcf); var b = corefoundation.cfurlgetfsref(appurl, ref.address()); if (!b) { var stringsbundle = document.getelementbyid("string-bundle"); alert(stringsbundle.getstring('alert_download_error_string')); } else { var array = ctypes.cast(mutablearray, corefoundation.cfarrayref)...
...;
appservices.lsopenurlswithrole(array, 0, null, appparams.address(), null, 0); } corefoundation.cfrelease(appurl); // clean up corefoundation.cfrelease(array); }
appservices.shutdown(); carbon.shutdown(); corefoundation.shutdown(); } this code begins by initializing all the system frameworks we're using, by calling the init() methods on the corefoundation, carbon, and
appservices objects.
...let's take a closer look at this syntax: var appparams =
appservices.struct_lsapplicationparameters(0, 1, ref.address(), null, null, null, null); here you're calling a constructor, created for you by js-ctypes, that creates and fills out the structure, specifying the values of all of the parameters.
User input and controls - Developer guides
this article provides recommendations for managing user input and implementing controls in open web
apps, along with faqs, real-world examples, and links to further information for anyone needing more detailed information on the underlying technologies.
... you should always be mindful of keyboard accessibility where appropriate — many web users only use keyboard to navigate web sites and
apps, and locking them out of your functionality is a bad idea.
... the following is a set of recommendations and best practices for using such tools in open web
apps.
... contenteditable in open web
apps any dom element can be made directly editable using the contenteditable attribute.
Developer guides
progressive web
apps progressive web
apps (pwas) use modern web apis along with traditional progressive enhancement strategy to create cross-platform web applications.
... these
apps work everywhere and provide several features that give them the same user experience advantages as native
apps.
... optimization and performance when building modern web
apps and sites, it's important to make your content work quickly and efficiently.
...this article provides recommendations for managing user input and implementing controls in open web
apps, along with faqs, real-world examples, and links to further information for anyone needing more detailed information on the underlying technologies.
Signing an XPI - Archive of obsolete content
in my case it's c:\
apps\nss-3.11.4\ get netscape portable runtime 1.
...in my case it's c:\
apps\nspr-4.6\ add path add the nss tools bin/ and lib/, and the nspr lib/ directories to the system path.
... c:\> set path=c:\
apps\nss-3.11.4\bin\;c:\
apps\nss-3.11.4\lib\;c:\
apps\nspr-4.6\lib\;%path% an easier way is to copy everything from your new directories c:\
apps\nss-3.11.4\ and c:\
apps\nspr-4.6\ including sub directories to the same directory - fx c:\
apps\codesigning\ - and then run every command from that.
List of Mozilla-Based Applications - Archive of obsolete content
zen, zune, pocketpcs, ipods, and psps mekhala browser part of the khmeros linux distro midbrowser mobile web browser mockery mockup creation tool built on xulrunner mongodb database project uses spidermonkey moyura email client part of the khmeros linux distro mozcards, jolistopwatch, jolitimer simple
apps for maemo uses xulrunner moznet .net control embeddable gecko for .net applications wraps xulrunner for use in .net applications my internet browser localized browser uses gecko myna application server javascript application server for java uses mozilla rhino nextcms (fr) cms nightingale music player community run effo...
...ment wesabe money management tool automatic uploader is a xulrunner application that runs headless in xvfb wikipediaondvd and wikimedia by moulin offline versions of wikipedia blog post about projects wine implementation of the windows api uses mozilla spidermonkey and the gecko activex control worksmart.net suite of web-based workplace
apps uses prism wxwebconnect web browser control library wyzo browser xb browser anonymous web browser xbusiness create and send branded invoices, quotes or estimates xdf billing and quotes software xiphos bible study software xmldbeditor database editor xpud linux desktop ...
... other places to find mozilla applications include: http://www.mozilla.org/projects/ http://developer.mozilla.org/en/docs/xulrunner_hall_of_fame http://www.mozdev.org http://xul
apps.net/ http://dmoz.org/computers/data_formats/markup_languages/xml/applications/xul/applications/ http://blog.mozbox.org/post/2007/06/14/xul-activity-in-france http://www.mozilla.org/projects/security/pki/nss/overview.html http://en.wikipedia.org/wiki/spidermonkey_(javascript_engine) http://www.mozilla.org/rhino/users.html http://groups.google.com/group/mozilla.dev.tech.js-engine.rhino/browse...
Creating a Skin for Firefox/Getting Started - Archive of obsolete content
skin\classic\moz
apps moz
apps contains all the styles and icons for the browser peripherals, such as the extension manager or update wizard.
...into this directory put the browser, global, communicator, help, and moz
apps directories from above, as well as the icon.png and preview.png files.
... repackaging jar now all you need to do is repackage a jar file with the following directory structure, using your favorite archive manager to create a zip archive: /browser/* /communicator/* /global/* /help/* /moz
apps/* /contents.rdf /install.rdf /icon.png /preview.png make sure not to just zip up the my_theme parent directory since that will cause the drag and drop install in the next section to fail without error messages.
Embedding Mozilla in a Java Application using JavaXPCOM - Archive of obsolete content
e: (taken from rayh.co.uk) // note, on linux, gtk has to be already initialized for this code to work mozilla moz = mozilla.getinstance(); // now we need to start an xul application, so we get an instance of the xpcom service manager nsiservicemanager servicemanager = moz.getservicemanager(); // now we need to get the @mozilla.org/toolkit/app-startup;1 service: nsi
appstartup
appstartup = (nsi
appstartup)servicemanager.getservicebycontractid("@mozilla.org/toolkit/app-startup;1", nsi
appstartup.ns_i
appstartup_iid); // get the nsiwindowwatcher interface to the above nsiwindowcreator windowcreator = (nsiwindowcreator)
appstartup.queryinterface(nsiwindowcreator.ns_iwindowcreator_iid); // get the window watcher service nsiwindowwatcher windowwatche...
...from step 6) windowwatcher.setwindowcreator(windowcreator); // create the root xul window: nsidomwindow win = windowwatcher.openwindow(null, "chrome://your-app/content/window.xul", "mywindow", "chrome,resizable,centerscreen", null); // set this as the active window windowwatcher.setactivewindow(win); // hand over the application to xpcom/xul, this will block:
appstartup.run(); here is an example of a locationprovider that works : public class locationprovider implements iappfilelocprovider { private final file libxulpath; int counter = 0; public locationprovider(file grepath) { this.libxulpath = grepath; } public file getfile(string aprop, boolean[] apersistent) { file file = null; if (ap...
..."comsd")) { file = new file(file, "components"); } } return file; } public file[] getfiles(string aprop) { file[] files = null; if (aprop.equals("apluginsdl")) { files = new file[1]; files[0] = new file(libxulpath, "plugins"); } return files; } } calling xpcom ui from another thread
appstartup.run() enters the main event loop and will stay there until the application exits.
Document Loading - From Load Start to Finding a Handler - Archive of obsolete content
nsiexternalhelper
appservice if we can't do anything else with a load, we give it to the nsiexternalhelper
appservice and let it look for a helper app, put up the "what do i do now?" dialog, and so forth.
... bird's eye view <map id="loaddiagrammap" name="loaddiagrammap"><area alt="(13) docontent()" coords="534,239,715,300" href="#nsiexternalhelper
appservice::docontent"> <area alt="(10) getcategoryentry()" coords="575,418,821,418,821,455,629,455,629,484,575,484" href="#categorymanager" shape="poly"> <area alt="(12)" coords="539,133,583,163" href="#stream-converter"> <area alt="(11)" coords="485,133,537,163" href="#contenthandler"> <area alt="(9)" coords="445,132,484,165" href="#nsdocumentopeninfo::dispatchcontent"> <area alt="(8)" coords="405,133,439,162" href="#onstartrequest-innards"> <area alt="(7) onstartrequest()" coords="639,129,703,129,703,165,833,165,833,204,639,204" href="#onstartrequest" shape="poly"> <area alt="(6) asyncopen()" coords="637,121,709,121,709,96,783,96,783,58,637,58" href=...
...uri-innards"> <area alt="(0) registercontentlistener()" coords="37,474,346,474,346,505,88,505,88,535,37,535" href="#registercontentlistener" shape="poly"> <area alt="(3) openuri() (nsuriloader)" coords="5,207,312,269" href="#openuri"> <area alt="(2)" coords="102,114,139,148" href="#internalload"> <area alt="(1) loaduri/onlinkclick" coords="77,5,449,59" href="#loaduri"> <area alt="nsiexternalhelper
appservice" coords="527,305,839,339" href="#nsiexternalhelper
appservice"> <area alt="category manager" coords="683,467,807,527" href="#nscategorymanager"> <area alt="nsdocumentopeninfo" coords="371,71,635,185" href="#nsdocumentopeninfo"> <area alt="necko" coords="721,113,821,157" href="#necko"> <area alt="nsuriloader" coords="23,335,215,455" href="#nsuriloader"> <area coords="227,515,485,575" href="#n...
Bundles - Archive of obsolete content
the bundle can hold additional resources currently limited to: application ini settings application icon script for the application chrome, not the web content installing a bundle when prism opens a webapp bundle it will unpack it into the web
apps/{webapp-id} folder.
... this folder is located in the application data folder of the user's home directory on windows, in the ~/.web
apps directory on linux and under ~/library on os x.
...this is why the preferred method of launching is to use the "-webapp [webapp-id]" command line, which looks for the previously installed (unpacked) web application in the prism web
apps/{webapp-id} folder.
ActiveXObject - Archive of obsolete content
warning: this object is a microsoft extension and is supported in internet explorer only, not in windows 8.x store
apps.
...not supported in windows 8.x store
apps.
... note: creating an activexobject on a remote server is not supported in internet explorer 9 standards mode, internet explorer 10 standards mode, internet explorer 11 standards mode, and windows store
apps or later.
Back to the Server: Server-Side JavaScript On The Rise - Archive of obsolete content
now imagine being able to develop web
apps using javascript server-side too.
... full circle if you were part of the early web's big bang in the mid-1990s you might recall that being able to use javascript both client-side and server-side was core to netscape's original vision for web
apps.
... conclusion javascript can be successfully used for full application development on both the client and server, fulfilling netscape's original vision for a single, unified language for the web that makes
apps easier to develop and maintain.
Mobile accessibility - Learn web development
swiping left and right will move between
apps, or buttons/controls if you are in a control bar.
... you can also "explore by touch" — hold your finger down on the screen and drag it around, and your device will read out the different
apps/items you move across.
... responsive design responsive design is the practice of making your layouts and other features of your
apps dynamically change depending on factors such as screen size and resolution, so they are usable and accessible to users of different device types.
WAI-ARIA basics - Learn web development
a whole new set of problems as web
apps started to get more complex and dynamic, a new set of accessibility features and problems started to appear.
... as another example,
apps started to feature complex controls like date pickers for choosing dates, sliders for choosing values, etc.
... the problem is that modern web
apps are often not just static text — they tend to have a lot of dynamically updating content, i.e.
Introduction to web APIs - Learn web development
let's recap this to make it clearer, and also mention where other javascript tools fit in: javascript — a high-level scripting language built into browsers that allows you to implement functionality on web pages/
apps.
... device apis are basically apis for manipulating and retrieving data from modern device hardware in a way that is useful for web
apps.
... the twilio api, which provides a framework for building voice and video call functionality into your app, sending sms/mms from your
apps, and more.
Getting started with Vue - Learn web development
to build more complex
apps, you’ll want to use the vue npm package.
...to make building
apps with vue easier, there is a cli to streamline the development process.
... .vue files (single file components) like in many front-end frameworks, components are a central part of building
apps in vue.
Cross browser testing - Learn web development
what browsers, devices, and other segments should you make sure are tested), lo-fi testing strategies (get yourself a range of devices and some virtual machines and do ad-hoc tests when needed), higher tech strategies (automation, using dedicated testing
apps), and testing with user groups.
...in this article, we look at what is available, how to use task runners, and the basics of how to use commercial browser test automation
apps such as sauce labs and browser stack.
...we will also look at how to integrate your local testing environment with commercial
apps like the ones discussed in the previous article.
AT APIs Support
open komodo - platform for building developer environments miro - a free, open source internet tv and video player any xulrunner application (songbird media player, etc.) extensions to other xul
apps (e.g.
...if you seriously need to understand msaa, you'll need to read the docs on msdn and play with the sample
apps and code that come with msaa sdk 1.3.
...if you seriously need to understand at-spi, you'll need to read the docs on gnome.org and play with the available sample
apps and code, such as at-poke.
Receiving startup notifications
registering with the category manager to register with the category manager, simply call its nsicategorymanager.addcategoryentry() method: categorymanager->addcategoryentry(
appstartup_category, "mycomponentname", "contract-id", pr_true, pr_true, getter_copies(previous)); this causes your component to be instantiated using nsicomponentmanager.createinstance().
... if you want your component to be started as a service, prepend "service," to the contract id: categorymanager->addcategoryentry(
appstartup_category, "mycomponentname", "service,contract-id", pr_true, pr_true, getter_copies(previous)); with "service," specified, the component is instantiated using nsicomponentmanager.getservice().
...what happens next once you've registered with the category manager, at mozilla startup time (or when the embedding application's ns_initembedding() function is called), the
appstartupnotifier component is instantiated, and its observe() method is called; this in turn enumerates all components in the app-startup category and sends them the appropriate notifications.
XPCOM Interface Reference
providernsiaccessiblerelationnsiaccessibleretrievalnsiaccessiblerolensiaccessiblescrolltypensiaccessibleselectablensiaccessiblestatechangeeventnsiaccessiblestatesnsiaccessibletablensiaccessibletablecellnsiaccessibletablechangeeventnsiaccessibletextnsiaccessibletextchangeeventnsiaccessibletreecachensiaccessiblevaluensiaccessiblewin32objectnsialertsservicensiannotationobservernsiannotationservicensi
appshellnsi
appshellservicensi
appstartupnsi
appstartup_mozilla_2_0nsiapplicationcachensiapplicationcachechannelnsiapplicationcachecontainernsiapplicationcachenamespacensiapplicationcacheservicensiapplicationupdateservicensiarraynsiasyncinputstreamnsiasyncoutputstreamnsiasyncstreamcopiernsiasyncverifyredirectcallbacknsiauthinformationnsiauthmodulensiauthpromptnsiauthprompt2nsiauthpromptadapterfactorynsia...
...ragservicensidragsessionnsidroppedlinkhandlernsidroppedlinkitemnsidynamiccontainernsieditornsieditorboxobjectnsieditordocshellnsieditorimesupportnsieditorloggingnsieditormailsupportnsieditorobservernsieditorspellchecknsieffectivetldservicensienumeratornsienvironmentnsierrorservicensieventlistenerinfonsieventlistenerservicensieventsourcensieventtargetnsiexceptionnsiextensionmanagernsiexternalhelper
appservicensiexternalprotocolservicensiexternalurlhandlerservicensiftpchannelnsiftpeventsinknsifactorynsifavicondatacallbacknsifaviconservicensifeednsifeedcontainernsifeedelementbasensifeedentrynsifeedgeneratornsifeedpersonnsifeedprocessornsifeedprogresslistenernsifeedresultnsifeedresultlistenernsifeedtextconstructnsifilensifileinputstreamnsifileoutputstreamnsifilepickernsifileprotocolhandlernsifilesp...
...serinfonsivariantnsiversioncomparatornsiweakreferencensiwebbrowsernsiwebbrowserchromensiwebbrowserchrome2nsiwebbrowserchrome3nsiwebbrowserchromefocusnsiwebbrowserfindnsiwebbrowserfindinframesnsiwebbrowserpersistnsiwebcontenthandlerregistrarnsiwebnavigationnsiwebnavigationinfonsiwebpagedescriptornsiwebprogressnsiwebprogresslistenernsiwebprogresslistener2nsiwebsocketchannelnsiwebsocketlistenernsiweb
appssupportnsiwifiaccesspointnsiwifilistenernsiwifimonitornsiwinaccessnodensiwinapphelpernsiwintaskbarnsiwindowcreatornsiwindowmediatornsiwindowwatchernsiwindowsregkeynsiwindowsshellservicensiworkernsiworkerfactorynsiworkerglobalscopensiworkermessageeventnsiworkermessageportnsiworkerscopensiwritablepropertybagnsiwritablepropertybag2nsixformsmodelelementnsixformsnsinstanceelementnsixformsnsmodelelement...
Index - Firefox Developer Tools
11 application application, debugging, devtools, firefox, guide, manifests, service workers the application panel provides tools for inspecting and debugging modern web
apps (also known as progressive web
apps).
...it's most familiar from film and gaming, but is now widely used as a performance measure for websites and web
apps.
... 93 ui tour the performance tool's ui consists of 4 main pieces: 94 waterfall 95 remote debugging tools, l10n:priority you can use the firefox developer tools on your desktop to debug web sites and web
apps running in other browsers or runtimes.
Using the Notifications API - Web APIs
the notifications api lets a web page or app send notifications that are displayed outside the page at the system level; this lets web
apps send information to a user even if the application is idle or in the background.
... this article looks at the basics of using this api in your own
apps.
...this is a common requirement when an api tries to interact with something outside a web page — at least once, the user needs to specifically grant that application permission to present notifications, thereby letting the user control which
apps/sites are allowed to display notifications.
Fundamentals of WebXR - Web APIs
what webxr is and isn't webxr is an api for web content and
apps to use to interface with mixed reality hardware such as vr headsets and glasses with integrated augmented reality features.
... simpler and lower-priced xr devices typically use an integrated computer or connect to a smartphone, essentially using the mobile cpu and gpu to run
apps, render images, and display them to the user.
... a-frame (specifically designed for creating webxr-based
apps) babylon.js three.js game toolkits the game toolkits are designed for game developers and often include gaming-specific features such as physics models, input control systems, asset management, 3d sound playback, and the like.
JavaScript shells - JavaScript
it can use wxwidgets for gui
apps and was formerly called wxjavascript.
...can use perl modules directly from javascript: dbi for database integration, gtk2 for gui
apps, posix for system programming, etc.
... mozrepl - connect to firefox and other mozilla
apps, explore and modify them from the inside, while they're running.
Web app manifests
web app manifests are part of a collection of web technologies called progressive web
apps (pwas), which are websites that can be installed to a device’s homescreen without an app store.
... unlike regular web
apps with simple homescreen links or bookmarks, pwas can be downloaded in advance and can work offline, as well as use regular web apis.
... }, { "src": "images/touch/homescreen144.png", "sizes": "144x144", "type": "image/png" }, { "src": "images/touch/homescreen168.png", "sizes": "168x168", "type": "image/png" }, { "src": "images/touch/homescreen192.png", "sizes": "192x192", "type": "image/png" }], "related_applications": [{ "platform": "play", "url": "https://play.google.com/store/
apps/details?id=cheeaun.hackerweb" }] } deploying a manifest web app manifests are deployed in your html pages using a <link> element in the <head> of a document: <link rel="manifest" href="/manifest.webmanifest"> note: the .webmanifest extension is specified in the media type registration section of the specification (the response of the manifest file should return content-type: application/ma...
Performance fundamentals - Web Performance
in the context of open web
apps, this document explains in general what performance is, how the browser platform helps improve it, and what tools and processes you can use to test and improve it.
...local caching/offline
apps can be achieved via service workers.
... keep your interface simple one big performance issue we found in html5
apps was that moving lots of dom elements around makes everything sluggish — especially when they feature lots of gradients and drop shadows.
Web technology for developers
developing web applications documentation for web application developers; web
apps are true write-once, deploy anywhere
apps for mobile, desktop, and firefox os.
... web technology references web apis reference material for each of the individual apis that comprise the web's powerful scriptability, including the dom and all of the related apis and interfaces you can use to build web content and
apps.
... accessibilitycss houdinicss: cascading style sheetsdemos of open web technologiesdeveloper guidesexsltevent referencehtml: hypertext markup languagehttpjavascriptmathmlopensearch description formatprivacy, permissions, and information securityprogressive web
apps (pwas)svg: scalable vector graphicstutorialsweb apisweb componentsweb performanceweb app manifestsweb media technologiesweb securityweb technology referencexml: extensible markup languagexpathxslt: extensible stylesheet language transformations ...
2015 MDN Fellowship Program - Archive of obsolete content
self-starter and autonomous worker mentor information brittany storoz, mozilla
apps engineering.
... activities and deliverables help us develop a curriculum on mdn for teaching developers to master performance tooling and to develop web
apps with performance as a feature.
Mozilla Application Framework - Archive of obsolete content
we provide a comprehensive framework that does much of the work for you, tools to help you develop your
apps, and a community of people to help.
... the mozilla app framework can be used to build standalone desktop applications like komodo,
apps that run on top of the mozilla application suite like mozblog, and web applications like the mozilla amazon browser.
FAQ - Archive of obsolete content
it is one of the experiments being conducted by mozilla labs to bridge the divide in the user experience between web applications and desktop
apps.
...at the same time, we're also working to increase the capabilities of those
apps by adding features to the web itself, like support for offline data storage and access to 3d graphics hardware, that will be available to web applications in both prism and firefox.
When To Use ifdefs - Archive of obsolete content
the code in xpfe/ (except for xpfe/
appshell/ and xpfe/components/shistory/) is a hodgepodge mess of "toolkit" and "application-specific" code.
... for an example of an application-specific ifdef that is bad and should be removed, see nsnative
appsupportwin.cpp.
Code Samples - Archive of obsolete content
otherwise it opens the window: const name = "...internal name of the window..." const uri = "...chrome uri of the window..." var w = components .classes["@mozilla.org/
appshell/window-mediator;1"] .getservice(components.interfaces.nsiwindowmediator) .getmostrecentwindow(name) if (w) w.focus() else components .classes["@mozilla.org/embedcomp/window-watcher;1"] .getservice(components.interfaces.nsiwindowwatcher) .openwindow(null, uri, name, "chrome,resizable", null) change the first two lines to specify the window that you want to open.
...t uri = "chrome://calendar/content/" * at the time of writing, sunbird's passwords window is broken close the current window to close the window containing the button, possibly leaving other windows open: close() exit the application to exit the application, first closing all its windows: components .classes['@mozilla.org/toolkit/app-startup;1'] .getservice(components.interfaces.nsi
appstartup) .quit(components.interfaces.nsi
appstartup.eattemptquit) ...
Getting started with XULRunner - Archive of obsolete content
there is an article with a more complicated approach to building xulrunner applications at creating xulrunner
apps with the mozilla build system.
... alternative: run xul
apps with firefox with firefox 3 and later, you can tell the firefox executable to run a xul application from the command line.
2006-10-26 - Archive of obsolete content
summary: mozilla.dev.
apps.firefox - october 20, 2006 - october 26, 2006 announcements none this week.
...(what it is, how to use it) cross-post-and followup fx2 announcment to support-firefox request for when the announcement about firefox 2's release to be posted on the mozilla.dev.
apps.firefox newsgroup.
2006-10-27 - Archive of obsolete content
summary: mozilla.dev.
apps.firefox - october 20, 2006 - october 27, 2006 announcements none this week.
...(what it is, how to use it) cross-post-and followup fx2 announcment to support-firefox request for when the announcement about firefox 2's release to be posted on the mozilla.dev.
apps.firefox newsgroup.
Sunbird Theme Tutorial - Archive of obsolete content
sunbird also contains communicator, global, help and moz
apps components.
...in your <tt>chrome.manifest</tt> file, add lines like this: skin communicator testing chrome/communicator/ skin global testing chrome/global/ skin help testing chrome/help/ skin moz
apps testing chrome/moz
apps/ replacing <tt>testing</tt> with your theme's one-word internal name as before.
Common Firefox theme issues and solutions - Archive of obsolete content
to accomplish this copy the file chrome://moz
apps/skin/extensions/extensions.svg from the default theme into the moz
apps/extensions/ folder of your theme and add the following style rule to the css file extensions.css: .addon[active="false"] .icon { filter: url("chrome://moz
apps/skin/extensions/extensions.svg#greyscale"); opacity:0.3; } about:memory about:memory nodes do not collapse the styling of about:memory is a little messed up in th...
...this issue is fixed by adding the following css instructions to the file browser/preferences/aboutpermissions.css: .site-favicon { height: 16px; width: 16px; -moz-margin-end: 4px; list-style-image: url("chrome://moz
apps/skin/places/defaultfavicon.png"); } web developer tools web developer toolbar {to be added} web console web console buttons do not change appearance on the web console (tools > web developer > web console), the toolbar buttons on the left-hand side do not change their appearance between their toggled on and toggled off status as a result it is not possible to determine which buttons are ena...
contents.rdf - Archive of obsolete content
n="" chrome:name="my_theme" chrome:image="preview.png"> <chrome:packages> <rdf:seq about="urn:mozilla:skin:my_theme:packages"> <rdf:li resource="urn:mozilla:skin:my_theme:browser"/> <rdf:li resource="urn:mozilla:skin:my_theme:communicator"/> <rdf:li resource="urn:mozilla:skin:my_theme:global"/> <rdf:li resource="urn:mozilla:skin:my_theme:moz
apps"/> <rdf:li resource="urn:mozilla:skin:my_theme:help"/> </rdf:seq> </chrome:packages> </rdf:description> <!-- version information.
...--> <rdf:description chrome:skinversion="1.5" about="urn:mozilla:skin:my_theme:browser"/> <rdf:description chrome:skinversion="1.5" about="urn:mozilla:skin:my_theme:communicator"/> <rdf:description chrome:skinversion="1.5" about="urn:mozilla:skin:my_theme:global"/> <rdf:description chrome:skinversion="1.5" about="urn:mozilla:skin:my_theme:moz
apps"/> <rdf:description chrome:skinversion="1.5" about="urn:mozilla:skin:my_theme:help"/> </rdf:rdf> ...
@cc_on - Archive of obsolete content
warning: conditional compilation is not supported in internet explorer 11 standards mode and windows 8.x store
apps.
...n + "."); document.write("<br />"); @if (@_win32) document.write("running on the 32-bit version of windows."); @elif (@_win16) document.write("running on the 16-bit version of windows."); @else document.write("running on a different operating system."); @end @*/ requirements supported in all versions of internet explorer, but not in windows 8.x store
apps.
@if - Archive of obsolete content
warning: conditional compilation is not supported in internet explorer 11 standards mode and windows 8.x store
apps.
...ersion + "."); document.write("<br />"); @if (@_win32) document.write("running on a 32-bit version of windows."); @elif (@_win16) document.write("running on a 16-bit version of windows."); @else document.write("running on a different operating system."); @end @*/ requirements supported in all versions of internet explorer, but not in windows 8.x store
apps.
@set - Archive of obsolete content
warning: conditional compilation is not supported in internet explorer 11 standards mode and windows 8.x store
apps.
... requirements supported in all versions of internet explorer, but not in windows 8.x store
apps.
Requests For Enhancement - Archive of obsolete content
custom controls i think that xforms is a great way to show that 14 year old html hacks can build really powerful web
apps and reduce the need for javascript by 90%.
... now we need to start teaching xforms to web newcomers before they are brainwashed into believing that the only way to build cool web
apps is to do dom surgery with javascript!
Archive of obsolete content
material in this archived content zone should not be used for building new web sites or
apps for modern browsers.
...there are some cases in which the whole content of an xml document must be read from the javascript interpreter (like for web-
apps languages or settings xml documents, for example).
MDN Web Docs Glossary: Definitions of Web-related terms
main axis main thread markup mathml media media (audio-visual presentation) media (css) metadata method microsoft edge microsoft internet explorer middleware mime mime type minification mitm mixin mobile first modem modern web
apps modularity mozilla firefox mutable mvc n namespace nan nat native navigation directive netscape navigator network throttling nntp node node (dom) node (networking) node.js non-normative normative null nu...
...ived performance percent-encoding php pixel placeholder names plaintext png polyfill polymorphism pop3 port prefetch preflight request prerender presto primitive privileged privileged code progressive enhancement progressive web
apps promise property property (css) property (javascript) protocol prototype prototype-based programming proxy server pseudo-class pseudo-element pseudocode public-key cryptography python q quality values quaternion quic r ...
Practical positioning examples - Learn web development
this includes information-heavy
apps like strategy/war games, mobile versions of websites where the screen is narrow and space is limited, and compact information boxes where you might want to make lots of information available without having it fill the whole ui.
...in addition, so-called "single page
apps" are becoming very popular — especially for mobile web uis — because having everything served as a single file cuts down on the number of http requests required to view all the content, thereby improving performance.
The HTML5 input types - Learn web development
your
apps should always perform security checks on any form-submitted data on the server-side as well as the client-side, because client-side validation is too easy to turn off, so malicious users can still easily send bad data through to your server.
... search field search fields are intended to be used to create search boxes on pages and
apps.
Publishing your website - Learn web development
using a web-based ide such as codepen there are a number of web
apps that emulate a website development environment, allowing you to enter html, css and javascript, and then display the result of that code as a website — all in one browser tab.
...however, the features are limited, and these
apps usually don't provide hosting space for assets (like images).
What’s in the head? Metadata in HTML - Learn web development
it will look something like this (although it may change over time): <meta name="description" content="the mdn web docs site provides information about open web technologies including html, css, and apis for both web sites and progressive web
apps."> now search for "mdn web docs" in your favorite search engine (we used google.) you'll notice the description <meta> and <title> element content used in the search result — definitely worth having!
...in the mdn web docs sourcecode, you'll find this: <meta property="og:image" content="https://developer.cdn.mozilla.net/static/img/opengraph-logo.dc4e08e2f6af.png"> <meta property="og:description" content="the mozilla developer network (mdn) provides information about open web technologies including html, css, and apis for both web sites and html5
apps.
Manipulating documents - Learn web development
previous overview: client-side web apis next when writing web pages and
apps, one of the most common things you'll want to do is manipulate the document structure in some way.
...as you start building larger and more involved
apps, you will probably start using the second method more, but it is really up to you.
Server-side web frameworks - Learn web development
— other factors include: framework purpose/origin: some web frameworks were initially created to solve certain types of problems, and remain better at creating web
apps with similar constraints.
...by contrast, flask is a much lighter-weight framework and is great for creating web
apps running on embedded devices.
Browser API
the html browser api is an extension of the html <iframe> element that allows web
apps to implement browsers or browser-like applications.
... utility methods last, there are some utility methods, useful for
apps that host a browser <iframe>.
Services.jsm
for example, to obtain a reference to the preferences service: var prefsservice = services.prefs; provided service getters service accessor service interface service name androidbridge nsiandroidbridge 1 appinfo nsixulappinfo nsixulruntime application information service
appshell nsi
appshellservice application shell service blocklist nsiblocklistservice blocklist service cache nsicacheservice cache service cache2 nsicachestorageservice cache storage service clipboard nsiclipboard clipboard console nsiconsoleservice error console service contentprefs nsicontentprefservice c...
...efs nsiprefbranch nsiprefbranch2 nsiprefservice preferences service prompt nsipromptservice prompt service scriptloader mozijssubscriptloader javascript subscript loader service scriptsecuritymanager nsiscriptsecuritymanager script security manager search nsibrowsersearchservice browser search service startup nsi
appstartup application startup service storage mozistorageservice storage api service strings nsistringbundleservice string bundle service sysinfo nsipropertybag2 system info service telemetry nsitelemetry telemetry service tm nsithreadmanager thread manager service urifixup nsiurifixup uri fixup service ...
XPCOMUtils.jsm
apps: [ ...
...}; note: the ability to register the component in a category only on specific applications by adding the
apps field to a category entry was added in gecko 2.
Index
9 localization content best practices
apps, extensions, internationalization, localization, mozilla, l10n, l12y this document provides best practices for developers to create localizable code, and describes how to avoid some localizability (l12y) common mistakes.
... 36 creating localizable web
apps no summary!
nsIMacDockSupport
note: the hidden window of firefox (services.
appshel.hiddendomwindow) loads on browser startup, so if you would like to access it on startup of the browser make sure to check and wait for the window to be loaded.
...var macmenuitem = services.
appshell.hiddendomwindow.document.createelementns('http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul', 'menuitem'); macmenuitem.setattribute('label', 'show most recent window'); macmenuitem.setattribute('id', 'mymacmenuitem'); macmenuitem.addeventlistener('command', function(){ var docksupport = cc['@mozilla.org/widget/macdocksupport;1'].getservice(ci.nsimacdocksupport); docksupport.activateapplication(true); services.wm.getmostrecentwindow(null).focus() }) services.
appshell.hiddendomwindow.document.getelementbyid('menu_mac_dockmenu').appendchild(macmenuitem) this adds the "sh...
nsIUpdateItem
toolkit/moz
apps/extensions/public/nsiextensionmanager.idlscriptable describes an item managed by the extension system, providing metadata describing the item.
... note: add-ons can specify a targetapplication id of toolkit@mozilla.org in their install manifest for compatibility with all
apps using a specific release of the toolkit.
File and Directory Entries API - Web APIs
the file and directory entries api simulates a local file system that web
apps can navigate within and access files in.
... you can develop
apps which read, write, and create files and/or directories in a virtual, sandboxed file system.
MSSiteModeEvent - Web APIs
*this property is not supported for windows store
apps using javascript.
...*this property is not supported for windows store
apps using javascript.
Using the Payment Request API - Web APIs
recommending a payment app when user has no
apps if you select to pay with the bobpay demo payment provider on this merchant page, it tries to call paymentrequest.show(), while intercepting the notsupportederr exception.
...for demo purposes: intropanel.style.display = 'none'; legacypanel.style.display = 'block'; } }); }); note: see our recommending a payment app when user has no
apps demo for the full code.
Web Speech API - Web APIs
the web speech api enables you to incorporate voice data into web
apps.
... the web speech api has two parts: speechsynthesis (text-to-speech), and speechrecognition (asynchronous speech recognition.) web speech concepts and usage the web speech api makes web
apps able to handle voice data.
Web Performance
instead, we're going to look at a more important issue when building web
apps: starting up as asynchronously as possible.
...in the context of open web
apps, this document explains in general what performance is, how the browser platform helps improve it, and what tools and processes you can use to test and improve it.performance monitoring: rum vs synthetic monitoringsynthetic monitoring and real user monitoring (rum) are two approaches for monitoring and providing insight into web performance.
WebAssembly Concepts - WebAssembly
this has huge implications for the web platform — it provides a way to run code written in multiple languages on the web at near-native speed, with client
apps running on the web that previously couldn’t have done so.
...the javascript code that powers your
apps.
WebAssembly
in a nutshell webassembly has huge implications for the web platform — it provides a way to run code written in multiple languages on the web at near native speed, with client
apps running on the web that previously couldn’t have done so.
...this allows you to take advantage of webassembly's performance and power and javascript's expressiveness and flexibility in the same
apps, even if you don't know how to write webassembly code.
Canvas code snippets - Archive of obsolete content
style('rgb(30, 110, 210)') .transform(10, 3, 4, 5, 1, 0) .strokerect(2, 10, 15, 20) .context; // use property name as a function (but without arguments) to get the value var strokestyle = canvas2dcontext(canvas) .strokestyle('rgb(50, 110, 210)') .strokestyle(); code usable only from privileged code these snippets are only useful from privileged code, such as extensions or privileged
apps.
Customizing the download progress bar - Archive of obsolete content
in your jar.mn file, add the following (replacing "myextension" with the name of your extension's chrome package): % overlay chrome://moz
apps/content/downloads/downloads.xul chrome://myextension/content/downloads-overlay.xul in downloads-overlay.xul, reference the new stylesheet: <?xml version="1.0"?> <?xml-stylesheet href="chrome://myextension/skin/myextension.css" type="text/css"?> <overlay id="mydownloadoverlay" xmlns="http://www.mozilla.org/keymaster/gat...re.is.only.xul"> </overlay> in jar.mn, make sure that there is an asterisk in front of the entry for myextension.css so that...
Miscellaneous - Archive of obsolete content
var ci = components.interfaces; var cc = components.classes; //assume you can not get the main window object directly, if you can, just use it var wm = cc["@mozilla.org/
appshell/window-mediator;1"].getservice(ci.nsiwindowmediator); var mainwindow = wm.getmostrecentwindow("navigator:browser"); //get sessionhistory from the current selected tab var history = mainwindow.gbrowser.selectedbrowser.webnavigation.sessionhistory; and then get the page you want, and it's postdata.
Windows - Archive of obsolete content
example window.open(); //this open a pop-up window that could be "blocked" client-side //the following code generate an error as describe in the following warning box var wm = components.classes["@mozilla.org/
appshell/window-mediator;1"] .getservice(components.interfaces.nsiwindowmediator); var newwindow = wm.getmostrecentwindow("navigator:browser"); var b = newwindow.gbrowser; the code generate a typeerror from firefox console.
Extension Packaging - Archive of obsolete content
themes, and xulrunner applications extension packaging: specific information about how to package extensions theme packaging: specific information about how to package themes multiple-item extension packaging: specific information about multiple-item extension xpis xul application packaging: specific information about how to package xulrunner applications chrome registration printing in xul
apps ...
Inline options - Archive of obsolete content
see mxr for what all this holds: http://mxr.mozilla.org/mozilla-release/source/toolkit/moz
apps/extensions/content/setting.xml for example you can fire this.inputchanged() etc etc.
Chapter 4: Using XPCOM—Implementing advanced processes - Archive of obsolete content
listing 4: get active browser window netscape.security.privilegemanager .enableprivilege('universalxpconnect'); var windowmediator = components .classes['@mozilla.org/
appshell/window-mediator;1'] .getservice(components.interfaces.nsiwindowmediator); var browser = windowmediator.getmostrecentwindow('navigator:browser'); alert(browser.gbrowser.mtabs.length); get overview of all windows with a certain type use the nsiwindowmediator.getenumerator() method to get an overview of all windows that have a certain type.
Setting up an extension development environment - Archive of obsolete content
chromebug combines elements of a javascript debugger and dom (firefox, "kinda works for thunderbird") mozrepl explore and modify firefox and other mozilla
apps while they run (firefox, thunderbird version is not working) executejs an enhanced javascript console (firefox version, thunderbird version is not working) xpcomviewer an xpcom inspector (firefox and thunderbird) javascript shells to test snippets of javascript (firefox and thunderbird) sqlite manager to manage the sqlite database (firefox and thunderbird) viewabout enables access to various...
JXON - Archive of obsolete content
there are some cases in which the whole content of an xml document must be read from the javascript interpreter (like for web-
apps languages or settings xml documents, for example).
Structure of an installable bundle - Archive of obsolete content
ner applications extension packaging: specific information about how to package extensions theme packaging: specific information about how to package themes multiple-item extension packaging: specific information about multiple-item extension xpis xul application packaging: specific information about how to package xulrunner applications chrome registration printing in xul
apps ...
chrome.manifest - Archive of obsolete content
copy the following text and paste it into a text file, then save that file as "chrome.manifest": skin global my_theme jar:chrome/my_theme.jar!/global/ skin moz
apps my_theme jar:chrome/my_theme.jar!/moz
apps/ skin messenger my_theme jar:chrome/my_theme.jar!/messenger/ skin messenger-newsblog my_theme jar:chrome/my_theme.jar!/messenger-newsblog/ skin communicator my_theme jar:chrome/my_theme.jar!/communicator/ skin help my_theme jar:chrome/my_theme.jar!/help/ skin navigator my_theme jar:chrome/my_theme.jar!/navigator/ skin editor my_theme jar:chrome/my_theme.jar!/editor/ ...
BlogPosts - Archive of obsolete content
just browsing: mozilla prism update thanscorner: mozilla prism - webrunner with pazzaz mozilla prism - a revolution in web
apps thanscorner: mozilla webrunner 0.7 site specific browsers webrunner using webrunner webrunner + gears = offline desktop reader webrunner 0.5 webrunner 0.5 - mac support webrunner 0.5 - linux install webrunner, google reader, and google notebook distraction free gtd - 32+ web app files for online todo lists mozilla webrunner: a one-window, tabless browser with no url bar webrunner becomes prism - a mozilla labs project mozilla labs: prism alex faaborg: prism mozilla prism: bringing web
apps to the desktop everyone should use site specific browsers mozilla prism portable (spanish) prism, l'avenir des applications web selon mozilla (french) mozilla prism : bundle...
BundleLibrary - Archive of obsolete content
bundles gmail: gmail.webapp google calendar: gcalendar.webapp google docs: gdocs.webapp google groups: groups.webapp google analytics: ganalytics.webapp google reader: greader.webapp facebook: facebook.webapp twitter: twitter.webapp user contributed bundles gmail w/gtalk: gmail.webapp (note: work with latest version of prism!) 32 online todo lists: zip file with web
apps for 32 online todo lists anywhere.fm: anywhere.fm@prism.app.webapp a service that lets you upload your entire music library to their servers and listen from anywhere through a slick flash interface.
Scripting - Archive of obsolete content
the following code can be used by web content to determine whether it is running in prism: if ("platform" in window) { // prism-specific code goes here } see the nsiplatformglue idl definition file for details of the methods available to prism
apps.
Tamarin build documentation - Archive of obsolete content
in which case the process will complete with errors when it tries to create the shared lib crt0.o: $ /android-public/android-ndk/toolchains/arm-eabi-4.4.0/prebuilt/darwin-x86/bin/../lib/gcc/arm-eabi/4.4.0/../../../../arm-eabi/bin/ld: crt0.o: no such file: no such file or directory collect2: ld returned 1 exit status make[2]: *** [link_app.] error 1 make[1]: *** [openssl] error 2 make: *** [build_
apps] error 1 you can ignore these errors.
Index - Archive of obsolete content
434 how to quit a xul application xul, xulrunner script can attempt to quit a xul application, or force the application to quit, using the nsi
appstartup interface.
appendNotification - Archive of obsolete content
var window=components.classes["@mozilla.org/
appshell/window-mediator;1"] .getservice(components.interfaces.nsiwindowmediator) .getmostrecentwindow("navigator:browser"); } if (typeof gbrowser === "undefined") { //if there is no gbrowser defined, get it var gbrowser = window.gbrowser; } function testnotificationbutton1callback(thenotification, buttoninfo, e...
Printing from a XUL App - Archive of obsolete content
ner applications extension packaging: specific information about how to package extensions theme packaging: specific information about how to package themes multiple-item extension packaging: specific information about multiple-item extension xpis xul application packaging: specific information about how to package xulrunner applications chrome registration printing in xul
apps ...
Introduction - Archive of obsolete content
it is still possible to enable this for selected sites to let legacy
apps to continue working, but for new remote applications you should use html to create your user interface instead; most of the features you used to have to use xul for are available in html5.
Creating a Windows Inno Setup installer for XULRunner applications - Archive of obsolete content
[setup] appname=my app appvername=my app 1.0 apppublisher=mark finkle apppublisherurl=http://developer.mozilla.org/en/docs/getting_started_with_xulrunner
appsupporturl=http://developer.mozilla.org/en/docs/getting_started_with_xulrunner appupdatesurl=http://developer.mozilla.org/en/docs/getting_started_with_xulrunner defaultdirname={pf}\my app defaultgroupname=my app allownoicons=yes outputdir=..\build\output outputbasefilename=myapp-1.0-win32 ; setupiconfile= compression=lzma solidcompression=yes [languages] name: english; messagesfile: compiler:defau...
How to enable locale switching in a XULRunner application - Archive of obsolete content
getservice(components.interfaces.nsiprefbranch); prefs.setcharpref("general.useragent.locale", newlocale); // restart application var
appstartup = components.classes["@mozilla.org/toolkit/app-startup;1"] .getservice(components.interfaces.nsi
appstartup);
appstartup.quit(components.interfaces.nsi
appstartup.erestart | components.interfaces.nsi
appstartup.eattemptquit); } catch(err) { alert("couldn't change locale: " + err); } } * * * here i include a complete xulrunner application ex...
MacFAQ - Archive of obsolete content
ponents.classes["@mozilla.org/consoleservice;1"] .getservice(components.interfaces.nsiconsoleservice) mconsoleservice.logstringmessage("myxul: " + alogstring + "\n"); } function checkotherwindows() { var singletonwindowtype = nspreferences.copyunicharpref("toolkit.singletonwindowtype"); var windowmediator = components.classes["@mozilla.org/
appshell/window-mediator;1"] .getservice(components.interfaces.nsiwindowmediator); var win = windowmediator.getmostrecentwindow(singletonwindowtype); if (win) { window.close(); win.focus(); } } if (window.arguments && window.arguments[0]){ try { var cmdline = window.arguments[0] .queryinte...
What XULRunner Provides - Archive of obsolete content
endering engine dom editing and transaction support (no ui) cryptography xbl (xbl2 planned) xul svg xslt xml extras (xmlhttprequest, domparser, etc.) web services (soap) auto-update support (not yet complete) type ahead find toolbar history implementation (the places implementation in the 1.9 cycle) accessibility support ipc services for communication between gecko-based
apps (not yet complete) storage/sqlite interfaces user interface features the following user interface is supplied by xulrunner, and may be overridden by embedders under certain circumstances: apis and user interface for installing, uninstalling, and upgrading xul applications.
2006-10-06 - Archive of obsolete content
summary: mozilla.dev.
apps.calendar - september 29 - october 6, 2006 announcements sunbird and lightning 0.3rc1 available gordon announced the candidate (rc) builds for sunbird and lightning 0.3 are released.
2006-09-29 - Archive of obsolete content
summary: mozilla.dev.
apps.firefox - september 22-29, 2006 announcements bon echo 20060921 nightly to recieve "major update" offer mike beltnzer announced that 'users running the bon echo 20060921 nightly build will be offered the chance to upgrade to a "new version"' firefox start up performance boris zbarsky recently performed some profiling of firefox's start up - these are some of the details discussions problem handling dmg files on mac discussion about why sometimes dmg files are not mounted correctly after they are downloaded.
2006-10-06 - Archive of obsolete content
summary: mozilla.dev.
apps.firefox - september 30 - october 6, 2006 announcements vista compatibility lab mike schroepfer announced the current work being done testing mozilla products with vista.
Building up a basic demo with PlayCanvas - Game development
engine vs editor the engine itself can be used as a standard library by including its javascript file directly in your html, so you can start coding right away; in addition the playcanvas toolset comes with an online editor that you can use to drag and drop components onto the scene — a great way to create games and other
apps requiring scenes if you're more of a designer than a coder.
Visual-js game engine - Game development
( + server engine tools + server part of web
apps ) -3d part : webgl based on three.js engine -3d part : webgl2 based on glmatrix 2.0 -2d part (new): this is typescript based game engine (client part ts).
Accessible multimedia - Learn web development
if for example you are dealing with an immersive 3d game or virtual reality app, it really is quite difficult to provide text alternatives for such an experience, and you might argue that blind users are not really in the target audience bracket for such
apps.
What is accessibility? - Learn web development
different operating systems have different accessibility apis available : windows: msaa/iaccessible, uiaexpress, iaccessible2 mac os x: nsaccessibility linux: at-spi android: accessibility framework ios: uiaccessibility where the native semantic information provided by the html elements in your web
apps falls down, you can supplement it with features from the wai-aria specification, which add semantic information to the accessibility tree to improve accessibility.
Client-side form validation - Learn web development
your
apps should always perform security checks on any form-submitted data on the server-side as well as the client-side, because client-side validation is too easy to bypass, so malicious users can still easily send bad data through to your server.
Accessibility API cross-reference
an interesting problem is that mozilla, safari/khtml, opera, staroffice and other
apps are cross-platform, but there is currently no cross-platform accessibility api.
Accessible Toolkit Checklist
the high contrast theme can be toggled dynamically with leftalt+leftshift+printscreen expose the spi_getscreenreader flag to xml/scripts so that
apps can alter behavior use system highlight color where possible for item selection, but never use that exact color in more than 1 place at a time, otherwise screen reader will read everything with that color whenever highlight changes pay attention to spi_getcaretwidth for the correct width of the caret pay attention to 'route mouse pointer to default button' setting it's pos...
ZoomText
our main focus is on the browser itself, so you you only need to install mailnews or address book if curious about the other
apps.
Testopia
links faq wiki docs bugs (please read the bug reporting guide) official testopia blog irc: #testopia or #bugzilla user help support-webtools@lists.mozilla.org developers dev-
apps-webtools@lists.mozilla.org downloads download 2.5 (bugzilla 4.2) download 2.4 (bugzilla 3.6 and 4.0) archived versions developers greg hendricks vance baarda (former developer) ed fuentetaja (former developer) ...
Creating a Language Pack
l10n binary repack for
apps currently in development, you need to get the right strings for the build you use.
Adding APIs to the navigator object
real-world example you can see an example of how this is used in firefox by taking a look at how the moz
apps api is implemented: dom/
apps/web
apps.manifest dom/
apps/web
apps.js ...
Configuring Build Options
some extensions are not compatible with all
apps, for example: cookie is not compatible with thunderbird typeaheadfind is not compatible with any toolkit app (firefox, thunderbird) unless you know which extensions are compatible with which
apps, do not use the --enable-extensions option; the build system will automatically select the proper default set of extensions.
ESLint
understanding rules and errors not all files are linted currently eslint runs on: .js .jsx .jsm .xml .html .xhtml additionally, some directories and files are ignored, see the .eslintignore file handling errors if your code fails an eslint rule, you'll get an error similar to this: /gecko/toolkit/moz
apps/installer/js-compare-ast.js 18:39 error 'snarf' is not defined.
SVG Guidelines
cover parts of this document: mostly complete command line tool: https://github.com/svg/svgo alternatives to svgo: https://github.com/razrfalcon/svgcleaner https://github.com/scour-project/scour gui for command line tool (use with "prettify code" and "remove <title>" options on): https://jakearchibald.github.io/svgomg/ good alternative to svgo/svgomg: https://petercollingridge.
appspot.com/svg-editor fixes the excessive number precision: https://simon.html5.org/tools/js/svg-optimizer/ converts inline styles to svg attributes: https://www.w3.org/wiki/svgtidy raphaeljs has a couple of utilities that may be useful: raphael.js ...
Experimental features in Firefox
nightly 31 yes developer edition 31 no beta 31 no release 31 no preference name layout.css.convertfromnode.enable payment request api primary payment handling the payment request api provides support for handling web-based payments within web content or
apps.
Multiple Firefox profiles
web developers might want a secondary profile for testing websites,
apps, or other projects on different firefox channels.
Firefox Operational Information Database: SQLite
lect one of the tables listed in the left column and see the current contents of the database in the 'browse & search' tab.) some databases are used by the browser itself, others are used by applications that you have installed or used; for example: content-prefs.sqlite cookies.sqlite download.sqlite formhistory.sqlite persmissions.sqlite places.sqlite search.sqlite signons.sqlite web
appstore.sqlite ...
Using the Browser API
the html browser api is an extension of the html <iframe> element that allows web
apps to implement browsers or browser-like applications.
HTMLIFrameElement.clearMatch()
note: use of the browser api requires a privileged app, and browser and/or embed-
apps permissions, depending on what you want to do.
HTMLIFrameElement.executeScript()
note: use of the browser api requires a privileged app, and browser and/or embed-
apps permissions, depending on what you want to do.
HTMLIFrameElement.findAll()
note: use of the browser api requires a privileged app, and browser and/or embed-
apps permissions, depending on what you want to do.
HTMLIFrameElement.findNext()
note: use of the browser api requires a privileged app, and browser and/or embed-
apps permissions, depending on what you want to do.
mozbrowserloadend
although implementations may change in the future and it is not supported widely across browsers, it is suitable for use in code dedicated to firefox os
apps.
Chrome-only API reference
browser apithe html browser api is an extension of the html <iframe> element that allows web
apps to implement browsers or browser-like applications.
Overview of Mozilla embedding APIs
contract-id: ns_iunknowncontenttypehandler_contractid implemented interfaces: nsiunknowncontenttypehandler helperapp launch dialog contract-id: ns_externalhelper
appservice_contractid implemented interfaces: nsiexternalhelper
appservice preferences service the preferences service provides access to persistent data stored within a user's profile directory.
How to Report a Hung Firefox
another way to trigger a crash in a hung tab is to run the following script in the browser console (opened after selecting the hung tab): let wm = cc["@mozilla.org/
appshell/window-mediator;1"].
IME handling guide
mcaret::moffset always same as selection start offset even when selection isn't coll
appsed.
Localization and Plurals
chrome://moz
apps/locale/downloads/do...tes,hours,days chrome://moz
apps/locale/downloads/do...dstitlepercent chrome://browser/locale/browser.prop...auseddownloads version history 0.1: initial version with pluralrule check, properties input loading, table generation, sample output display 0.2: use pluralform.numforms() to get the number of forms instead of figuring out locally to better support future rules -...
Localizing extension descriptions
localizing before gecko 1.9 before gecko 1.9, add-on developers must go through a special process to define localized add-on descriptions for add-ons targeting toolkit-based
apps (such as firefox or thunderbird).
Localizing extension metadata on addons.mozilla.org
amo doesn't directly provide translation assistance to extension authors, but there are a couple services that can help: babelzilla.org babelzilla.org is a community dedicated to the localization of extensions for moz family
apps.
Activity Monitor, Battery Status Menu and top
if a laptop is closed for several hours and then reopened, those hours are not included in the calculation.) battery status menu when you click on the battery icon in the os x menu bar you get a drop-down menu that includes a list of “
apps using significant energy”.
Phishing: a short definition
this can be phished by an attacker, though with totp
apps the attacker has limited time to make their unauthorized login.
Profile Manager
by default, profile manager will manage firefox profiles, but you can also use it to work with profiles of other xulrunner
apps, like thunderbird or seamonkey.
L20n
about "about {{ brandname }}"> here is the same string being provided in slovenian: <brandname { nominative: "firefox", genitive: "firefoxa", dative: "firefoxu", accusative: "firefox", locative: "firefoxu", instrumental: "firefoxom" }> <about "o {{ brandname.locative }}"> for developers documentation for developers wanting to implement localization functionality on their web
apps using l20n.
Rhino documentation
using rhino with bean scripting framework (bsf) how to use rhino with
apps that support bsf (bean scripting framework) from the apache jakarta project.
Zest
usecases reporting security vulnerabilities to developers reporting security vulnerabilities to companies defining active and passive scanner rules deep integration with security tools runtimes the runtime environments that support zest tools the tools that include support zest implementation the state of zest development videos simon demoed zest at
appsec usa in november 2013, and the full video of my talk is available on youtube.
Setting up an update server
these are the files that must be changed: toolkit/components/maintenanceservice/moz.build toolkit/moz
apps/update/tests/moz.build firefox should otherwise be built normally.
Toolkit API
ner applications extension packaging: specific information about how to package extensions theme packaging: specific information about how to package themes multiple-item extension packaging: specific information about multiple-item extension xpis xul application packaging: specific information about how to package xulrunner applications chrome registration printing in xul
apps see also the following developer pages contain examples and discussions of particular topics: xul xul overlays developing extensions xulrunner developing themes dom rdf storage ...
How to build an XPCOM component in JavaScript
depth = @depth@ topsrcdir = @top_srcdir@ srcdir = @srcdir@ vpath = @srcdir@ include $(depth)/config/autoconf.mk # module specifies where header files from this makefile are installed # use dom if your component implements a dom api module = dom # name of the typelib xpidl_module = dom_
apps # set to 1 if the module should be part of the gecko runtime common to all applications gre_module = 1 # the idl sources xpidlsrcs = \ helloworld.idl \ $(null) include $(topsrcdir)/config/rules.mk xpidl_flags += \ -i$(topsrcdir)/dom/interfaces/base \ -i$(topsrcdir)/dom/interfaces/events \ $(null) creating the component using xpcomutils in firefox 3 and later you can use import xpcomut...
Components.utils.importGlobalProperties
var domfile = services.
appshell.hiddendomwindow.file('/path/to/file'); xpcom components some objects have an xpcom alternative, which typically allows more flexibility then the dom version here is an example of how to use the dom xmlhttprequest through xpcom interface of nsixmlhttprequest: var oreq = cc["@mozilla.org/xmlextras/xmlhttprequest;1"].createinstance(ci.nsixmlhttprequest); ...
Examples
the test
apps can be found at mozilla/extensions/java/xpcom/tests.
nsIRegistry
perhaps if we quit with the xpconnect:
appshellservice, it will work.
amIInstallCallback
toolkit/moz
apps/extensions/amiinstalltrigger.idlscriptable a callback function that web pages can implement to be notified when triggered installs complete.
amIInstallTrigger
toolkit/moz
apps/extensions/amiinstalltrigger.idlscriptable called when an install completes or fails.
amIWebInstallInfo
toolkit/moz
apps/extensions/amiwebinstalllistener.idlscriptable this interface is used by the default implementation of amiwebinstalllistener to communicate with the running application and allow it to warn the user about blocked installs and start the installs running.
amIWebInstallListener
toolkit/moz
apps/extensions/amiwebinstalllistener.idlscriptable starts all installs.
amIWebInstallPrompt
toolkit/moz
apps/extensions/amiwebinstalllistener.idlscriptable called when installation by websites is currently disabled.
amIWebInstaller
toolkit/moz
apps/extensions/amiwebinstaller.idlscriptable this interface is used to allow web pages to start installing add-ons.
nsIAlertsService
getservice(components.interfaces.nsialertsservice); try { alertsservice.showalertnotification("chrome://moz
apps/skin/downloads/downloadicon.png", "alert title", "alert text goes here.", false, "", null, ""); } catch (e) { // this can fail on mac os x } listening for callbacks you can be notified when the notification window disappears or the user clicks on the message by passing an object implementing nsiobserver as the alertl...
nsIApplicationUpdateService
toolkit/moz
apps/update/nsiupdateservice.idlscriptable this interface describes a global application service that handles performing background update checks.
nsIDocShell
kcharsetfrompreviousloading methods addsessionstorage() add a web
apps session storage object to the docshell.
nsIFilePicker
filter
apps 0x040 corresponds to the platform specific application filter for file extensions.
nsIInstallLocation
toolkit/moz
apps/extensions/public/nsiextensionmanager.idlscriptable interface representing a location where extensions, themes and so on are installed.
nsIMsgCompFields
(bug 249530) newsgroups astring newshost char * newsposturl char * organization astring otherrandomheaders astring no longer exists - see https://groups.google.com/forum/#!topic/mozilla.dev.
apps.thunderbird/s4ofmm8_b28 priority char * receiptheadertype print32 references char * replyto astring securityinfo nsisupports subject astring templatename astring temporaryfiles char * obsolete temporaryfiles obsolete, do not use anymore to astring ...
nsIPropertyBag
goodies obtained from window.navigator are: appcodename:"mozilla" appname:"netscape" appversion:"5.0 (windows)" battery:batterymanager buildid:"20140529161749" cookieenabled:true donottrack:"yes" geolocation:geolocation language:"en-us" mimetypes:mimetypearray mozalarms:null moz
apps:xpcwrappednative_nohelper mozcameras:cameramanager mozconnection:mozconnection mozcontacts:contactmanager mozid:null mozkeyboard:xpcwrappednative_nohelper mozpay:null mozpermissionsettings:null mozphonenumberservice:phonenumberservice mozpower:mozpowermanager moztcpsocket:null online:true oscpu:"windows nt 5.1" platform:"win32" plugins:pluginarray product:"gecko" productsub:"20100101" useragent:"...
nsIUpdate
toolkit/moz
apps/update/nsiupdateservice.idlscriptable an interface that describes an object representing an available update to the current application - this update may have several available patches from which one must be selected to download and install, for example we might select a binary difference patch first and attempt to apply that, then if the application process fails fall back to downloading a complete file-replace patch.
nsIUpdateCheckListener
toolkit/moz
apps/update/nsiupdateservice.idlscriptable an interface describing an object that listens to the progress of an update check operation.
nsIUpdateChecker
toolkit/moz
apps/update/nsiupdateservice.idlscriptable this interface describes an object that knows how to check for software updates.
nsIUpdateManager
toolkit/moz
apps/update/nsiupdateservice.idlscriptable this interface describes a global application service that maintains a list of previously installed updates, as well as the currently in use update.
nsIUpdatePatch
toolkit/moz
apps/update/nsiupdateservice.idlscriptable an interface that describes an object representing a patch file that can be downloaded and applied to a version of this application so that it can be updated.
nsIUpdatePrompt
toolkit/moz
apps/update/nsiupdateservice.idlscriptable this interface describes an object that can be used to show various update-related notifications to the user.
nsIUpdateTimerManager
toolkit/moz
apps/update/nsiupdatetimermanager.idlscriptable this interface provides a global application service that provides support for long-duration timers (on the order of many days, weeks, or even months).
nsIWebContentHandlerRegistrar
xpfe/
appshell/public/nsiwebcontenthandlerregistrar.idlscriptable applications wishing to use web content handlers need to implement this interface.
nsIWebProgressListener
.charset, flag: aflag, }); }, // for definitions of the remaining functions see related documentation onprogresschange: function(awebprogress, arequest, curself, maxself, curtot, maxtot) {}, onstatuschange: function(awebprogress, arequest, astatus, amessage) {}, onsecuritychange: function(awebprogress, arequest, astate) {} } let filter = cc["@mozilla.org/
appshell/component/browser-status-filter;1"] .createinstance(ci.nsiwebprogress); filter.addprogresslistener(mylistener, ci.nsiwebprogress.notify_all); let webprogress = docshell.queryinterface(ci.nsiinterfacerequestor) .getinterface(ci.nsiwebprogress); webprogress.addprogresslistener(filter, ci.nsiwebprogress.notify_all); xulbrowserwindow.onstatechange (etc...
nsIXULBrowserWindow
xpfe/
appshell/public/nsixulbrowserwindow.idlscriptable provides methods that may be called from the internals of the browser area to tell the containing xul window to update its user interface.
XPCOM Interface Reference by grouping
managerstorage nsiloginmetainfo history nsiglobalhistory nsiglobalhistory2 nsiglobalhistory3 ssl nsibadcertlistener2 system action nsicancelable application application nsiapplicationupdateservice nsi
appshell nsi
appshellservice nsi
appstartup xul nsixulappinfo nsixulruntime nsixultemplatebuilder nsixultemplatequeryprocessor nsixultemplateresult bookmark livemark nsilivemarkservice ...
Storage
for storage api help, you can post to mozilla.dev.
apps.platform on the news server news.mozilla.org.
Index
110 tips and tricks from the newsgroups thunderbird the following discussions on mozilla.dev.
apps.thunderbird and mozilla.dev.extensions include useful tips for thunderbird add-on developers.
Theme Packaging
theme file layout thunderbird themes are packaged in an xpi file with the following structure: theme.xpi: install.rdf preview.png icon.png chrome/ browser/files communicator/files global/files moz
apps/files ...
Tips and Tricks from the newsgroups
the following discussions on mozilla.dev.
apps.thunderbird and mozilla.dev.extensions include useful tips for thunderbird add-on developers.
Working with windows in chrome code
you could check the location property of the opener and use opener.opener in case it's the extension manager window, but a better way is to use nsiwindowmediator: var wm = components.classes["@mozilla.org/
appshell/window-mediator;1"] .getservice(components.interfaces.nsiwindowmediator); var browserwindow = wm.getmostrecentwindow("navigator:browser"); // read values from |browserwindow| you might be tempted to use a similar technique to apply the changes the user made in the options dialog, but a better way to do that is to use preferences observers.
Mozilla
signing mozilla
apps for mac os x mac os x's gatekeeper functionality prevents users from launching applications that haven't been code-signed, in order to help keep their computers secure.
MutationEvent - Web APIs
preface the mutation events have been marked as deprecated in the dom events specification, as the api's design is flawed (see details in the "dom mutation events replacement: the story so far / existing points of consensus" post to public-web
apps).
NavigatorConcurrentHardware - Web APIs
the navigatorconcurrenthardware mixin adds to the navigator interface features which allow web content to determine how many logical processors the user has available, in order to let content and web
apps optimize their operations to best take advantage of the user's cpu.
PaymentRequest - Web APIs
the payment request api's paymentrequest interface the primary access point into the api, and lets web content and
apps accept payments from the end user on behalf of the operator of the site or the publisher of the app.
Push API - Web APIs
this allows
apps to react to push messages being received, for example, by displaying a notification (using serviceworkerregistration.shownotification().) each subscription is unique to a service worker.
Screen - Web APIs
methods screen.lockorientation lock the screen orientation (only works in fullscreen or for installed
apps) screen.unlockorientation unlock the screen orientation (only works in fullscreen or for installed
apps) methods inherited from eventtarget: eventtarget.addeventlistener() registers an event handler of a specific event type on the eventtarget.
Vibration API - Web APIs
the vibration api offers web
apps the ability to access this hardware, if it exists, and does nothing if the device doesn't support it.
WebGL best practices - Web APIs
use requestpostanimationframe not requestanimationframe while it's well-known that
apps should use requestanimationframe ("raf") instead of settimeout (et al) to redraw on-demand, what's less well-known is that non-trivial webgl
apps should often not render within a raf callback.
Using Feature Policy - HTTP
for example, allow all browsing contexts within this iframe to use fullscreen: <iframe src="https://example.com..." allow="fullscreen"></iframe> this is equivalent to: <iframe src="https://example.com..." allow="fullscreen 'src'"></iframe> this example allows <iframe> content on a particular origin to access the user's location: <iframe src="https://google-developers.
appspot.com/demos/..." allow="geolocation https://google-developers.
appspot.com"></iframe> similar to the http header, several features can be controlled at the same time by specifying a semicolon-separated list of policy directives.
CSP: connect-src - HTTP
note: connect-src 'self' does not resolve to websocket schemas in all browsers, more info: https://github.com/w3c/web
appsec-csp/issues/7 csp version 1 directive type fetch directive default-src fallback yes.
related_applications - Web app manifests
examples "related_applications": [ { "platform": "play", "url": "https://play.google.com/store/
apps/details?id=com.example.app1", "id": "com.example.app1" }, { "platform": "itunes", "url": "https://itunes.apple.com/app/example-app1/id123456789" } ] related application values application objects may contain the following values: member description platform the platform on which the application can be found.
Web audio codec guide - Web media technologies
but when developing web
apps that use audio as a component of the app, such as games, you will need more control over the encoding process and more options surrounding the format used while encoding the audio.