Firebug Architecture

From FirebugWiki

(Difference between revisions)
Jump to: navigation, search
(Internal Concepts & Components)
(Internal Concepts & Components)
Line 6: Line 6:
* [[Data Providers|Data Providers]]
* [[Data Providers|Data Providers]]
-
== Internal Concepts & Components ==
+
== Internal Concepts And Components ==
Brief summary of internal concepts used in Firebug's framework.
Brief summary of internal concepts used in Firebug's framework.
Line 12: Line 12:
TODO: create structure of internal concepts + patterns and link to individual pages that provide detailed explanation. Use [http://www.softwareishard.com/slides/firebug/LondonSep2012/FirebugArchitectureHighlights.pdf Firebug Architecture Highlights (pdf)] slides.
TODO: create structure of internal concepts + patterns and link to individual pages that provide detailed explanation. Use [http://www.softwareishard.com/slides/firebug/LondonSep2012/FirebugArchitectureHighlights.pdf Firebug Architecture Highlights (pdf)] slides.
-
* Firebug Object (Singleton)
+
=== Firebug Object ===
-
* Context (Document)
+
Firebug Object is the only global object and represents a roof object in the entire application.
-
* Panels (View)
+
 
-
* Modules (Services)
+
Used patterns:
-
* Navigation & Selection  
+
* Singleton
-
* Event Sources (Listener)
+
 
-
* [[Data Providers & Viewers]] (Provider, Viewer, Presentation State)
+
=== Context ===
-
* Unified Rendering (Domplate)
+
A context object represents a document and is responsible for collecting (meta) data about the current page on which Firebug is active.
 +
 
 +
Related patterns:
 +
* Document
 +
 
 +
=== Panel ===
 +
A panel object is used to present information to the user. Displayed data are always related to the current page. A panel is accessing the current ''Context'' object to render relevant data.
 +
 
 +
Related Patterns:
 +
* View
 +
* Viewer
 +
 
 +
Read more about concepts used in the [https://getfirebug.com/wiki/index.php/Script_Panel_Refactoring Script Panel]
 +
 
 +
=== Module ===
 +
(Services)
 +
 
 +
=== Navigation & Selection ===
 +
 
 +
=== Event Sources (Listener) ===
 +
 
 +
=== Data Providers & Viewers ===
 +
Firebug uses viewer-provider patter to unify the way how UI widgets (viewers) access various data source. The pattern supports synchronous as well as asynchronous data sources and allows to use common API to access them.
 +
 
 +
Related patterns:
 +
* Provider
 +
* Viewer
 +
* Presentation State
 +
 
 +
Read detailed explanation about [[Data Providers & Viewers]].
 +
 
 +
=== Unified Rendering ===
 +
(Domplate)

Revision as of 12:51, 20 November 2013

This page covers the architecture of Firebug (the Firefox extension), showing internal concepts and explaining how individual components interact when Firebug is running.

Contents

Resources

Internal Concepts And Components

Brief summary of internal concepts used in Firebug's framework.

TODO: create structure of internal concepts + patterns and link to individual pages that provide detailed explanation. Use Firebug Architecture Highlights (pdf) slides.

Firebug Object

Firebug Object is the only global object and represents a roof object in the entire application.

Used patterns:

  • Singleton

Context

A context object represents a document and is responsible for collecting (meta) data about the current page on which Firebug is active.

Related patterns:

  • Document

Panel

A panel object is used to present information to the user. Displayed data are always related to the current page. A panel is accessing the current Context object to render relevant data.

Related Patterns:

  • View
  • Viewer

Read more about concepts used in the Script Panel

Module

(Services)

Navigation & Selection

Event Sources (Listener)

Data Providers & Viewers

Firebug uses viewer-provider patter to unify the way how UI widgets (viewers) access various data source. The pattern supports synchronous as well as asynchronous data sources and allows to use common API to access them.

Related patterns:

  • Provider
  • Viewer
  • Presentation State

Read detailed explanation about Data Providers & Viewers.

Unified Rendering

(Domplate)

Personal tools