Firebug 1.7 Script Panel

From FirebugWiki
Jump to: navigation, search


This page summarizes the things that should be changed/ported/created in Firebug Lite 1.4+ in order to support the New Script Panel with the goal of supporting remote and cross-browser JavaScript debugging features.

Related pages:

Minor differences[edit]

See also minor Firebug Lite differences from Firebug.

TODO: Update Firebug_Lite_Differences_From_Firebug#Minor_Differences section 
      with the new info provided here
  • const --> var
  • addEventListener --> adEvent
  • element.getElementsByClassName(name) --> FBL.getElementsByClass(element, name)
  • named functions --> variables
  • target = || event.srcElement
  • Array.indexOf --> (" " + str + " ").indexOf trick

Back-end platform dependencies[edit]

The dependencies listed here only counts the debugger.js file specifically. There are more dependencies in the files required by debugger.js.

  • jsd
  • Ci.jsdIScript;
  • Ci.jsdIStackFrame;
  • Ci.jsdIExecutionHook;
  • Ci.nsISupports;
  • Ci.nsICryptoHash;
  • Ci.nsIURI

Lite's missing pieces[edit]

Here's the list of things we need to port, change or create in Firebug Lite in order to support the New Script Panel.

items to port[edit]

User Interface Controller

  • Chrome

Context Management

  • browser (XUL-browser abstraction)
  • tabContext
  • tabWatcher

Source Management

  • sourceBox
  • sourceFile?
  • sourceCache?

Library Functions

  • FBL.getUniqueId
  • FBL.persistObjects
  • FBL.sourceFilesAsArray
  • FBL.appendInnerHTML

Activable Modules and Panels

  • Firebug.registerActivableModule
  • Firebug.ActivableModule
  • Firebug.ActivablePanel

items to change[edit]

Firebug Panel implementation

  • Panel create/destroy methods
  • Panel initialize/shutdown methods
  • Panel show/hide methods
  • Panel initializeUI method

Firebug API

  • Firebug getPref/setPref
  • SidePanel API

Graphical Components

  • GUI.Menu
  • infoTip

User Interface Refactoring

  • UI tabs on top*
  • commandLine available at all panels*

[*] Not exactly required by the New Script Panel, but it would be good to Firebug Lite match the Firefox visual to reinforce the new unifying model, and is something to be considered when designing/porting the new modules.

items to create[edit]

Graphical Components

  • GUI.ToolButton (panel buttons)
  • GUI.OptionsMenu (panel options)
  • GUI.ScrollableMenu (file selection)
  • GUI.StatusBar (call stack)