Labs/Extensions2/Notes: Difference between revisions

Jump to navigation Jump to search
no edit summary
No edit summary
No edit summary
Line 1: Line 1:
= 1-clickweather =
= 1-clickweather =
== general ==
''' general '''
* toolbar extension
* toolbar extension
* uses a JS import function to namespace javascript included from files
* uses a JS import function to namespace javascript included from files
* uses some complicated object heirarchies to manage prefs / config
* uses some complicated object heirarchies to manage prefs / config


== prefs ==
''' prefs '''
* uses it's own system to manage prefs
* uses it's own system to manage prefs
** uses observer pattern to get updates (as opposed to listenting to the prefs observers)
** uses observer pattern to get updates (as opposed to listenting to the prefs observers)


== overlays ==
''' overlays '''
* basic statusbar overlay
* basic statusbar overlay
** popupset
** popupset
Line 15: Line 15:
* uses windows for config/about/etc.
* uses windows for config/about/etc.


== state ==
''' state '''
* capture in saved xml files
* capture in saved xml files


== ajax ==
''' ajax '''
* wrote their own AJAX library to handle simple async requests
* wrote their own AJAX library to handle simple async requests


= adblock plus =
= adblock plus =
== general ==
''' general '''
* content filter
* content filter
* localized
* localized


== prefs ==
''' prefs '''
* uses the built in prefs tools and defaults
* uses the built in prefs tools and defaults


== overlays ==
''' overlays '''
* dialog for about
* dialog for about
* window for subscribing
* window for subscribing
* sidebar
* sidebar


== state ==
''' state '''
* stores filters as a line deliminted file in the profile
* stores filters as a line deliminted file in the profile


== ajax ==
''' ajax '''
* handles it's own async calls with XMLHttpRequest() primitive
* handles it's own async calls with XMLHttpRequest() primitive
** used for synchronizing subscriptions for filters
** used for synchronizing subscriptions for filters


= autopager =
= autopager =
== general ==
''' general '''
* content enhancement
* content enhancement
* has an interesting auto-xpath generator for grabbing the links it needs
* has an interesting auto-xpath generator for grabbing the links it needs


== installation ==
''' installation '''
* handles install with file, lots of poking profile dir, registering content
* handles install with file, lots of poking profile dir, registering content
* option to install to profile :)
* option to install to profile :)


== prefs ==
''' prefs '''
* uses firefox supplied prefs framework
* uses firefox supplied prefs framework
* has a system to dynamically add the prefs file to prevent some of the weirdness in initializing new defaults
* has a system to dynamically add the prefs file to prevent some of the weirdness in initializing new defaults


== overlays ==
''' overlays '''
* extensive use of sidebar, mostly as a container for what appears to be "page" elements
* extensive use of sidebar, mostly as a container for what appears to be "page" elements
* statusbar
* statusbar
* does not use settings overlay, builds it's own UI for that
* does not use settings overlay, builds it's own UI for that
== state ==
''' state '''
* installation is handled seperately from everything else, involve file manipulation etc.
* installation is handled seperately from everything else, involve file manipulation etc.


== ajax ==
''' ajax '''


= boost =
= boost =
== general ==
''' general '''
* content enhancement
* content enhancement


== prefs ==
''' prefs '''
* uses firefox supplied prefs framework
* uses firefox supplied prefs framework
* does not use settings overlay, builds it's own UI for that
* does not use settings overlay, builds it's own UI for that
Line 74: Line 74:
** easily add / remove listeners
** easily add / remove listeners


== overlays ==
''' overlays '''
* basic status bar overlay
* basic status bar overlay
* prefs ui
* prefs ui


== state ==
''' state '''
== ajax ==
''' ajax '''
* has it's own library, doing something weird involving chrome security contexts.
* has it's own library, doing something weird involving chrome security contexts.
** /I/ think this is about adding in page elements that can be called into the chrome context, there's some work to sanitize content etc.
** /I/ think this is about adding in page elements that can be called into the chrome context, there's some work to sanitize content etc.


= colorfultabs =
= colorfultabs =
== general ==
''' general '''
* ui enhancement
* ui enhancement


== installation ==
''' installation '''
* handles install with file, lots of poking profile dir, registering content
* handles install with file, lots of poking profile dir, registering content


== prefs ==
''' prefs '''
* uses firefox supplied prefs framework
* uses firefox supplied prefs framework
* uses settings overlay
* uses settings overlay


== overlays ==
''' overlays '''
* basic status bar overlay
* basic status bar overlay
* uses settings overlay
* uses settings overlay


== state ==
''' state '''
== ajax ==
''' ajax '''
* has it's own library, doing something weird involving chrome security contexts.
* has it's own library, doing something weird involving chrome security contexts.
** /I/ think this is about adding in page elements that can be called into the chrome context, there's some work to sanitize content etc.
** /I/ think this is about adding in page elements that can be called into the chrome context, there's some work to sanitize content etc.


= ctrl-tab =
= ctrl-tab =
== general ==
''' general '''
* ui enhancement
* ui enhancement


== prefs ==
''' prefs '''
* uses firefox supplied prefs framework
* uses firefox supplied prefs framework


== overlays ==
''' overlays '''
* only the main overlay used to create a popupset that holds "tab images"
* only the main overlay used to create a popupset that holds "tab images"


= download statusbar =
= download statusbar =
== general ==
''' general '''
* statusbar
* statusbar
* includes localization
* includes localization


== prefs ==
''' prefs '''
* uses firefox supplied prefs framework
* uses firefox supplied prefs framework


== overlays ==
''' overlays '''
* status bar overlay
* status bar overlay
* builds it's own window for managing prefs
* builds it's own window for managing prefs


= downthemall =
= downthemall =
== general ==
''' general '''
* functionality enhancement
* functionality enhancement
* includes localization
* includes localization


== installation ==
''' installation '''
* handles install with file, lots of poking profile dir, registering content
* handles install with file, lots of poking profile dir, registering content


== prefs ==
''' prefs '''
* uses firefox supplied prefs framework
* uses firefox supplied prefs framework


== overlays ==
''' overlays '''
* status bar overlay
* status bar overlay
* builds it's own window for managing prefs
* builds it's own window for managing prefs


== state ==
''' state '''
== ajax ==
''' ajax '''


= fast_video_download =
= fast_video_download =
== general ==
''' general '''
* toolbar extension
* toolbar extension
* is localized
* is localized


== installation ==
''' installation '''
== prefs ==
''' prefs '''
* uses the firefox supplied prefs framework
* uses the firefox supplied prefs framework
* and makes use of the options ui
* and makes use of the options ui


== overlays ==
''' overlays '''
* uses the options overlay
* uses the options overlay
== state ==
''' state '''
== ajax ==
''' ajax '''
* uses raw XMLHTttpRequest object
* uses raw XMLHTttpRequest object


= febe =
= febe =
== general ==
''' general '''
* functionality enhancement (provides backups of firefox profile)
* functionality enhancement (provides backups of firefox profile)
* is localized
* is localized


== installation ==
''' installation '''
* checks for first install and initializes
* checks for first install and initializes
* double checks default prefs
* double checks default prefs
* checks intialization of prefs to prevent exception calls
* checks intialization of prefs to prevent exception calls


== prefs ==
''' prefs '''
* uses the firefox supplied prefs framework
* uses the firefox supplied prefs framework


== overlays ==
''' overlays '''
* lots of use of dialog boxes to present data to users
* lots of use of dialog boxes to present data to users
** including it's own error and alert and confirm boxes (odd)
** including it's own error and alert and confirm boxes (odd)
== state ==
''' state '''
== ajax ==
''' ajax '''


= fire_fm =
= fire_fm =
== general ==
''' general '''
* toolbar extension
* toolbar extension
* uses flash for playing files
* uses flash for playing files


== installation ==
''' installation '''
== prefs ==
''' prefs '''
* uses the firefox pref framework
* uses the firefox pref framework
* uses a comma delimited pref for complex data type
* uses a comma delimited pref for complex data type


== overlays ==
''' overlays '''
* overlays many of the dialogs for it's own alerts/errors
* overlays many of the dialogs for it's own alerts/errors
* toolbar overlay for main app
* toolbar overlay for main app
* overlays options
* overlays options


== state ==
''' state '''
* extensive use of pref framework for storing state
* extensive use of pref framework for storing state


== ajax ==
''' ajax '''
* uses straight XMLHTTPrequest
* uses straight XMLHTTPrequest
== logging ==
''' logging '''
* uses log4moz
* uses log4moz


= firebug =
= firebug =
== general ==
''' general '''
* functionality enhancement (provides introspection)
* functionality enhancement (provides introspection)
* localized
* localized


== installation ==
''' installation '''
== prefs ==
''' prefs '''
* uses firefox prefs
* uses firefox prefs
== overlays ==
''' overlays '''
== state ==
''' state '''
== ajax ==
''' ajax '''
== logging ==
''' logging '''


= flashgot =
= flashgot =
== general ==
''' general '''
== installation ==
''' installation '''
== prefs ==
''' prefs '''
== overlays ==
''' overlays '''
== state ==
''' state '''
== ajax ==
''' ajax '''
== logging ==
''' logging '''


= greasemonkey =
= greasemonkey =
== general ==
''' general '''
* uses components
* uses components
* preloads common scripts into namespace using component
* preloads common scripts into namespace using component
Line 241: Line 241:


= IE Tab =
= IE Tab =
== general ==
''' general '''


* custom pref manager IN component
* custom pref manager IN component
Line 256: Line 256:
= ImageTweak =
= ImageTweak =


== general ==
''' general '''
* obvious custom logger
* obvious custom logger
* domloaded
* domloaded
Line 263: Line 263:
= Interclue =
= Interclue =


== general ==
''' general '''
* uses RDF format internally
* uses RDF format internally
* uses annoying register stylesheet methods (I had issues with this in Puff)
* uses annoying register stylesheet methods (I had issues with this in Puff)
Line 278: Line 278:


= NoScript =
= NoScript =
== general ==
''' general '''
* uses rdf for ui info
* uses rdf for ui info
* various domloaded
* various domloaded
== prefs ==
''' prefs '''
* crazy amount of preferences (~100 on install)
* crazy amount of preferences (~100 on install)
* abstracts prefs interfaces
* abstracts prefs interfaces
== overlays ==
''' overlays '''
* giant overlay file that uses the component with small other files that use it
* giant overlay file that uses the component with small other files that use it
== components ==
''' components '''
* okay so tons of classes in here, essentially everything is in the component
* okay so tons of classes in here, essentially everything is in the component
* uses component (8200 line file!!)
* uses component (8200 line file!!)
== state ==
''' state '''
* uses file read/write
* uses file read/write


= StumbleUpon =
= StumbleUpon =
== general ==
''' general '''
* most in one long file of many functions, tons of namespace polution
* most in one long file of many functions, tons of namespace polution
* sets a TON of "global" variables using su_xxx
* sets a TON of "global" variables using su_xxx
* listens to almost every event, including domloaded of course
* listens to almost every event, including domloaded of course


== components ==
''' components '''
* uses component for helper functions, including logging and custom ajax
* uses component for helper functions, including logging and custom ajax
== prefs ==
''' prefs '''
* uses prefs and the sqlite db
* uses prefs and the sqlite db
== state ==
''' state '''
* has giant database abstraction layer
* has giant database abstraction layer
* csv file to populate db and sql file to build db
* csv file to populate db and sql file to build db
== overlays ==
''' overlays '''
* 20k stumbleuponoverlay file that is largely one dimensional with just functions
* 20k stumbleuponoverlay file that is largely one dimensional with just functions


= Tab Mix =
= Tab Mix =
== general ==
''' general '''
* sets about 200 preferences
* sets about 200 preferences
* doesn't seem to have a pref abstraction layer
* doesn't seem to have a pref abstraction layer
Line 316: Line 316:


= Video Download Helper =
= Video Download Helper =
== general ==
''' general '''
* uses built in xml parser loaded
* uses built in xml parser loaded
* really impressive layout
* really impressive layout
** seems the brunt is in several components which are called by individual pages, so no namespace issues
** seems the brunt is in several components which are called by individual pages, so no namespace issues
== Ajax ==
''' Ajax '''
* custom ajax
* custom ajax


== State ==
''' State '''
* uses rdf to store data
* uses rdf to store data


== Pref ==
''' Pref '''
* custom pref layer
* custom pref layer


= Web Developer =
= Web Developer =
== general ==
''' general '''
* has js and css files in content folder
* has js and css files in content folder
* has an entire common folder with helpers to do almost everthing
* has an entire common folder with helpers to do almost everthing
** including pref and history managers, stylesheet managers, cookies, files, ajax
** including pref and history managers, stylesheet managers, cookies, files, ajax


== prefs ==
''' prefs '''
* preference abstraction functions
* preference abstraction functions


= WOT =
= WOT =
== general ==
''' general '''
* interesting use of load/unload listeners in almost all js files.  they call core to start, including all the code, so i assume they just set these listeners to run checks when a new page loads.
* interesting use of load/unload listeners in almost all js files.  they call core to start, including all the code, so i assume they just set these listeners to run checks when a new page loads.


== Ajax ==
''' Ajax '''
* custom ajax
* custom ajax
* built in api to easily deal with requests (i assume to it's server about a pages reliability)
* built in api to easily deal with requests (i assume to it's server about a pages reliability)
== Prefs ==
''' Prefs '''
* uses a config.js to store a ton of constants used throughout the app
* uses a config.js to store a ton of constants used throughout the app
* uses a prefs abstraction
* uses a prefs abstraction
== Debuging ==
''' Debuging '''


* inline error handling just catching and dump()
* inline error handling just catching and dump()
== State ==
''' State '''
* looks like they are using prefs beyond how they should
* looks like they are using prefs beyond how they should
** ie storing delimited data (there stuff is a little confusing and im tired so im not 100% sure)
** ie storing delimited data (there stuff is a little confusing and im tired so im not 100% sure)
577

edits

Navigation menu