Dumping in stuff from Ian.

Signed-off-by: retep998 <retep998@verizon.net>
This commit is contained in:
retep998 2013-02-07 02:22:51 -05:00
parent 0c12529cd8
commit 09a406bb7a
7 changed files with 266 additions and 0 deletions

3
chrome.manifest Normal file
View File

@ -0,0 +1,3 @@
content firerecord chrome/content/
skin firerecord classic/1.0 chrome/skin/classic/
overlay chrome://firebug/content/firebugOverlay.xul chrome://firerecord/content/firerecord.xul

View File

@ -0,0 +1,197 @@
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
FBL.ns(function() { with (FBL) {
// Panel
var panelName = "firerecord";
/**
* @panel This panel integrates with Firebug Inspector API and provides own logic
* and display of custom information for links. This code serves as an example of
* how to properly use and implement Inspector.
*/
function FireRecordPanel() {}
FireRecordPanel.prototype = extend(Firebug.Panel,
/** @lends LinkInspectorPanel */
{
name: panelName,
title: "Trial by Fire",
inspectable: true,
inspectHighlightColor: "red",
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// Initialization
initialize: function()
{
Firebug.Panel.initialize.apply(this, arguments);
Firebug.Inspector.addListener(this);
},
destroy: function(state)
{
Firebug.Panel.destroy.apply(this, arguments);
Firebug.Inspector.removeListener(this);
},
show: function(state)
{
Firebug.Panel.show.apply(this, arguments);
FireRecordPlate.defaultContent.replace({}, this.panelNode);
},
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// Inspector API implementation
startInspecting: function()
{
if (FBTrace.DBG_FIRERECORD)
FBTrace.sysout("fire_record; startInspecting()");
},
inspectNode: function(node)
{
if (FBTrace.DBG_FIRERECORD)
FBTrace.sysout("fire_record; inspectNode(node: " + node.tagName + ")");
FireRecordPlate.tName.replace({object: node}, this.panelNode);
},
stopInspecting: function(node, canceled)
{
if (FBTrace.DBG_FIRERECORD)
FBTrace.sysout("fire_record; stopInspecting(node: " + node.tagName +
", canceled: " + canceled + ")");
if (canceled)
return;
if (node.href.indexOf("http") != 0)
return;
FireRecordPlate.linkPreview.replace({object: node}, this.panelNode);
},
supportsObject: function(object, type)
{
if (object instanceof Element)
{
if (object.tagName.toLowerCase() == "a"){
return 1;
}
if (object.tagName.toLowerCase() == "button"){
return 1;
}
if (object.tagName.toLowerCase() == "img"){
return 1;
}
if (object.tagName.toLowerCase() == "input"){
return 1;
}
}
return 0;
},
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// Inspector Listener
onStartInspecting: function(context)
{
if (FBTrace.DBG_FIRERECORD)
FBTrace.sysout("fire_record; Listener.onStartInspecting(context: " +
context.getTitle() + ")");
},
onInspectNode: function(context, node)
{
if (FBTrace.DBG_FIRERECORD)
FBTrace.sysout("fire_record; Listener.onInspectNode(context: " +
context.getTitle() + ", node: " + node.tagName + ")");
},
onStopInspecting: function(context, node, canceled)
{
if (FBTrace.DBG_FIRERECORD)
FBTrace.sysout("fire_record; Listener.onStopInspecting(context: " +
context.getTitle() + ", node: " + node.tagName + ", canceled: " +
canceled + ")");
}
});
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
var FireRecordPlate = domplate(
{
tName:
DIV({"class": "tName"}, "$object.id" ),
linkPreview:
IFRAME({"class": "linkPreview", "src": "$object.href"}),
defaultContent:
DIV({"class": "defaultContent"},
"Use Trial by Fire to record DOM events for later playback."
)
});
// ********************************************************************************************* //
// Module & Customizing Tracing
/**
* @module The module object isn't really neccessary for the Inspector API. It serves
* only to support Firebug tracing console, which is useful when debugging inspector
* features.
*/
Firebug.FireRecordModule = extend(Firebug.Module,
/** @lends Firebug.FireRecordModule */
{
initialize: function()
{
Firebug.Module.initialize.apply(this, arguments);
if (Firebug.TraceModule)
Firebug.TraceModule.addListener(this);
},
shutdown: function()
{
Firebug.Module.shutdown.apply(this, arguments);
if (Firebug.TraceModule)
Firebug.TraceModule.removeListener(this);
},
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// Trace Listener
onLoadConsole: function(win, rootNode)
{
appendStylesheet(rootNode.ownerDocument, "chrome://firerecord/skin/inspector.css");
},
onDump: function(message)
{
var index = message.text.indexOf("fire_record;");
if (index == 0)
{
message.text = message.text.substr("fire_record;".length);
message.text = trim(message.text);
message.type = "DBG_FIRERECORD";
}
}
});
// Registration
Firebug.registerPanel(FireRecordPanel);
Firebug.registerModule(Firebug.FireRecordModule);
Firebug.registerStylesheet("chrome://firerecord/skin/inspector.css");
}});

View File

@ -0,0 +1,6 @@
<?xml version="1.0"?>
<overlay xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<script src="chrome://firerecord/content/firerecord.js" type="application/x-javascript"/>
</overlay>

View File

@ -0,0 +1,34 @@
/* See license.txt for terms of usage */
/*************************************************************************************************/
/* Style applied on the panel node. */
.panelNode-firerecord {
overflow: hidden;
}
.defaultContent {
text-align: center;
padding-top: 30px;
color: gray;
}
.linkUrl {
text-align: center;
padding-top: 30px;
color: blue;
}
.linkPreview {
border: none;
width: 100%;
height: 100%;
}
/*************************************************************************************************/
/* Firebug Tracing Console customization. All messages from this example use this color.
This helps to distinguish logs from those coming from Firebug */
.DBG_FIRERECORD {
color: rgb(0, 101, 114);
}

View File

@ -0,0 +1 @@
pref("extensions.firebug.DBG_FIRERECORD", true);

BIN
firerecord@qcc.mass.edu.xpi Normal file

Binary file not shown.

25
install.rdf Normal file
View File

@ -0,0 +1,25 @@
<?xml version="1.0"?><RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:em="http://www.mozilla.org/2004/em-rdf#">
<Description about="urn:mozilla:install-manifest">
<em:id>firerecord@qcc.mass.edu</em:id>
<em:version>0.0.2</em:version>
<!-- Firefox -->
<em:targetApplication>
<Description>
<em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
<em:minVersion>1.5</em:minVersion>
<em:maxVersion>18.*</em:maxVersion>
</Description>
</em:targetApplication>
<!-- Extension -->
<em:name>Fire Record</em:name>
<em:description>Firebug Record Extension</em:description>
<em:creator>Csc-207 Quinsigamond Community College </em:creator>
<em:homepageURL>http://www.qcc.edu</em:homepageURL>
</Description>
</RDF>