Account Options

  1. Sign in
The old Google Groups will be going away soon, but your browser is incompatible with the new version.
Google Groups Home
« Groups Home
Firebug 1.7 plans
There are currently too many topics in this group that display first. To make this topic appear first, remove this option from another topic.
There was an error processing your request. Please try again.
flag
  16 messages - Collapse all  -  Translate all to Translated (View all originals)
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
 
From:
To:
Cc:
Followup To:
Add Cc | Add Followup-to | Edit Subject
Subject:
Validation:
For verification purposes please type the characters you see in the picture below or the numbers you hear by clicking the accessibility icon. Listen and type the numbers you hear
 
John J Barton  
View profile  
 More options Jan 16 2010, 1:56 pm
From: John J Barton <johnjbar...@johnjbarton.com>
Date: Sat, 16 Jan 2010 10:56:01 -0800 (PST)
Local: Sat, Jan 16 2010 1:56 pm
Subject: Firebug 1.7 plans
I've been talking to different people about different aspects of re-
architecting Firebug. The newsgroup discussions around jetpack and
exploring what it does brought the ideas into focus for me. So now I
have a concrete proposal.

Logistically I propose we cut the 1.6 plan down to support for
extensions plus bug fixes:
  * Scrolling Panel Toolbar
  * Swarm support
  * Any thing else that sneaks in before the beta
Move the final date up, more like April than July, start the beta in
mid Feb. Firebug 1.6 would support Firefox 3.6 and 3.7.

Simultaneously we start Firebug 1.7. It would have any features we cut
from 1.6 built on a refactored code base:
  http://getfirebug.com/wiki/index.php/Firebug_1.7:_Architecture_Refact...
This release would support Firefox 3.7 and target September (my ETA
for FF 3.7b1).

jjb


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Steven Roussey  
View profile  
 More options Jan 16 2010, 4:07 pm
From: Steven Roussey <srous...@gmail.com>
Date: Sat, 16 Jan 2010 13:07:37 -0800 (PST)
Local: Sat, Jan 16 2010 4:07 pm
Subject: Re: Firebug 1.7 plans
Just a few thoughts before I run out the door...

Client-Server

When CrossFire first dropped, I thought about how it might be useful
for separating Firebug into a client and server (and started a
prototype UI from scratch using ExtJS). There are pluses and minuses
to doing things this way, but I think some large change may be
required when Firefox goes multi-process, and this approach seems like
a good solution.

In some ways, development is easier since the UI can be developed
without restarting the browser. And it could conceivably be run in
WebKit or IE or more likely, another instance of Firefox. Later it
would run in the Firefox Jetpack environment where we could achieve
some efficiencies, and of course, the method for installation, etc.
Just making a point that initial development would not require jetpack
to get started. And, of course, this brings up the possibility of
spreading Firebug beyond Firefox in a deeper way than Firebug Lite.

Release Schedules

I like the idea of a shorter release cycles. Release early, release
often, as they say. Breaking firebug into client and server might earn
a 2.0 version number, even if major parts of it are shipped in earlier
versions. For example, we could release DOMWindowWatcher and some
other XPCOM stuff in 1.7 even if nothing else changes in that release.

And we have to deal with Mozilla's plans which have the appearance of
being very much in flux lately. Firefox Lorentz before Firefox 3.7?
Will Firefox 3.7 ever be released or will it be called Firefox 3.6.7
or 4.0? I'm confused to be sure! <rant>The whole Gecko version
numbering system of 1.9.2.x drives me nuts -- can't they just rename
1.9.2 to 2.0.0 and get on it with things?</rant> Also, I haven't kept
up with Jetpack lately, but understand it is undergoing a "reboot" and
a lot of things are going to change. I had bookmarked these links with
the reboot tag (but can't find the reference to the reboot or why I
tagged these), they might be of some use:
https://wiki.mozilla.org/Labs/Jetpack/JEP/25
https://wiki.mozilla.org/Labs/Jetpack/JEP/28
https://wiki.mozilla.org/Labs/Jetpack/JEP/31

More Firebug releases might help with possible shifting sands on which
Firebug is built.

Anyhow, I think the Firebug 1.7 Architecture Refactoring sounds great!

-steve--

On Jan 16, 10:56 am, John J Barton <johnjbar...@johnjbarton.com>
wrote:


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Christoph Dorn  
View profile  
 More options Jan 17 2010, 2:11 am
From: Christoph Dorn <christ...@christophdorn.com>
Date: Sat, 16 Jan 2010 23:11:14 -0800
Local: Sun, Jan 17 2010 2:11 am
Subject: Re: Firebug 1.7 plans
The new architecture sounds great. I am especially glad to see CommonJS
mentioned!

I have been re-implementing [1] FirePHP (with a completely new
architecture and features) on a CommonJS-based platform called narwhal
[2]. The process has been very rewarding and I am very happy to say I
have a completely new end-to-end system that spans server (server-based
JS via narwhal) and client (browser extension) easily. I am also setting
things up in a client/server fashion within the extension to allow for
independent UI and backend development cycles and audiences.

I would love to see Firebug go fully CommonJS including all extensions.
If there is anything I can help with in terms architecture design,
sharing experience with module loading system, sandboxing extensions or
distribution and deployment in the browser from a CommonJS perspective
let me know.

Christoph

[1] - http://github.com/cadorn/fireconsole
[2] - http://narwhaljs.org/


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Steven Roussey  
View profile  
 More options Jan 17 2010, 1:15 pm
From: Steven Roussey <srous...@gmail.com>
Date: Sun, 17 Jan 2010 10:15:29 -0800 (PST)
Local: Sun, Jan 17 2010 1:15 pm
Subject: Re: Firebug 1.7 plans
For reference sake:
https://wiki.mozilla.org/Labs/Jetpack/Reboot_FAQ
https://wiki.mozilla.org/Labs/Jetpack/Reboot_Quickstart

> I would love to see Firebug go fully CommonJS including all extensions.

I agree. I think it is a great idea.

-steve--


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
John J Barton  
View profile  
 More options Jan 17 2010, 3:04 pm
From: John J Barton <johnjbar...@johnjbarton.com>
Date: Sun, 17 Jan 2010 12:04:39 -0800 (PST)
Local: Sun, Jan 17 2010 3:04 pm
Subject: Re: Firebug 1.7 plans

On Jan 17, 10:15 am, Steven Roussey <srous...@gmail.com> wrote:

> For reference sake:https://wiki.mozilla.org/Labs/Jetpack/Reboot_FAQ
> https://wiki.mozilla.org/Labs/Jetpack/Reboot_Quickstart

> > I would love to see Firebug go fully CommonJS including all extensions.

> I agree. I think it is a great idea.

I hope I've not set expectations too high.  I don't want to become
dependent on another library-in-development and personally I won't
work with Python.

I don't have direct experience with CommonJS require/exports. Based on
reading it seems like it may be possible to use it in either a JS-like
way (module ids as object names) or a C-like way (module ids as file
names).  If you read:
   var file = require("file");
then it really makes you think that this means "I need you to load
'file.js' and give me the result". But I think we can use it in a more
JS like way: "I need the object 'file' in my scope".  And this part is
really all we need for now.

I am yet to discover how jetpack can support reloading of modules; if
anyone know I'd like to learn.

jjb


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Christoph Dorn  
View profile  
 More options Jan 17 2010, 4:34 pm
From: Christoph Dorn <christ...@christophdorn.com>
Date: Sun, 17 Jan 2010 13:34:34 -0800
Local: Sun, Jan 17 2010 4:34 pm
Subject: Re: Firebug 1.7 plans

John J Barton wrote:
> On Jan 17, 10:15 am, Steven Roussey <srous...@gmail.com> wrote:

>> For reference sake:https://wiki.mozilla.org/Labs/Jetpack/Reboot_FAQ
>> https://wiki.mozilla.org/Labs/Jetpack/Reboot_Quickstart

>>> I would love to see Firebug go fully CommonJS including all extensions.

>> I agree. I think it is a great idea.

> I hope I've not set expectations too high.  I don't want to become
> dependent on another library-in-development and personally I won't
> work with Python.

Python?

CommonJS is not a library in development. It is an emerging standard
which is beginning to influence ecmascript discussions [1].

Module loader implementations can be very compact [2]. You can write
your own loader.

jQuery is going to have CommonJS package.json files for all its plugins [3].

SproutCore is moving towards a new CommonJS runtime [4].

Bespin wants to load plugins as CommonJS modules. Not sure of the status.

> I don't have direct experience with CommonJS require/exports. Based on
> reading it seems like it may be possible to use it in either a JS-like
> way (module ids as object names) or a C-like way (module ids as file
> names).  If you read:
>    var file = require("file");
> then it really makes you think that this means "I need you to load
> 'file.js' and give me the result". But I think we can use it in a more
> JS like way: "I need the object 'file' in my scope".  And this part is
> really all we need for now.

"importing" is currently being discussed as an alternative (or in
addition to) the require() syntax.

If Firebug is going to be refactored into an internal client/server
architecture (with possibility of moving the server part to a remote
server (via Crossfire)) and reloadable extensions the CommonJS standards
that are being developed are a natural fit.

I chose narwhal (a relatively heavy CommonJS implementation) since it
aims to be a reference implementation of the entire standard and has
pluggable engines that allow me to run the same module within a firefox
extension and on the server (in rhino for example). The beauty is that
if a module is CommonJS compliant it can run on narwhal on the server
and on a very lean module loader on the client (provided the same IO
APIs are implemented if applicable).

If you are interested in what is needed to bootstrap narwhal for
xulrunner you can take a look at the narwhal-xulrunner project [5]. It
shows what we are currently doing for sandboxing [6]. We will be
adopting all the new sandboxing/secure wrapping related functionality
being developed by jetpak to enable isolated sandboxes and secure modules.

Christoph

[1] - https://mail.mozilla.org/pipermail/es-discuss/2010-January/010551.html
[2] - http://github.com/Gozala/experiments/tree/experimental/commonjs/
[3] -
http://groups.google.com/group/commonjs/browse_frm/thread/39dcdede35e...
[4] - http://wiki.sproutcore.com/Tiki
[5] - http://github.com/cadorn/narwhal-xulrunner
[6] -
http://github.com/cadorn/narwhal-xulrunner/blob/master/bootstrap.js#L70


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Pedro Simonetti Garcia  
View profile  
 More options Jan 17 2010, 9:25 pm
From: Pedro Simonetti Garcia <pedrosimone...@gmail.com>
Date: Mon, 18 Jan 2010 00:25:15 -0200
Local: Sun, Jan 17 2010 9:25 pm
Subject: Re: Firebug 1.7 plans

---------------------------------------------------
About Firebug / Firebug Lite future
---------------------------------------------------

I'm very glad to see such changes in the horizon! I think this is
an important step to the rising community of developers that
are working with Firebug code.

I believe this is also a great opportunity to redesign the Firebug
architecture to make things easier in the Firebug / Firebug Lite
relation.

The Firebug Lite 1.3 architecture allows to use the same
panel/module code as Firebug with "minor" modifications.
It would be great to separate the code not only by
module/panel, but also in two layers (cross-browser, and
browser dependent layers). The browser dependent layer
is a "piece" of a module that uses some internal functionality
of the browser like a XPCOM component. The cross-browser
layer would be the same used by the Firebug and Firebug
Lite versions. This way, we will ensure that the changes in
the "cross-browser layer" will be automatically ported to
the Lite version.

For example, there would be a consolePanel.js,
consoleModule.js, and consoleModuleX.js, where
the "X" file would contain the XPCOM dependent code.
Of course, the name convention here is just an
example. What really is important is the separation
of the cross-browser and the XPCOM dependent codes.

---------------------------------------------------
About modules and scope
---------------------------------------------------

2010/1/17 John J Barton <johnjbar...@johnjbarton.com>

> If you read:
>   var file = require("file");
> then it really makes you think that this means "I need you to load
> 'file.js' and give me the result". But I think we can use it in a more
> JS like way: "I need the object 'file' in my scope".  And this part is
> really all we need for now.

Last year I implemented a small JS "library" (1kb size minified),
inspired by the FBL.ns() way of handling scopes, with some
more inspiration from the Helma NG implementation[1], which
uses 3 different types of loading: import, require, and include.
If you are interested, I can upload this code to the repository,
so you can take a look how it is implemented, and use it as an
inspiration to the Firebug implementation.

Taking for example, the current implementation of FBL.ns:

//----------------------------------------------------------
FBL.ns( closure );
//----------------------------------------------------------

Using the implementations I mentioned as an inspiration,
It could be something like this:

//----------------------------------------------------------
FBL.ns(namespace [ , scopeDefinitions ] ,  closure);
//----------------------------------------------------------

Here is some basic example of a module that doesn't
require any other module.

//----------------------------------------------------------
FBL.ns("domplate", function(scope) { with(scope) {

exports({
    domplate: function()
    {
        // exported function
    }

});
}});

//----------------------------------------------------------

And here, an example of a module that depends on the
"domplate" module, and loads it with the "import"
definition, that is, it will be loaded in the current scope
using the "domplate" namespace.

//----------------------------------------------------------
FBL.ns("Firebug.Console", {imports: "domplate"}, function(scope) {
with(scope) {

exports({
    log: function()
    {
        logTag.append(...);
    }

});

// uses the imported domplate in the current scope
var logTag = domplate(...);

}});

//----------------------------------------------------------

A more complex example would be:

//----------------------------------------------------------
FBL.ns("Firebug.CSS",
{
    include: "Lib.*",
    imports: [
        "domplate",
        "Firebug.Editor"
    ]

},

function(scope) { with(scope) {

exports({
    startEditing: function()
    {
        // uses the imported Firebug.Editor
        var editor = new Firebug.Editor();
    }

});

// uses Lib.extend as "extend"
var obj = extend(otherObj, {});

}});

//----------------------------------------------------------

This implementation has the same basic principle
of FBL.ns(): it defines a scope with a closure and
a "with" statement. On top of it, it uses a namespace
to identify each module, and a scope handling
mechanism that allows you to choose how exactly
to embed to imported module in the current scope.

regards,

Pedro Simonetti.

[1] http://helma.org/wiki/Helma+NG/Modules%20and%20Scopes/


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
John J Barton  
View profile  
 More options Jan 18 2010, 12:55 pm
From: John J Barton <johnjbar...@johnjbarton.com>
Date: Mon, 18 Jan 2010 09:55:26 -0800 (PST)
Local: Mon, Jan 18 2010 12:55 pm
Subject: Re: Firebug 1.7 plans

On Jan 17, 1:34 pm, Christoph Dorn <christ...@christophdorn.com>
wrote:

> John J Barton wrote:
> > On Jan 17, 10:15 am, Steven Roussey <srous...@gmail.com> wrote:

> >> For reference sake:https://wiki.mozilla.org/Labs/Jetpack/Reboot_FAQ
> >>https://wiki.mozilla.org/Labs/Jetpack/Reboot_Quickstart

> >>> I would love to see Firebug go fully CommonJS including all extensions.

> >> I agree. I think it is a great idea.

> > I hope I've not set expectations too high.  I don't want to become
> > dependent on another library-in-development and personally I won't
> > work with Python.

> Python?

Some of the jetpack and CommonJS implementation docs talk about
python.

...

> Module loader implementations can be very compact [2]. You can write
> your own loader.

Yes this is the part I was proposing to follow.

...

> If Firebug is going to be refactored into an internal client/server
> architecture (with possibility of moving the server part to a remote
> server (via Crossfire)) and reloadable extensions the CommonJS standards
> that are being developed are a natural fit.

More like refactored to allow client/server versions to be built. The
Firefox version would continue to use in-memory communications as long
as possible.

...

>. We will be
> adopting all the new sandboxing/secure wrapping related functionality
> being developed by jetpak to enable isolated sandboxes and secure modules.

Firebug can use the isolation part, but I don't want to mess with the
security part. I know the costs are high and I don't believe the
benefits are real.

jjb


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
John J Barton  
View profile  
 More options Jan 18 2010, 1:11 pm
From: John J Barton <johnjbar...@johnjbarton.com>
Date: Mon, 18 Jan 2010 10:11:14 -0800 (PST)
Local: Mon, Jan 18 2010 1:11 pm
Subject: Re: Firebug 1.7 plans

On Jan 17, 6:25 pm, Pedro Simonetti Garcia <pedrosimone...@gmail.com>
wrote:

Yes; I guess we also need a similar breakdown for panels, to support
both HTML and XUL implementations of the panels.

We need two things here, a CommonJS-compatible module loader and a
formula for applying it to Firebug. It seems like we could use your
work to help sort out the latter bit.

jjb


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Christoph Dorn  
View profile  
 More options Jan 18 2010, 2:10 pm
From: Christoph Dorn <christ...@christophdorn.com>
Date: Mon, 18 Jan 2010 11:10:05 -0800
Local: Mon, Jan 18 2010 2:10 pm
Subject: Re: Firebug 1.7 plans
John J Barton wrote:
>> . We will be
>> adopting all the new sandboxing/secure wrapping related functionality
>> being developed by jetpak to enable isolated sandboxes and secure modules.

> Firebug can use the isolation part, but I don't want to mess with the
> security part. I know the costs are high and I don't believe the
> benefits are real.

The isolation part is feasible now. The security part is a long way off
at this point. I agree that there remains a lot to be discovered in this
area.

Christoph


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
John J Barton  
View profile  
 More options Jan 19 2010, 1:01 am
From: John J Barton <johnjbar...@johnjbarton.com>
Date: Mon, 18 Jan 2010 22:01:36 -0800 (PST)
Local: Tues, Jan 19 2010 1:01 am
Subject: Re: Firebug 1.7 plans

On Jan 17, 1:34 pm, Christoph Dorn <christ...@christophdorn.com>
wrote:
...

The require.js is very much along the lines I was playing with. We
need to read the bits differently (some mozilla-specific goop we
already have in Firebug) and eval() differently (with
Component.utils.sandbox).

Should I continue then see how to make it compatible? Or try to work
with commonjs? Or crib from them, any idea what license they have for
the source?

jjb


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Christoph Dorn  
View profile  
 More options Jan 19 2010, 5:07 pm
From: Christoph Dorn <christ...@christophdorn.com>
Date: Tue, 19 Jan 2010 14:07:16 -0800
Local: Tues, Jan 19 2010 5:07 pm
Subject: Re: Firebug 1.7 plans

Most CommonJS/narwhal code is MIT.

The loader you are referring to is a CommonJS compliant implementation
of a basic module loader for the browser. It does static parsing of
require statements to "collect" all dependent modules. A large part of
the implementation deals with asynchronous loading needed for the browser.

Much less code is needed to get this working for synchronous loading
which is the typical use-case within an extension.

Narwhal is a reference implementation for all CommonJS specs as they are
evolving. The core of narwhal is pure JS and "engines" are used to
provide a bridge between the pure JS core and specific platforms. The
narwhal engine for xulrunner is here [1]. It is a good starting point to
see what is needed to "bootstrap" a pure JS CommonJS implementation on
top of xulrunner. The eventual goal is to have the narwhal-xulrunner
engine (or part thereof) be absorbed by xulrunner to provide a standard
and priviledged require() natively on top of which sandboxes can be
implemented to isolate programs and modules.

Firebug could be instrumental in making a native require() for xulrunner
a reality if it was to be adopted internally to load modules. Bespin is
in need of the same functionality from what I know.

To get you started you can review the following:

- http://wiki.commonjs.org/wiki/Modules
- http://github.com/Gozala/narwhal-xulrunner/blob/master/bootstrap.js
- http://github.com/280north/narwhal/blob/master/lib/sandbox.js
- http://github.com/280north/narwhal/blob/master/lib/loader.js

Narwhal can be a bit overwhelming to get started with and the links
above contain code that does a lot more than what is initially needed.

I suggest you post a message to the CommonJS mailing list outlining what
you have in mind. There may very well be a simple sync loader out there
you can bless with bits from the narwhal-xulrunner engine to get started.

Christoph

[1] - http://github.com/Gozala/narwhal-xulrunner


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
John J Barton  
View profile  
 More options Jan 20 2010, 12:54 am
From: John J Barton <johnjbar...@johnjbarton.com>
Date: Tue, 19 Jan 2010 21:54:29 -0800 (PST)
Local: Wed, Jan 20 2010 12:54 am
Subject: Re: Firebug 1.7 plans

On Jan 19, 2:07 pm, Christoph Dorn <christ...@christophdorn.com>
wrote:

The narwal-xulrunner is MPL
http://github.com/Gozala/narwhal-xulrunner
which means I would not be able to work on it.


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Christoph Dorn  
View profile  
 More options Jan 20 2010, 3:18 am
From: Christoph Dorn <christ...@christophdorn.com>
Date: Wed, 20 Jan 2010 00:18:47 -0800
Local: Wed, Jan 20 2010 3:18 am
Subject: Re: Firebug 1.7 plans
John J Barton wrote:
> The narwal-xulrunner is MPL
> http://github.com/Gozala/narwhal-xulrunner
> which means I would not be able to work on it.

I'll get that changed to MIT if that works for you?

Christoph


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
John J Barton  
View profile  
 More options Jan 20 2010, 11:06 am
From: John J Barton <johnjbar...@johnjbarton.com>
Date: Wed, 20 Jan 2010 08:06:37 -0800 (PST)
Local: Wed, Jan 20 2010 11:06 am
Subject: Re: Firebug 1.7 plans

On Jan 20, 12:18 am, Christoph Dorn <christ...@christophdorn.com>
wrote:

> John J Barton wrote:
> > The narwal-xulrunner is MPL
> >http://github.com/Gozala/narwhal-xulrunner
> > which means I would not be able to work on it.

> I'll get that changed to MIT if that works for you?

Yes, but this may reduce the acceptance for mozilla, I don't know.
(Just to clarify, I can suggest changes to MPL code that ships via
Firefox but I can't work on MPL code that ships via Firebug).

jjb


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Christoph Dorn  
View profile  
 More options Jan 26 2010, 7:09 pm
From: Christoph Dorn <christ...@christophdorn.com>
Date: Tue, 26 Jan 2010 16:09:15 -0800
Local: Tues, Jan 26 2010 7:09 pm
Subject: Re: Firebug 1.7 plans

The licensing has been updated [1] to: MPL 1.1/GPL 2.0/LGPL 2.1/MIT

Christoph

[1] - http://github.com/Gozala/narwhal-xulrunner


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
End of messages
« Back to Discussions « Newer topic     Older topic »