6 ms·
I believe all the current development tools do it wrong, and the right place for a tool is outside the browser, as a custom shell around the main browser compon
by lobster_johnson 14y ago
I believe all the current development tools do it wrong, and the right place for a tool is outside the browser, as a custom shell around the main browser component.
This is how I tend to work: I load up an app. I set up my credentials (by logging in or setting a particular cookie manually, for example). I debug using Firebug, mainly using the DOM view, the console and the JavaScript REPL. Then I might change my credentials to see the page as a different user, for example. I clear the cache now and then, and I clear my cookies often. I also change things like cookie preferences and turn JavaScript on/off to see how my app behaves. I also work on multiple projects concurrently, so I frequently need to switch, meaning yet again to clear the browser state.
In other words, I need the browser as a clean slate. I frequently need to throw its state away, and I rarely if ever run pages as "myself".
I'm a Chrome user, so for this reason I currently use Firefox as my dedicated debug browser. This means I can always throw away my browser state, and I can close Firefox when I'm done with work. Firefox is a resource hog on OS X, and will frequently sit consuming 5-10% CPU even when idle, so this is actually important. I almost never use Chrome for debugging, not just because its DOM view and console are both much worse than Firebug's, but because it's my browser. (Yes, I know that Chrome supports per-window profiles, but Chrome just isn't good enough for debugging.)
My ideal development tool would be a thin shell around a web browser component. It would be chock full of techy dev stuff, and it would not compromise the dev aspect in favour of user-friendliness; unlike today's browsers, everything could be provided natively by the tool instead of inserted awkwardly by "extensions". It would do away with user-facing features like browser extensions, fancy history and bookmarks. In other words, it would be a hard core, bare-bones development tool.
This tool would support "projects"; each project being is a browser window, and each browser window is logically compartmentalized, with its own cookie database, history, settings, etc., with the option to save certain things like cookies, so that I can "bake" current browser state and recall it later. The ideal solution would be for each window to be able to embed different browser engines; there is no particular technical reason why this should not work, although it would be a little more work to implement.
I actually started writing an app like this for OS X that embeds WebKit. It was surprisingly simple, and I got a decent DOM inspector view and style editor working, but then my mind wandered off to work on something else. I may pick this project up again at some point.
- bliker 14y agoYou should, I like that idea very much. I was also having a similar problem with mixing work & personal data. Now I am using Canary as development browser, that itself is enormous resource hog. If you will continue working on such a project I am happy to help!
- lobster_johnson 14y agoI'm going to see about resurrecting the project and putting it up on Github soon!
- vsync 14y agoPrism used to be kind of cool but Mozilla abandoned it. There also used to be more focus on being able to build arbitrary tools around Gecko but Mozilla abandoned them (except for specialized OSes?). Gecko is my favorite layout engine and Mozilla makes my favorite browser environments. Firefox gets weirder and weirder sadly. The multiproject browser environment thing sounds really cool. Multifox does some of that but its interface strikes me as a bit awkward. Just so you know, Firefox does allow you to run multiple profiles simultaneously in different instances. I do this all the time. Just "firefox -a blark -P profile_name" (or -ProfileManager) and there you go. Don't know if it will work on OS X though. It's also possible to preload plugins, config settings, and extensions so that you don't have to set them up each time. Let me know if you'd like some pointers. This was a big part of my work at a previous job.
- Gmo 14y agoyou can also set MOZ_NO_REMOTE on the command-line and you can start Firefox with another profile (I use that for dev, with a special dev profile)
- miniatureape 14y agoYou can get a lot of this by using Chrome's Users feature. This allows you to switch between user accounts and have clean, extensionless sessions.
- paulirish 14y ago