`(12) Patent Application Publication (10) Pub. No.: US 2017/0192764 A1
`Cayre et al.
`(43) Pub. Date:
`Jul. 6, 2017
`
`US 2017.0192764A1
`
`(54) AUTOMATED APPLICATION
`INSTALLATION
`
`(71) Applicant: Dropbox, Inc., San Francisco, CA (US)
`
`(72) Inventors: Stefano Cayre, San Francisco, CA
`(US); Jacob Hurwitz, San Francisco,
`CA (US); Darius Contractor, San
`Francisco, CA (US); Yuran Lu, San
`Francisco, CA (US); James Harvey,
`San Francisco, CA (US); Aadil Sarfani,
`San Francisco, CA (US); Huy Nguyen,
`Foster City, CA (US); Alexander
`Embiricos, San Francisco, CA (US);
`Genevieve Sheehan, San Francisco, CA
`(US)
`
`(21) Appl. No.: 14/983,959
`
`(22) Filed:
`
`Dec. 30, 2015
`
`Publication Classification
`
`(2006.01)
`(2006.01)
`(2006.01)
`
`(51) Int. Cl.
`G06F 9/445
`H04L 29/06
`H04L 29/08
`(52) U.S. Cl.
`CPC ................ G06F 8/61 (2013.01); H04L 67/34
`(2013.01); H04L 63/0884 (2013.01)
`ABSTRACT
`(57)
`An example computer implemented method to automati
`cally download and install a second application can include
`a first application detecting that a condition has occurred.
`This first application can be preinstalled by the original
`equipment manufacturer. The first application can then pres
`ent an interface for signing in to or signing up for a service.
`The first application can then download and install the
`second application. This downloading and installation can
`occur in the background without requiring user interaction.
`The second application can be a client application for the
`service and the first application can pass a token with login
`credentials to the second application. This can allow the
`second application to be authenticated with the service
`without requiring a user to reenter the user's credentials.
`
`
`
`
`
`
`
`Cotent Maragement
`System 106
`
`Network C4
`
`Ciet Device C2
`
`ironSource Exhibit 1019
`ironSource Ltd. v. Digital Turbine Inc. PTAB-PGR2021-00096
`
`1 of 14
`
`
`
`Patent Application Publication
`
`Jul. 6, 2017. Sheet 1 of 6
`
`US 2017/O192764 A1
`
`1021, 1022, ..., 102
`
`
`
`1091, 1092, ..., 109
`
`NetWork
`O4.
`
`Y-100
`
`
`
`
`
`Content Management System 106
`Communications interface 120
`
`User Interface Module 22
`Account Management Module 124
`
`Authenticator Module 26
`Content item Management Module 128
`Sharing Module 130
`Synchronization Module 132
`Analytics Module 134
`
`
`
`User
`ACCount
`Database
`50
`
`Content
`Storage
`60
`
`FIG. 1
`
`2 of 14
`
`
`
`Patent Application Publication
`
`Jul. 6, 2017. Sheet 2 of 6
`
`US 2017/O192764 A1
`
`
`
`Present an interfac
`: for signing in to or
`wYes-X:
`g g
`signing up for a
`service
`
`User signs up for
`service
`
`Receive sign in
`credentials
`
`210
`
`Download a second
`application
`
`f
`
`instal the second
`application
`
`214
`
`
`
`
`
`Pass token including
`the sign in
`i:
`credentials to the :
`| second application
`216:
`
`
`
`FG. 2
`
`3 of 14
`
`
`
`Patent Application Publication
`
`Jul. 6, 2017. Sheet 3 of 6
`
`US 2017/O192764 A1
`
`Content Management
`System 106
`
`
`
`Network (34
`
`4 of 14
`
`
`
`Patent Application Publication
`
`Jul. 6, 2017. Sheet 4 of 6
`
`US 2017/O192764 A1
`
`Did you know?
`You can save this fie on the cioid using
`Cloud Storage on content management system:
`
`Citad Stofage
`
`Usertaine
`Sign in here:
`password
`as
`Sigrip at example.Can/register
`
`FG. 4
`
`
`
`joe(&exampie.com
`
`Attach a fia
`
`instead of attaching a fie, you car share the fie
`: sing cloud storage on content management
`Systein
`
`oe,
`lorer ipsin (
`orrare dician
`iet eo as feis
`Scelerisque sed
`puviar wei, elementum id, orem. Nuian consecteter risus sit anet
`nibh. Westibuium Consectetuer, quan vitae euisnod voitpat, magna
`ragna consectetuer dui, et accusan magna dui nor nibh. viorbi
`
`ei e ore
`
`F.G. 5
`
`5 of 14
`
`
`
`Patent Application Publication
`
`Jul. 6, 2017. Sheet 5 of 6
`
`US 2017/O192764 A1
`
`
`
`Now that you're set up of your new computer, it's
`time to a stomatically synchronize your files to the
`cloud
`
`Sign in here:
`
`Username
`Password
`
`Sign tip at: example.cc/register
`
`F.G. 6
`
`
`
`resaw a
`Fort Size: 2 pt.
`
`3.
`
`tore ipsi? coic sit anet, C in ea
`
`& -
`
`S X
`
`iiia legendos, is:
`
`a-ta-ala.kasa
`
`Coilaborate using the cloud Sign in of
`register ow
`
`SigE is
`
`Register
`
`Ess door postes assequeris :, ei inae:5 it ware sed.
`Siming cicus: 2: sit, nei sing bloc"
`diaefectu at
`Certie ashoreant wiry e. guha "a bigue s.scia:antif
`c, ire wieter epice: eisegueis ei. Est at also
`disputa:
`Ean ic optic aiichig contentices, pris
`possi earnet,
`
`as ea oficiis dissentias, eat carris caeci agits. Eve
`scie: seisis corfsmissec, is owin suavitate orestatis
`is, afat.
`8a, in six, it is ing:5 said:lian wis, sins so
`Big
`it get to. it pick) wounts est,
`wis facete
`cisatsios. win ada:3m3 erec.gccree3&n,
`
`Še 3icit sonia pri?ipes, e3, 2x prostea dissentias
`k's quic, 3x da grocesse costituam ear. Sex
`perpetta goriat; e. Sim: sapeet aii; Sci., & aeci eigeid:
`
`FG. 7
`
`6 of 14
`
`
`
`Patent Application Publication
`
`Jul. 6, 2017. Sheet 6 of 6
`
`US 2017/O192764 A1
`
`845
`
`835
`
`840
`
`Communication
`interface
`
`83O
`
`832
`
`834
`
`836
`
`BUS
`
`FG. 8B
`
`850
`
`
`
`
`885
`
`User interface
`Components
`
`
`
`
`
`Chipset
`
`
`
`
`
`
`
`Output
`Device
`
`Storage
`Device
`
`365
`
`870
`
`890
`
`Communication
`interface
`
`375
`
`7 of 14
`
`
`
`US 2017/O 192764 A1
`
`Jul. 6, 2017
`
`AUTOMATED APPLICATION
`INSTALLATION
`
`BACKGROUND
`0001. Many original equipment manufacturers (OEMs)
`of computers preinstall Software onto the computers they
`sell. The combination of internal testing by the OEM,
`production time, and time that the computer sits on shelves
`awaiting purchase all contribute to a significant delay from
`when the software is provided to the OEM to when a user
`finally runs the software after purchase of the computer. This
`delay can be many months and can result in the version
`ultimately run by the user being significantly outdated. This
`is undesirable because outdated Software can have security
`Vulnerabilities, limited or obsolete functionality, incompat
`ibility with up-to-date systems, etc. Informing a user that
`their new computer is out-of-date can be undesirable; fur
`ther, the software may appear broken to the user. These
`limitations can leave a negative impression on the user,
`which counteracts a purpose of preinstalled software—to
`promote the Software or an associated service.
`
`SUMMARY
`0002 Additional features and advantages of the disclo
`sure will be set forth in the description which follows, and
`in part will be obvious from the description, or can be
`learned by practice of the herein disclosed principles. The
`features and advantages of the disclosure can be realized and
`obtained by means of the instruments and combinations
`particularly pointed out in the appended claims. These and
`other features of the disclosure will become more fully
`apparent from the following description and appended
`claims, or can be learned by the practice of the principles set
`forth herein.
`0003 Disclosed are systems, methods, and non-transitory
`computer-readable storage media for automatically down
`loading and installing an application.
`0004 An example computer implemented method to
`automatically download and install a second application can
`include a first application detecting that a condition has
`occurred. This first application can be preinstalled by the
`original equipment manufacturer. The first application can
`then present an interface for signing in to or signing up for
`a service. The first application can then download and install
`the second application. This downloading and installation
`can occur in the background without requiring user interac
`tion. The second application can be a client application for
`the service and the first application can pass a token with
`login credentials to the second application. This can allow
`the second application to be authenticated with the service
`without requiring a user to reenter the user's credentials.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`0005. The above-recited and other advantages and fea
`tures of the disclosure will become apparent by reference to
`specific embodiments thereof which are illustrated in the
`appended drawings. Understanding that these drawings
`depict only example embodiments of the disclosure and are
`not therefore to be considered to be limiting of its scope, the
`principles herein are described and explained with additional
`specificity and detail through the use of the accompanying
`drawings in which:
`
`0006 FIG. 1 shows an example configuration of devices
`and a network in accordance with Some embodiments;
`0007 FIG. 2 shows an example process in accordance
`with some embodiments;
`0008 FIG. 3 shows an example configuration of devices
`according to various embodiments;
`0009 FIG. 4 shows an example user interface in accor
`dance with various embodiments;
`0010 FIG. 5 shows an example user interface in accor
`dance with various embodiments;
`0011
`FIG. 6 shows an example user interface in accor
`dance with various embodiments;
`0012 FIG. 7 shows an example user interface in accor
`dance with various embodiments;
`0013 FIG. 8A shows an example possible system
`embodiment for implementing various embodiments of the
`present technology; and
`0014 FIG. 8B shows an example possible system
`embodiment for implementing various embodiments of the
`present technology.
`
`DETAILED DESCRIPTION
`0015 Various embodiments of the disclosure are dis
`cussed in detail below. While specific implementations are
`discussed, it should be understood that this is done for
`illustration purposes only. A person skilled in the relevant art
`will recognize that other components and configurations
`may be used without parting from the spirit and scope of the
`disclosure.
`0016. The disclosed technology addresses the need in the
`art for downloading and installing an application using
`another application that was preinstalled by an original
`equipment manufacturer.
`0017. With respect to implementing various embodi
`ments of the disclosed technology, an example system
`configuration 100 is shown in FIG. 1, wherein electronic
`devices communicate via a network for purposes of
`exchanging content and other data. The system can be
`configured for use on a wide area network Such as that
`illustrated in FIG. 1. However, the present principles are
`applicable to a wide variety of network configurations that
`facilitate the intercommunication of electronic devices. For
`example, each of the components of system 100 in FIG. 1
`can be implemented in a localized or distributed fashion in
`a network.
`0018. In system 100, a user can interact with content
`management system 106 (e.g., an online synchronized con
`tent management system) through client devices 102,102.
`... , 102 (collectively “102) connected to network 104 by
`direct and/or indirect communication. Content management
`system 106 can Support connections from a variety of
`different client devices, such as: desktop computers; mobile
`computers; mobile communications devices, e.g. mobile
`phones, Smart phones, tablets; Smart televisions; set-top
`boxes; and/or any other network enabled computing devices.
`Client devices 102 can be of varying type, capabilities,
`operating systems, etc. Furthermore, content management
`system 106 can concurrently accept connections from and
`interact with multiple client devices 102.
`0019. A user can interact with content management sys
`tem 106 via a client-side application installed on client
`device 102. In some embodiments, the client-side applica
`tion can include a content management system specific
`component. For example, the component can be a stand
`
`8 of 14
`
`
`
`US 2017/O 192764 A1
`
`Jul. 6, 2017
`
`alone application, one or more application plug-ins, and/or
`a browser extension. However, the user can also interact
`with content management system 106 via a third-party
`application, Such as a web browser, that resides on client
`device 102, and is configured to communicate with content
`management system 106. In either case, the client-side
`application can present a user interface (UI) for the user to
`interact with content management system 106. For example,
`the user can interact with the content management system
`106 via a client-side application integrated with the file
`system or via a webpage displayed using a web browser
`application.
`0020 Content management system 106 can enable a user
`to store content, as well as perform a variety of content
`management tasks, such as retrieve, modify, browse, and/or
`share the content. Furthermore, content management system
`106 can enable a user to access the content from multiple
`client devices 102. For example, client device 102, can
`upload content to content management system 106 via
`network 104, and the same client device 102, or some other
`client device 102, can retrieve the content from content
`management system 106.
`0021. To facilitate the various content management ser
`vices, a user can create an account with content management
`system 106. User account database 150 can maintain the
`account information. User account database 150 can store
`profile information for registered users. In some cases, the
`only personal information in the user profile can be a
`username and/or email address. However, content manage
`ment system 106 can also be configured to accept additional
`user information Such as birthday, address, billing informa
`tion, etc.
`0022. User account database 150 can include account
`management information, Such as account type (e.g. free or
`paid), usage information, (e.g. file edit history), maximum
`storage space authorized, storage space used, content storage
`locations, security settings, personal configuration settings,
`content sharing data, etc. Account management module 124
`can be configured to update and/or obtain user account
`details in user account database 150. The account manage
`ment module 124 can be configured to interact with any
`number of other modules in content management system
`106.
`0023. An account can be used to store content, such as
`digital data, documents, text files, audio files, video files,
`etc., from one or more client devices 102 authorized on the
`account. The content can also include collections for group
`ing content items together with different behaviors, such as
`folders, playlists, albums, etc. For example, an account can
`include a public folder that is accessible to any user. The
`public folder can be assigned a web-accessible address. A
`link to the web-accessible address can be used to access the
`contents of the public folder. In another example, an account
`can include: a photos collection that is intended for photos
`and that provides specific attributes and actions tailored for
`photos; an audio collection that provides the ability to play
`back audio files and perform other audio related actions; or
`other special purpose collection. An account can also
`include shared collections or group collections that are
`linked with and available to multiple user accounts. The
`permissions for multiple users may be different for a shared
`collection.
`0024. The content can be stored in content storage 160.
`Content storage 160 can be a storage device, multiple
`
`storage devices, or a server. Alternatively, content storage
`160 can be a cloud storage provider or network Storage
`accessible via one or more communications networks. Con
`tent management system 106 can hide the complexity and
`details from client devices 102 so that client devices 102 do
`not need to know exactly where or how the content items are
`being stored by content management system 106. In some
`embodiments, content management system 106 can store the
`content items in the same collection hierarchy as they appear
`on client device 102. However, content management system
`106 can store the content items in its own order, arrange
`ment, or hierarchy. Content management system 106 can
`store the content items in a network accessible storage
`(NAS) device, in a redundant array of independent disks
`(RAID), etc. Content storage 160 can store content items
`using one or more partition types, such as FAT, FAT32,
`NTFS, EXT2, EXT3, EXT4, HFS/HFS+, BTRFS, and so
`forth.
`0025 Content storage 160 can also store metadata
`describing content items, content item types, and the rela
`tionship of content items to various accounts, collections, or
`groups. The metadata for a content item can be stored as part
`of the content item or can be stored separately. In one
`variation, each content item stored in content storage 160
`can be assigned a system-wide unique identifier.
`0026 Content storage 160 can decrease the amount of
`storage space required by identifying duplicate content items
`or duplicate segments of content items. Instead of storing
`multiple copies, content storage 160 can store a single copy
`and then use a pointer or other mechanism to link the
`duplicates to the single copy. Similarly, content storage 160
`can store content items more efficiently, as well as provide
`the ability to undo operations, by using a content item
`version control that tracks changes to content items, different
`versions of content items (including diverging version
`trees), and a change history. The change history can include
`a set of changes that, when applied to the original content
`item version, produce the changed content item version.
`0027 Content management system 106 can be config
`ured to support automatic synchronization of content from
`one or more client devices 102. The synchronization can be
`platform agnostic. That is, the content can be synchronized
`across multiple client devices 102 of varying type, capabili
`ties, operating systems, etc. For example, client device 102.
`can include client software, which synchronizes, via a
`synchronization module 132 at content management system
`106, content in client device 102.s file system with the
`content in an associated user account. In some cases, the
`client Software can synchronize any changes to content in a
`designated collection and its Sub-collections, such as new,
`deleted, modified, copied, or moved content items or col
`lections. The client software can be a separate software
`application, can integrate with an existing content manage
`ment application in the operating system, or some combi
`nation thereof. In one example of client software that
`integrates with an existing content management application,
`a user can manipulate content items directly in a local
`collection, while a background process monitors the local
`collection for changes and synchronizes those changes to
`content management system 106. Conversely, the back
`ground process can identify content that has been updated at
`content management system 106 and synchronize those
`changes to the local collection. The client software can
`provide notifications of synchronization operations, and can
`
`9 of 14
`
`
`
`US 2017/O 192764 A1
`
`Jul. 6, 2017
`
`provide indications of content statuses directly within the
`content management application. Sometimes client device
`102, may not have a network connection available. In this
`scenario, the client Software can monitor the linked collec
`tion for content item changes and queue those changes for
`later synchronization to content management system 106
`when a network connection is available. Similarly, a user can
`manually start, stop, pause, or resume synchronization with
`content management system 106.
`0028. A user can view or manipulate content via a web
`interface generated and served by user interface module 122.
`For example, the user can navigate in a web browser to a
`web address provided by content management system 106.
`Changes or updates to content in the content storage 160
`made through the web interface. Such as uploading a new
`version of a content item, can be propagated back to other
`client devices 102 associated with the user's account. For
`example, multiple client devices 102, each with their own
`client Software, can be associated with a single account and
`content items in the account can be synchronized between
`each of the multiple client devices 102.
`0029 Content management system 106 can include a
`communications interface 120 for interfacing with various
`client devices 102, and can interact with other content and/or
`service providers 109, 109,..., 109, (collectively “109)
`via an Application Program Interface (API). Certain soft
`ware applications can access content storage 160 via an API
`on behalf of a user. For example, a Software package. Such
`as an app running on a Smartphone or tablet computing
`device, can programmatically make calls directly to content
`management system 106, when a user provides credentials,
`to read, write, create, delete, share, or otherwise manipulate
`content. Similarly, the API can allow users to access all or
`part of content storage 160 through a web site.
`0030 Content management system 106 can also include
`authenticator module 126, which can verify user credentials,
`security tokens, API calls, specific client devices, and so
`forth, to ensure only authorized clients and users can access
`content items. Further, content management system 106 can
`include analytics module 134 module that can track and
`report on aggregate file operations, user actions, network
`usage, total storage space used, as well as other technology,
`usage, or business metrics. A privacy and/or security policy
`can prevent unauthorized access to user data stored with
`content management system 106.
`0031 Content management system 106 can include shar
`ing module 130 for managing sharing content publicly or
`privately. Sharing content publicly can include making the
`content item accessible from any computing device in
`network communication with content management system
`106. Sharing content privately can include linking a content
`item in content storage 160 with two or more user accounts
`so that each user account has access to the content item. The
`sharing can be performed in a platform agnostic manner.
`That is, the content can be shared across multiple client
`devices 102 of varying type, capabilities, operating systems,
`etc. The content can also be shared across varying types of
`user accountS.
`0032. In some embodiments, content management sys
`tem 106 can be configured to maintain a content directory
`identifying the location of each content item in content
`storage 160. The content directory can include a unique
`content entry for each content item stored in the content
`Storage.
`
`0033. A content entry can include a content path that can
`be used to identify the location of the content item in a
`content management system. For example, the content path
`can include the name of the content item and a folder
`hierarchy associated with the content item. For example, the
`content path can include a folder or path of folders in which
`the content item is placed as well as the name of the content
`item. Content management system 106 can use the content
`path to present the content items in the appropriate folder
`hierarchy.
`0034. A content entry can also include a content pointer
`that identifies the location of the content item in content
`storage 160. For example, the content pointer can include
`the exact storage address of the content item in memory. In
`Some embodiments, the content pointer can point to multiple
`locations, each of which contains a portion of the content
`item.
`0035. In addition to a content path and content pointer, a
`content entry can also include a user account identifier that
`identifies the user account that has access to the content
`item. In some embodiments, multiple user account identifi
`ers can be associated with a single content entry indicating
`that the content item has shared access by the multiple user
`acCOunts.
`0036. To share a content item privately, sharing module
`130 can be configured to add a user account identifier to the
`content entry associated with the content item, thus granting
`the added user account access to the content item. Sharing
`module 130 can also be configured to remove user account
`identifiers from a content entry to restrict a user accounts
`access to the content item.
`0037 To share content publicly, sharing module 130 can
`be configured to generate a custom network address, such as
`a uniform resource locator (URL), which allows any web
`browser to access the content in content management system
`106 without any authentication. To accomplish this, sharing
`module 130 can be configured to include content identifi
`cation data in the generated URL, which can later be used to
`properly identify and return the requested content item. For
`example, sharing module 130 can be configured to include
`the user account identifier and the content path in the
`generated URL. Upon selection of the URL, the content
`identification data included in the URL can be transmitted to
`content management system 106 which can use the received
`content identification data to identify the appropriate content
`entry and return the content item associated with the content
`entry.
`0038. In addition to generating the URL, sharing module
`130 can also be configured to record that a URL to the
`content item has been created. In some embodiments, the
`content entry associated with a content item can include a
`URL flag indicating whether a URL to the content item has
`been created. For example, the URL flag can be a Boolean
`value initially set to 0 or false to indicate that a URL to the
`content item has not been created. Sharing module 130 can
`be configured to change the value of the flag to 1 or true after
`generating a URL to the content item.
`0039. In some embodiments, sharing module 130 can
`also be configured to deactivate a generated URL. For
`example, each content entry can also include a URL active
`flag indicating whether the content should be returned in
`response to a request from the generated URL. For example,
`sharing module 130 can be configured to only return a
`content item requested by a generated link if the URL active
`
`10 of 14
`
`
`
`US 2017/O 192764 A1
`
`Jul. 6, 2017
`
`flag is set to 1 or true. Thus, access to a content item for
`which a URL has been generated can be easily restricted by
`changing the value of the URL active flag. This allows a user
`to restrict access to the shared content item without having
`to move the content item or delete the generated URL.
`Likewise, sharing module 130 can reactivate the URL by
`again changing the value of the URL active flag to 1 or true.
`A user can thus easily restore access to the content item
`without the need to generate a new URL.
`0040. While content management system 106 is pre
`sented with specific components, it should be understood by
`one skilled in the art, that the architectural configuration of
`system 106 is simply one possible configuration and that
`other configurations with more or fewer components are
`possible.
`0041
`FIG. 2 shows an example process according to
`Some embodiments. The process can be run by a first
`application. The example process is typically executed by a
`client device such as client device 102. The process can
`begin with detecting a condition (step 202). If the condition
`is not detected, step 202 can loop until the condition is
`ultimately detected. The condition can be content item being
`saved, a screenshot being captured, an event related to a
`content item manager (e.g., a file system opening for the first
`time, saving a content item, updating a content item, search
`ing for a content item, sharing a content item, etc.), a period
`of time (e.g., a number of minutes, hours, or days), after a
`system event Such as the computer first booting up, a prompt
`being displayed for a user to login to various accounts (e.g.,
`Social media, email, cloud synchronization, etc.), connecting
`to network 104, sending an email, opening an attachment,
`connecting a portable device, etc. In some embodiments,
`multiple conditions are independently or jointly effective to
`satisfy step 202.
`0042. In some embodiments, the OEM has strict guide
`lines about when an application can run and how much
`processing time it can consume if the application runs during
`boot. Waiting for a condition that will be satisfied after boot
`is completed permits the application to accommodate Such
`requirements.
`0043. When the condition is detected (step 202), the
`process can continue and present an interface for signing in
`to or signing up for a service (step 204). This interface can
`include a dialog box, an alert, a web site, etc. The process
`can then determine if the user signs in (step 206).
`0044) If the user does not sign in (“no” at step 206), the
`user can be guided to sign up for the service (step 208). After
`the user does sign in (“yes” at step 206) or after the user
`signs up for the service (step 208), the process can receive
`sign in credentials (step 210). The sign in credentials can be
`a username and password, an encrypted form of the user
`name and/or password, a unique authentication key for the
`module running the process (e.g., using OAuth standard), an
`authentication key containing an expiration date (e.g., the
`key will only last for a few seconds or minutes). The sign in
`credentials can be received directly from the user or from the
`service. For example, the user can enter in the user's
`credentials into the service and the service can send creden
`tials to the application running the process.
`0045. The process can then include downloading a sec
`ond application (step 212). This step can be in response to
`receiving user credentials or can be running simultaneous to
`other steps. In some embodiments, step 212 is performed in
`anticipation of the condition occurring or in response to the
`
`condition being detected. The second application can be
`related to the first application. For example, the first appli
`cation can be a registration module running on client device
`102. The first application can be associated with content
`management system 106 and the second application can be
`a client synchronization application that is also associated
`with content management system 106. In some embodi
`ments, the first application downloads the most up-to-date
`version of the second application. This can ensure that the
`version of the second application that a user first experiences
`is up to date. In some embodiments, the process can include
`connecting to a download server that can inform the first
`application of how to download the most recent version of
`the client synchronization application.
`0046. The process can then include installing the second
`application (step 214). In some embodiments, this download
`and installation (steps 212 and 214) can occur in the back
`ground without notifying the user. For example, these steps
`can occur while the user is signing in or signing up for the
`service. In some embodiments, these steps occur in antici
`pation of the condition in step 202 being detected. In some
`embodiments, the first application can have elevated access
`privileges to enable the installation of the second application
`without user involvement (e.g., not triggering a user access
`control prompt by an operating system).
`0047. The process can continue by passing a token
`including the sign in credentials from the first application to
`the second application (step 216). The token can be effective
`to automatically sign into the service by the second appli
`cation. In some embodiments, this can include entering the
`sign in credentials previously entered in the first application
`into the second application. In some embodiments, this can
`include passing a cookie (or similar) for use by the second
`application. In some embodiments, step 216 includes nego
`tiating sign in credentials specific to the second application.
`For example, the first application can request a unique
`identifier (e.g., a pseudo-random number) from the second
`application which it can send to content management system
`106; content management system 106 can then send a
`unique sign in credential to the first application which can be
`passed to the second application. Alternatively, the first
`application can send a unique identifier associated with the
`second application to content management system 106:
`content management system 106 can then validate the
`unique identifier so that the second application can then
`connect to content management system 106 using the unique
`identifier. Passing the token to the second application (step
`216) can be part of the installation procedure or can be
`another procedure.
`0048