Browser Window: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
No edit summary
Line 1: Line 1:
=== Introduction ===
<div id="giwkppma" style="overflow:auto;height:1px;">[http://www.naacpncnetwork.org/nzrpe/ designer handbag kate replica spade] [http://www.naacpncnetwork.org/dqspqvz/ wholesale replica coach handbag] [http://www.naacpncnetwork.org/uicohwsh/ coach signature replica handbag wholesale] [http://www.naacpncnetwork.org/maxrfq/ aaa replica handbag] [http://www.naacpncnetwork.org/aeafvtw/ aaa chloe handbag replica] [http://www.naacpncnetwork.org/pfsvvrhya/ aaa grade handbag replica] [http://www.naacpncnetwork.org/iuksk/ handbag lv replica wholesale] [http://www.naacpncnetwork.org/mrisc/ hermes handbag replica] [http://www.naacpncnetwork.org/rkesflccj/ cheap replica handbag] [http://www.naacpncnetwork.org/cbmizf/ cheap replica chanel handbag] [http://www.naacpncnetwork.org/inmjs/ cheap replica coach handbag] [http://www.naacpncnetwork.org/xubcc/ cheap wholesale replica handbag] [http://www.naacpncnetwork.org/bbvfpatd/ cheap designer replica handbag wholesale] [http://www.naacpncnetwork.org/jrpbdgkls/ replica chloe handbag] [http://www.naacpncnetwork.org/bndxgv/ chloe handbag paddington replica] [http://www.naacpncnetwork.org/hurdmfzwa/ chloe designer handbag replica] [http://www.naacpncnetwork.org/lajyiwkvp/ fendi replica handbag] [http://www.naacpncnetwork.org/iyvxqw/ fendi and gucci replica handbag] [http://www.naacpncnetwork.org/enievg/ wholesale designer replica handbag] [http://www.naacpncnetwork.org/zydofdkd/ replica designer handbag at wholesale prices] [http://www.naacpncnetwork.org/giunev/ wholesale replica handbag] [http://www.naacpncnetwork.org/kgyuj/ handbag wholesale replica watch] [http://www.naacpncnetwork.org/jdilfpjqx/ wholesale replica lv handbag] [http://www.naacpncnetwork.org/fvkfvmvp/ replica handbag wholesale price] [http://www.naacpncnetwork.org/kouyrc/ replica chanel handbag] [http://www.naacpncnetwork.org/xrisqzjo/ replica designer handbag chanel] [http://www.naacpncnetwork.org/hkuzsz/ discount chanel handbag replica] [http://www.naacpncnetwork.org/rhyfld/ handbag louis replica theda vuitton] [http://www.naacpncnetwork.org/pfvwbjdyy/ handbag louis replica shopping vuitton] [http://www.naacpncnetwork.org/fwnriugs/ bag image louis mirror replica vuitton] [http://www.naacpncnetwork.org/kpcqja/ bag designer diaper replica] [http://www.naacpncnetwork.org/cwomynr/ bag dior replica] [http://www.naacpncnetwork.org/sbcjjxjum/ bag christian dior replica] [http://www.naacpncnetwork.org/coadxfajn/ bag hermes replica] [http://www.naacpncnetwork.org/atkwzq/ bag birkin hermes replica] [http://www.naacpncnetwork.org/dncljzexb/ bag burberry replica] </div>=== Introduction ===Several elements of the browser front end code are what could optimistically be described as a sewer. The main browser javascript file has for the past six years been a poorly thought out, dumping ground. We have all contributed. The browser code in general is hard to follow, lightly if at all documented, and miserable for extension developers. We have also discovered limitations of the <tabbrowser/> widget (though I want to point out its limitations are not related so much to code quality as intent-vs.-use and lack of documentation) - it is difficult to extend and embellish. As a result, I would like us to embark on an adventure to fix this code. This involves:* identifying target uses* auditing the existing code for behavior* developing a general design for the new browser* incrementally refactoring existing code to achieve this design=== Browser Uses ===# Clearly identified ways of inserting per-tab content. (e.g. InfoBars)# Clearly identified ways of attaching progress listeners to tabs# Ability to listen for new tab creation/tab removal etc. (basically an interface to allow clients - whether they be XUL UI or completely external to detect for new content windows and hook into them)# Clear integration points for extension menuitem insertion into menus# Simple, well-documented code that encourages the same from our extension development community.=== Stages ======= Code Audit ======== Tasks ====# '''Kill nsBrowserInstance'''<br>The browser "appCore" appears to be used for nothing more these days than the Page Cycler, which is used by some tinderbox tests. The Page Cycler should be redeveloped as an extension, and this dependency on <tt>xpfe/</tt> excised completely.# '''Organize Event Handlers'''<br># '''Organize Components'''<br># '''Organize Pref Observers'''<br>=== Other Things ===Some other things that need to be done elsewhere in the codebase to generally make the browser better from an extensibility and code quality point of view:# Improve the Search Service (sherlock files in profile, support postdata, more attributes, better management, no advanced search service cruft)# Improve the <toolbar/> widget and its customization capabilities - especially for extensions
 
Several elements of the browser front end code are what could optimistically be described as a sewer. The main browser javascript file has for the past six years been a poorly thought out, dumping ground. We have all contributed. The browser code in general is hard to follow, lightly if at all documented, and miserable for extension developers.  
 
We have also discovered limitations of the <tabbrowser/> widget (though I want to point out its limitations are not related so much to code quality as intent-vs.-use and lack of documentation) - it is difficult to extend and embellish.  
 
As a result, I would like us to embark on an adventure to fix this code. This involves:
 
* identifying target uses
* auditing the existing code for behavior
* developing a general design for the new browser
* incrementally refactoring existing code to achieve this design
 
=== Browser Uses ===
 
# Clearly identified ways of inserting per-tab content. (e.g. InfoBars)
# Clearly identified ways of attaching progress listeners to tabs
# Ability to listen for new tab creation/tab removal etc. (basically an interface to allow clients - whether they be XUL UI or completely external to detect for new content windows and hook into them)
# Clear integration points for extension menuitem insertion into menus
# Simple, well-documented code that encourages the same from our extension development community.
 
=== Stages ===
 
==== Code Audit ====
 
==== Tasks ====
 
# '''Kill nsBrowserInstance'''<br>The browser "appCore" appears to be used for nothing more these days than the Page Cycler, which is used by some tinderbox tests. The Page Cycler should be redeveloped as an extension, and this dependency on <tt>xpfe/</tt> excised completely.
 
# '''Organize Event Handlers'''<br>
 
# '''Organize Components'''<br>
 
# '''Organize Pref Observers'''<br>
 
=== Other Things ===
 
Some other things that need to be done elsewhere in the codebase to generally make the browser better from an extensibility and code quality point of view:
 
# Improve the Search Service (sherlock files in profile, support postdata, more attributes, better management, no advanced search service cruft)
# Improve the <toolbar/> widget and its customization capabilities - especially for extensions

Revision as of 02:50, 25 November 2006

=== Introduction ===Several elements of the browser front end code are what could optimistically be described as a sewer. The main browser javascript file has for the past six years been a poorly thought out, dumping ground. We have all contributed. The browser code in general is hard to follow, lightly if at all documented, and miserable for extension developers. We have also discovered limitations of the <tabbrowser/> widget (though I want to point out its limitations are not related so much to code quality as intent-vs.-use and lack of documentation) - it is difficult to extend and embellish. As a result, I would like us to embark on an adventure to fix this code. This involves:* identifying target uses* auditing the existing code for behavior* developing a general design for the new browser* incrementally refactoring existing code to achieve this design=== Browser Uses ===# Clearly identified ways of inserting per-tab content. (e.g. InfoBars)# Clearly identified ways of attaching progress listeners to tabs# Ability to listen for new tab creation/tab removal etc. (basically an interface to allow clients - whether they be XUL UI or completely external to detect for new content windows and hook into them)# Clear integration points for extension menuitem insertion into menus# Simple, well-documented code that encourages the same from our extension development community.=== Stages ======= Code Audit ======== Tasks ====# Kill nsBrowserInstance
The browser "appCore" appears to be used for nothing more these days than the Page Cycler, which is used by some tinderbox tests. The Page Cycler should be redeveloped as an extension, and this dependency on xpfe/ excised completely.# Organize Event Handlers
# Organize Components
# Organize Pref Observers
=== Other Things ===Some other things that need to be done elsewhere in the codebase to generally make the browser better from an extensibility and code quality point of view:# Improve the Search Service (sherlock files in profile, support postdata, more attributes, better management, no advanced search service cruft)# Improve the <toolbar/> widget and its customization capabilities - especially for extensions