firefox 2 feature proposal: remote user profiles teamone august 3, 2007 teamone august 3, 2007

18
Firefox 2 Feature Proposal: Remote User Profiles TeamOne August 3, 2007

Post on 21-Dec-2015

212 views

Category:

Documents


0 download

TRANSCRIPT

Firefox 2 Feature Proposal:

Remote User Profiles

Firefox 2 Feature Proposal:

Remote User Profiles

TeamOneAugust 3, 2007

TeamOneAugust 3, 2007

AgendaAgenda• Introduction• Feature Details• Implementation • Extension Approach• Code Base Alteration Approach

• SAAM Analysis• Conclusion

• Introduction• Feature Details• Implementation • Extension Approach• Code Base Alteration Approach

• SAAM Analysis• Conclusion

IntroductionIntroduction

• Many users browse the web on multiple machines

• Bookmarks/customizations don’t carry over to other machines

• Proposed feature to address this issue

• Many users browse the web on multiple machines

• Bookmarks/customizations don’t carry over to other machines

• Proposed feature to address this issue

Proposed EnhancementProposed Enhancement

• Remote Profiling• The “same” Firefox everywhere• Profile Components• Bookmarks, browser history, cookies,

plug-ins, extensions, saved form data, saved passwords, address book entries

• Remote Profiling• The “same” Firefox everywhere• Profile Components• Bookmarks, browser history, cookies,

plug-ins, extensions, saved form data, saved passwords, address book entries

Proposed EnhancementProposed Enhancement

• Online Profile Repository• Secure service that holds the

profile• Requires user authentication

• Provides profile versioning• Much like a source code repository

• Online Profile Repository• Secure service that holds the

profile• Requires user authentication

• Provides profile versioning• Much like a source code repository

Proposed EnhancementProposed Enhancement• Use Cases• Create online profile• Change password• Export profile to disk• Import profile from disk• Export profile to server• Import profile from server (latest version)• Import profile from server (any version)

• Use Cases• Create online profile• Change password• Export profile to disk• Import profile from disk• Export profile to server• Import profile from server (latest version)• Import profile from server (any version)

Extension ApproachExtension Approach• Re-use Firefox’s built-in extension

mechanism and build an extension to realize our enhancement

• Users download our extension and gain the ability to export their profile, which can later be accessed from another computer:• remotely using HTTP;• locally by downloading a file.

• Users can select which profile element they wish to export and load.

• Re-use Firefox’s built-in extension mechanism and build an extension to realize our enhancement

• Users download our extension and gain the ability to export their profile, which can later be accessed from another computer:• remotely using HTTP;• locally by downloading a file.

• Users can select which profile element they wish to export and load.

Extension Approach: Profile Elements

Extension Approach: Profile Elements

• The following profile elements are supported:• bookmarks;• browser history;• cookies;• plug-ins;• extensions;• saved form data;• saved passwords;• address book entries.

• The following profile elements are supported:• bookmarks;• browser history;• cookies;• plug-ins;• extensions;• saved form data;• saved passwords;• address book entries.

Extension Approach:Architectural ChangesExtension Approach:

Architectural Changes• No change to the architecture

of Firefox• Built-in extension mechanism is

re-used allowing for ease of maintenance, development and deployment.

• No change to the architecture of Firefox

• Built-in extension mechanism is re-used allowing for ease of maintenance, development and deployment.

Extension Approach:Implications and RisksExtension Approach:

Implications and Risks• Reliability, by way of atomic updates

to local and remote profiles• Security, in the case of passwords

and saved form data• Maintainability, in the case of change

in Firefox’s extension mechanism• Usability, in the case of restarting

Firefox when loading a saved profile

• Reliability, by way of atomic updates to local and remote profiles

• Security, in the case of passwords and saved form data

• Maintainability, in the case of change in Firefox’s extension mechanism

• Usability, in the case of restarting Firefox when loading a saved profile

Modify Code Base Approach

Modify Code Base Approach

• Modify existing code within Firefox• Changes would modify two layers• Data Persistence• UI• Explicit connection between

Networking and Data Persistence layers

• Modify existing code within Firefox• Changes would modify two layers• Data Persistence• UI• Explicit connection between

Networking and Data Persistence layers

Modify Code Base Approach

Modify Code Base Approach

• Issues• Common data format• Common data access• Common communication methods

• Issues• Common data format• Common data access• Common communication methods

Modify Code Base Approach

Modify Code Base Approach

• Tasks• Abstract factory for saving and

retrieving all profile information• Implementations for accessing file

system and remote profiles• Configuration UI in XUL

• Tasks• Abstract factory for saving and

retrieving all profile information• Implementations for accessing file

system and remote profiles• Configuration UI in XUL

ComparisonComparison

• Codebase modifications• Firefox extensions• Tradeoffs and risks• Final decision

• Codebase modifications• Firefox extensions• Tradeoffs and risks• Final decision

Codebase ModificationsCodebase Modifications• Multiple components changed• Unknown consequences of changes• Greater control over functionality• Enhanced security• High maintenance costs• Limited distribution

• Multiple components changed• Unknown consequences of changes• Greater control over functionality• Enhanced security• High maintenance costs• Limited distribution

Firefox ExtensionFirefox Extension

• Low development costs• Easier maintenance• Automatic update functionality• Unknown if user data is

accessible via the extension interface

• Low development costs• Easier maintenance• Automatic update functionality• Unknown if user data is

accessible via the extension interface

ConclusionConclusion

• Extension Implementation best option• Deployment• Development costs• Maintenance costs• Better updates• Fewer risks/unknowns

• Extension Implementation best option• Deployment• Development costs• Maintenance costs• Better updates• Fewer risks/unknowns

Thank youThank you

Questions?Questions?