Closed Bug 65212 Opened 19 years ago Closed 19 years ago

profile support for kiosk mode.

Categories

(Core Graveyard :: Profile: BackEnd, defect, P1, major)

x86
Windows 2000

Tracking

(Not tracked)

VERIFIED FIXED
mozilla0.8.1

People

(Reporter: jud, Assigned: ccarlen)

References

Details

(Keywords: embed)

Attachments

(3 files)

Here are a couple bugs talking about "full screen/kiosk mode":

http://bugzilla.mozilla.org/show_bug.cgi?id=3341
http://bugzilla.mozilla.org/show_bug.cgi?id=15324

They address the UI/chrome look and feel of such a mode which is different from 
providing a "roating" profile in the backend. 

User's need the ability to walk up to a "kiosk" machine (say in a library) and 
log in/out ad-naseum.

We could do this by hooking up profile data caches (cookies, wallet, chrome, 
etc) to another listener (say CLEAR_PROFILE_CACHE or something), or by blowing 
away the default profile dir, then recreating it (considering that an operation 
that occurs for each log out).
nominating 0.8
Blocks: 64833
Severity: normal → major
Keywords: embed, mozilla0.8
Status: NEW → ASSIGNED
Mozilla 0.8 builds started today. We would consider taking reviewed low risk 
fixes if they are available today (Wednesday, 7/Feb/01) or tomorrow (Thursday, 
8/Feb/01). Otherwise, please set the target milestone to Mozilla 0.9. Thanks.
Keywords: mozilla0.8
Target Milestone: --- → mozilla0.9
*** Bug 68471 has been marked as a duplicate of this bug. ***
Blocks: 3341
The patch provides the ability to log out of the current profile. There are two
supported modes of logging out:
(1) SHUTDOWN_PERSIST in which profile change observers write their data out
before the current profile goes away.
(2) SHUTDOWN_CLEANSE in which profile change observers delete their persistent
data from the current profile.

The kiosk app will use SHUTDOWN_CLEANSE. It should have one profile for this
purpose called "guest" (or whatever) When the user logs out, the app will call
nsIProfile::ShutDownCurrentProfile(SHUTDOWN_CLEANSE). This will wipe clean the
current profile. Then the kiosk app will modally wait for the next user and then
call nsIProfile::SetCurrentProfile("guest"). That profile will now be completely
clean.
These changes look good to me. The only question is whether or not the Topic 
dependencies should be made explicit via #includes. we'll be hashing this out on 
pork. Whatever we decide there, should be integrated into these patches, then 
we're good to go. r=valeski.
Whatever we decide about where to declare observer topics can be dealt with by
some copy/paste and adjusting the REQUIRES line of Unix makefiles. Shouldn't
cause much change. Whatever change that does cause, I'll put up an updated patch.
FYI: One thing we may want to consider in the PROFILE_CLEANSE case is to ensure 
that the profiles also get blown away on restart of the client, as it's possible 
that a prematurely exiting client would cause the cleanup routines to not be 
called, and therefore leave data hanging around (this is a lesson learned from 
the previous "roaming" exercise in Nav 4.5)
Good point. I'll look into that. Something could be written into the profile's
registry entry that it needed to be cleansed until we succeeded in doing so.
That would require adding an additional routine to nsIProfile - say
createGuestProfile(), which would mark the profile as such. That's the only way
I can see to tag such a profile to be marked for cleanup later. Right now,
client code can call shutDownCurrentProfile(SHUTDOWN_CLEANSE) on any profile.
It's up to the client code to make sure it's on the right "temp" profile which
it created for this purpose.
The updated patch also changes the use of observer topics to no longer be
#defined in nsIProfileChangeStatus.idl. This allowed the removal of "profile"
from many REQUIRES sections in Unix makefiles. In doing this, I found serveral
extraneous includes of nsIProfile which caused further dependencies and removed
them. Tested this by building on Linux with MOZ_TRACK_MODULE_DEPS=1 in the build
config.
r=valeski.
The partial update fixes a bug in nsProfile.cpp (in an untested path of
execution) and clarifies some comments.
r=valeski
sorry for the delay - I reviewed this the other day but got bitten by SERA &
bugzilla logins, so my comments never appeared here.
sr=alecf
targeting 0.8.1
It's reviewed and ready to go - just have to land it.
Priority: -- → P1
Target Milestone: mozilla0.9 → mozilla0.8.1
This just landed, marking fixed
Status: ASSIGNED → RESOLVED
Closed: 19 years ago
Resolution: --- → FIXED
What's the UI for the guest profile?  Has anyone filed a bug about that?  I
assume we'd make it work like it did in 4.x.  (Permanent selection, can't delete
it, shown outside the grouping of user created profiles, etc.)
no UI, the underlying functionality is there though. embedding clients needed
the support, but they're using their own UI. If 6.x needs this exposed via UI,
I'm not sure who would own that.
verified code fix
Status: RESOLVED → VERIFIED
No longer blocks: 64833
UI for "guest mode": bug 155300.
Product: Core → Core Graveyard
You need to log in before you can comment on or make changes to this bug.