Import Network Settings

This project is for pulling the network settings from a users OS settings. Specifically, on windows it means getting them from IE, just as Firefox does.

Goals

  1. Automatically detect any network settings the user may have to access the internet. If possible be invisible to the user
  2. Allow manual configuration of network settings, incl. proxy

Use Cases

  1. User is behind a proxy at work/home and runs songbird for the first time
  2. User sets up new proxy information and opens a previously installed/run Songbird
  3. User changes proxy needs during a run of songbird

 

(lone): It isn't clear how we can proceed with use cases 2 and 3. UC2 could be achieved by running a connection check at every startup (as opposed to just firstrun), but I'm not sure this is something we want to do. UC3 is really problematic because the change could happen at any time, and scheduling periodic network checks seems really unreasonable, also we obviously can't rely on failures from the browser since the user could try to connect to an invalid uri.


Specifications

The current thinking is to add to the network connection check a step that pulls the network settings in the case of failure to connect. If we find settings we would apply them and re-attempt a connection. Upon a second failure we would go into the current flow of manual configuration of connection settings.

(lone): I suggest that we expose the ability to import the network settings from several sources: internet explorer, mozilla, opera, and so on. Upon network failures we then try to import the settings from each of the sources, starting with the most likely (IE), until the connection succeeds. If none of the import sources yields a successful connection, we can resume to the manual proxy config.

To Resolve (with hints):

  • Upon detection should we show the user the settings and/or give a choice to apply or edit them? (No)
  • Should we add UI to the prefernces pane near the current network settings to fetch the system settings? (P2)
  • Note, there is a 'Use system proxy settings' option in the network settings dialog, that might map to a preference.

Detection at Firstrun

Stories and Tasks

  • Detect the system network configuration during the network connection check (cost: 3)
  • Automatically apply the system network configuration and retry in event of an missing connection (and detected network config) (cost: 1)
  • Fall back to the connection dialogs we currently have in the flow if there is still no connection after applying the system settings. (cost: 1)

IDPriorityCostTitleDescriptionEngineerTestcase
18804P20Import network settings at firstrunSongbird should automatically detect and apply network settings, such as proxy configuration, at first run. The effort should be transparent to the user.

Currently we handle network connection failures in firstrun for the EULA screen (to get the language bundle) and at fetching of the addons bundle. We should not wait until this point to do the configuration check, but if we hit problems in those cases we should continue to do as we do, and show the connection dialog (knowing that partners may want to configure that experience and can overlay into the connection error dialog to do such).

Initial implementation should be on Windows, but the underlying service should allow implementation on all 3 platforms (mac/linux implementations are nice-to-haves at this point)
lonedfx1143
19012P13Write a proxy import serviceWrite a service that allows importing proxy settings from several sources (IE on windows is the priority) .lonedfxN/A
19013P12Integrate proxy import service into firstrunAt firstrun, if a network connection fails, songbird should try to import the proxy settings from each of the available sources until a succesful connection is established, or until there are no more proxy import sources at which point the existing manual network dialog should appear (note that we may want to disable the manual configuration dialog for some builds, this is part of a future task). The process should be transparent to the user.lonedfx1143, 4136, 4141, 4145

Notes

  • Assets (e.g. graphics)
  • Risks (e.g. unknown APis, dependencies, black holes)
    • some behavior still needs to be cleared here
      • do we prompt the user to pull in the settings or doing it magically behind the scenes? (lone: from what I gather from the rest of this document, we are trying to do all this transparently, so no ?)
      • do we check for settings even if we *can* get to the internet? (lone: I'm working on the assumption that we don't, and that a successful connection is the way we detect that the settings are good and we stop trying to import from yet another source, eg. if settings from IE fail, move on to import from mozilla, if that fails too, move on to something else, until it succeeds or there are no more sources)
      • if we continue to fail do we retain the system settings when we go into manual configuration dialogs? (lone: If we try to import from several sources, we should probably restore the settings to blank because we can't really know which settings are the most likely to be right. if we only try to import from one source [ie, IE], then we're only making the assumption that IE's settings should be good, which isn't much better)

Additional Considerations

Top level things to consider across all stories/tasks.

  • Integration
    • e.g. More than regular amounts of overlap with other ongoing or completed projects
  • Special QA Requirements
    • need a proxy set up
  • Build and Release impact
    • e.g. non-public portions, subversion moves,
  • BizDev
    • e.g. licenses or contracts required, NDAs needed
  • Project Manangement
    • e.g. code or specs needed from a partner
Tag page
You must login to post a comment.