firefox 2 feature proposal: remote user profiles teamone august 3, 2007 teamone august 3, 2007
Post on 21-Dec-2015
212 views
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