Dumping in stuff from Ian.
Signed-off-by: retep998 <retep998@verizon.net>
This commit is contained in:
parent
0c12529cd8
commit
09a406bb7a
3
chrome.manifest
Normal file
3
chrome.manifest
Normal 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
|
197
chrome/content/firerecord.js
Normal file
197
chrome/content/firerecord.js
Normal 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");
|
||||
|
||||
|
||||
}});
|
6
chrome/content/firerecord.xul
Normal file
6
chrome/content/firerecord.xul
Normal 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>
|
34
chrome/skin/classic/inspector.css
Normal file
34
chrome/skin/classic/inspector.css
Normal 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);
|
||||
}
|
1
defaults/preferences/prefs.js
Normal file
1
defaults/preferences/prefs.js
Normal file
@ -0,0 +1 @@
|
||||
pref("extensions.firebug.DBG_FIRERECORD", true);
|
BIN
firerecord@qcc.mass.edu.xpi
Normal file
BIN
firerecord@qcc.mass.edu.xpi
Normal file
Binary file not shown.
25
install.rdf
Normal file
25
install.rdf
Normal 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>
|
||||
|
||||
|
Reference in New Issue
Block a user