I just moved the remaining methods from WebContents to TabContents. I kept the methods and data members the same, just merged the classes, so it should be easy to find what you're looking for (or to resolve conflicts if you have local changes to web_contents.cc). Hopefully this will make the complexity in this area much more manageable.
We still have a shell class called WebContents (derived from TabContents) and references to it, which are temporary so I don't have to immediately change all references to it. It will hopefully soon go away. FAQ: Why did we do this? Chromium 1 used a variety of specialized tab contents types which we wrote native interfaces for. This included the history and downloads page. TabContents was the base class providing shared functionality and an external API, and there were a variety of subclasses for the different tab types. WebContents was the TabContents specialization for web pages. There were several problems with this. The original idea is that our native UI would be more awesome than a web page could ever be. But it turned out to be teh suck because a variety of things didn't work (find in page, printing, selection) and because we didn't end up doing anything fancy in there anyway. With native UI, we would have to write it again for every platform, which nobody was excited about doing. There were also very difficult bugs associated with switching tab contents types. For example, in Chromium 1, if you go to the history page, navigate to a regular web page, go back, then navigate to a different regular web page, you would see a flash of the first web page during the second transition. This was the tab contents types being switched between a HistoryContents and a previously-used WebContents. So now we only display web pages inside tabs. This makes the switching problem go away. Glen rewrote history and downloads we be special web pages with additional permissions, and I did a whole heckuva lof of refactoring to delete all the old TabContents switching. We still swap RenderViewHosts inside the TabContents when we need to switch processes. Brett --~--~---------~--~----~------------~-------~--~----~ Chromium Developers mailing list: chromium-dev@googlegroups.com View archives, change email options, or unsubscribe: http://groups.google.com/group/chromium-dev -~----------~----~----~----~------~----~------~--~---