Last Modified: 10-14-99
Welcome to the WebShell Redesign page. This page is dedicated to providing the links and information to track the redesign of the WebShell which is the design of nsWebBrowser and DocShell. It will also provide the information to follow the process of converting from WebShell to the new system. If you are interested or affected by WebShell changes, please check back here frequently over the coming days and weeks.
Topics of Interest:
- Current WebShell System
- Reasons for Redesign
- New nsWebBrowser System
- Expected Gains in Redesign
- Issues to Deal With
- Plan of Attack
- How you can help
- The WebShell Redesign Team
- Post specs and design to get feedback.
- Create two new top-level directories for nsWebBrowser and DocShell to live in
- Post interfaces for feedback
- Start implementing both nsWebBrowser and DocShell in parrallel in main tree (don't change any uses of webShell).
- Build some tests to do component level testing on nsWebBrowser.
- Once the components appear to work in our test beds and all implementation is considered done, branch.
- On branch start removing all occurences of webShell and change the code to use either nsWebBrowser or DocShell depending on the case.
- Once branch is working, merge changes into main tree.
- Celebrate it all works!!!!
- By 10-14-99 we should have most of the docs posted and complete
- By 10-14-99 we should have most of the interfaces done and posted
- By 10-15-99 we should have some basic code framing ready
- By 11-2-99 we should branch
- By 11-16-99 we should be ready to merge back into tip
By 11-30-99 we should be celebrating it all working
General Areas for help:
- Interface Review - As mentioned above if your sub-system interacts with WebShell please take a look at the new interfaces. We are aware that the interface change will require basically a change of every line referencing webShell. What we want you to point out is if the new interfaces are missing some vital piece of functionality that would be needed. If you need additional functionality, please let us know. Those of you out there wishing to embed Gecko, please take this time to review the nsWebBrowser interfaces and make sure every thing you need to do your embedding is available. Our goal is to make embedding Gecko as easy if not easier than embedding IE. Any place we fail in this, please let us know. If we are missing some functionality that IE embedding provides, please let us know.
- Tests - The nsWebBrowser and DocShell pieces are going to be written as components. Since nsWebBrowser is to be the main class for client to Gecko interaction, it must be stand-alone. If you are currently working on embedding, please help us by starting to write and test agains the new interfaces. Since these pieces are components, we also hope to get very good component level testing. If you have ideas for component level tests on the nsWebBrowser please let us know. Perhaps you could help in implementing them.
- Implementation - Once we get all the interfaces done and the code basically framed out there will be a number of opportunities to help out with implementation. If you wish to help out by implementing a single function to implementing a complete component let us know. If you aren't very familiar with the Mozilla code, this could be a great opportunity for you to get your feet wet. There will be many places in code that are commented with "XXX" (do a grep or use lxr.mozilla.org). In many of the cases there will be comments about what needs to happen. If you want to start slow and bite off a function at a time, this will be your chance without the steep learning curve of the entire code-base. If you are more knowledgeable about the Mozilla codebase or if you have components currently working with WebShell please let us know if you want to help implement a whole sub-system to work with the new design.
- Come up with new Doc Shells - In the new design, Doc Shells provide a way for us to support embedding different data within the browser. Basically a DocShell provides an API for managing position within the window and document heirarchy. Different DocShell's can be written to have completely different content or rendering within them. For instance there could be an ActiveX DocShell or a Graphics Editor DocShell. The choice is yours. If you have ideas and wish to add support for a new embedding within the browser, let us know and try writing to the Doc Shell APIs.
|Leading/ Organizing the overall design. (Interfaces, Core nsWebBrowser, Component Tests, Overall embedding ability).
|Helping with design and webshell research, 60% of time currently devoted to WebShell work. (DocShell)