Hi Jonas, Jonas Sicking <[email protected]> writes:
[...] > So we could do the same thing for FirefoxOS. Lets treat Gaia as > "chrome" from a user point of view, i.e. as "Phone UI" (or "TV UI" or > whatever product that we're building). This doesn't mean that we > should give it with Gecko chrome privileges though, I think there's > still good reasons not to. I like this idea. It nicely defines the boundary between chrome UI and content and provides intuitive interface for user familiar with Desktop browsers. > This UI should provide both navigation UI, as well as UI for home > screen, phone calls, text messages, camera, and whatever other > functionality that we think built-in UI should have. Maybe some of them should be made to normal content instead but let's don't discuss this yet. > So, starting with the navigation UI, I think we should follow > desktop's lead and leave session management up to the user. So like > how we don't open bookmarks in new tabs on desktop, I don't think we > should open icons on the homepage in a new window. > > So by default I think there is only a single window. This window > starts with the homescreen, and when the user clicks an icon, this > window is navigated to whatever URL that icon represents. > > This includes if the icon that was clicked is for the dialer or some > other Gaia content. It even includes clicking the "home" button. The > home simply acts like a bookmark which navigates the user to the > homescreen. > > To enable the user to open a second session, we should have an > explicit UI action which opens a new window, similar to how desktop > has a UI action for opening a new tab. The user then stays in this > tab, no matter which links are clicked or websites are navigated to. Yes. On Desktop I'm used to click left-button to open link in the current tab and middle-button to open in a new tab. > Any background window is unaffected by what the user does in the > foreground window. This might mean that the user has the same gaia > content open in two sessions at once. Even the homescreen might be > open in multiple sessions at once. If we could open a gaia content in two sessions at once then they need to be careful about notifications and system messages. For example we wouldn't want two text message UIs both send new message notifications to lockscreen. > We can then enable the user to quickly switch between open sessions, > or close any session. If the user close the last open session we can > create a new session open at the homescreen. > > This means that the the current "task manager" UI becomes a "session > manager" rather than a "app manager". We might also want to make > bigger changes to that UI given that its primary use-case changes. But > I'll leave that to a separate discussion. We should also consider the four display modes proposed in w3c appmanifest spec. > It also means that we more clearly always have something to go "back" > to. I.e. the previous page that you visited in the current session. > This means that we could hook up edge gestures to perform > back/forward, or we could even include back/forward hardware keys if > we want. > > Note that session management can be orthogonal to which content runs > in which process. So just because the user stays within the same > window when navigating between gaia and non-gaia content, or between > different gaia content, doesn't mean that we need to stay within the > same OS process. Now the new security model makes more sense. It doesn't fit the original app model very well, I think. > This also greatly changes what we can do with the rest of Gaia. Since > it's all just part of the "phone UI" that this means that we don't > have to have separate "apps" for the phone UI, text message UI, > camera, etc. Its all just "phone UI" to the user, the same way that > about:preferences and about:home is part of the browser UI on desktop. > > We might still want to separate various pieces of Gaia into separate > origins or cookie jars for security reasons. And we might still want > to use separate processes in order to prevent OOMs in one area of the > UI from bringing down other UI. > > But by simply treating all of Gaia as "Phone UI" it means that we can > make process and origin decisions independently from UX decisions. So > for example dialer, messaging and contacts could be put into the same > gaia package which means that they share IndexedDB and localStorage > data. > > In fact, the only really strong reason to split different parts of > gaia up is to security-wise separate some parts from others, just in > case something gets hacked. So for example the email app deals with a > lot of untrusted 3rd-party content which makes it more prone to get > hacked, and so makes sense to separate from most other content. The > same might be true for the media apps. > > There are of course a lot of details to iron out. Such as what happens > if a webpage call window.open() or uses <a href="..." > target="_blank">. On desktop that creates a new session in the form of > a new window or tab. Do we want to do that here too even though we're > saying that users are in charge of sessions? I think for a more app like content, for example Gmail, would want to open a link in a new tab instead of being navigated away. > And when do we hide/compress the URL bar? Does it > appears/disappear/compress/decompress when you navigate between > gaia/pinned/unpinned content? > > We also need some way to go back to content which you have previously > visited, but which you didn't save in a dedicated session. Something > like the rocketbar or even a dedicated history UI could help here. > > These are clearly things we need to figure out, but I hope these > things can be reasonably solved. > > > So, in summary, the idea is to: > * Don't use separate windows for separate "apps" > * Enable platform-wide "tabs" which can be navigated to any URL, > including gaia URLs. > * The same URL can be open in multiple tabs at once, including gaia > URLs. Even including the homescreen. > * Icons on the homescreen are just like links and just navigates the > current tab. > * The homebutton simply navigates the current tab to the homescreen URL. > > Thoughts? > > / Jonas > _______________________________________________ > dev-b2g mailing list > [email protected] > https://lists.mozilla.org/listinfo/dev-b2g _______________________________________________ dev-b2g mailing list [email protected] https://lists.mozilla.org/listinfo/dev-b2g
