Group synchronization with shared content
By establishing different types of connections between computer systems and identifying browser data, the problem of low communication efficiency in existing technologies is solved, enabling efficient content sharing and system collaboration.
Patent Information
- Application Number
- CN202480022290.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-11-27
- Filing Date
- 2024-03-11
- Publication Date
- 2025-11-18
AI Technical Summary
Existing technologies are inefficient in managing communication between computer systems, especially when sharing content, and are unable to effectively collaborate with different user groups.
By establishing different types of connections between computer systems, identifying browser data, and sending corresponding messages based on the data present in the browser, efficient content sharing can be achieved.
It improves the communication efficiency between computer systems, supports content sharing among different user groups, and enhances the collaboration capabilities between systems.
Smart Images

Figure CN120982078A_ABST
Abstract
Description
[0001] Cross-reference to related applications
[0002] This application claims the benefit of U.S. Nonprovisional Application No. 18 / 520,451, filed November 27, 2023, entitled “GROUP SYNCHRONIZATION WITH SHARED CONTENT,” and the benefit of U.S. Provisional Application No. 63 / 455,241, filed March 28, 2023, entitled “GROUP SYNCHRONIZATION WITH SHARED CONTENT,” the entire contents of each of these applications are incorporated herein by reference. Background Technology
[0003] Electronic devices are becoming increasingly interconnected. For example, users often want to collaborate and share content. Therefore, there is a need to improve the technologies used for sharing content. Summary of the Invention
[0004] Current technologies used to manage communication between computer systems are often ineffective and / or inefficient. For example, some technologies do not allow users to share portions of content, such as a set of web pages (and / or tags), a set of slides, and / or a set of chapters of a document, with different user groups. This disclosure provides more effective and / or efficient technologies for managing communication between computer systems while detecting the presence of various users regarding shared content. It should be recognized that other types of computer systems can also be used with the technologies described herein. For example, a smartwatch can use the technologies described herein to connect to a laptop computer. Furthermore, these technologies may optionally complement or replace other technologies used to manage communication between computer systems.
[0005] This article describes some techniques used to manage communication between computer systems. An overview of these techniques is provided below with examples.
[0006] In some examples, a method performed by a computer system is described. In some examples, the method includes: identifying a browser associated with a user of the computer system; in response to identifying the browser, establishing a first connection between the computer system and one or more other computer systems of the user; establishing a second connection between the computer system and a service, wherein the second connection is different from the first connection; identifying first data about the browser when the computer system connects to one or more other computer systems via the first connection and when the computer system connects to the service via the second connection; and in response to identifying the first data about the browser: sending a message corresponding to the first data via the first connection between the computer system and one or more other computer systems based on determining that the first data includes existence data about the browser; and sending a message corresponding to the first data via the second connection based on determining that the first data does not include existence data.
[0007] In some examples, a non-transitory computer-readable storage medium is described, which stores one or more programs configured to be executed by one or more processors of a computer system. In some examples, the one or more programs include instructions for: identifying a browser associated with a user of the computer system; in response to identifying the browser, causing a first connection to be established between the computer system and one or more other computer systems of the user; causing a second connection to be established between the computer system and a service, wherein the second connection is different from the first connection; identifying first data about the browser when the computer system connects to one or more other computer systems via the first connection and when the computer system connects to the service via the second connection; and in response to identifying the first data about the browser: sending a message corresponding to the first data via the first connection between the computer system and one or more other computer systems based on determining that the first data includes existence data about the browser; and sending a message corresponding to the first data via the second connection based on determining that the first data does not include existence data.
[0008] In some examples, a transient computer-readable storage medium is described that stores one or more programs configured to be executed by one or more processors of a computer system. In some examples, the one or more programs include instructions for: identifying a browser associated with a user of the computer system; in response to identifying the browser, causing a first connection to be established between the computer system and one or more other computer systems of the user; causing a second connection to be established between the computer system and a service, wherein the second connection is different from the first connection; identifying first data about the browser when the computer system connects to one or more other computer systems via the first connection and when the computer system connects to the service via the second connection; and in response to identifying the first data about the browser: sending a message corresponding to the first data via the first connection between the computer system and one or more other computer systems based on determining that the first data includes existence data about the browser; and sending a message corresponding to the first data via the second connection based on determining that the first data does not include existence data.
[0009] In some examples, a computer system is described that includes one or more processors and memory storing one or more programs configured to be executed by the one or more processors. In some examples, the one or more programs include instructions for: identifying a browser associated with a user of the computer system; in response to identifying the browser, causing a first connection to be established between the computer system and one or more other computer systems of the user; causing a second connection to be established between the computer system and a service, wherein the second connection is different from the first connection; identifying first data about the browser when the computer system connects to one or more other computer systems via the first connection and when the computer system connects to the service via the second connection; and in response to identifying the first data about the browser: sending a message corresponding to the first data via the first connection between the computer system and one or more other computer systems based on determining that the first data includes existence data about the browser; and sending a message corresponding to the first data via the second connection based on determining that the first data does not include existence data.
[0010] In some examples, the computer system includes means for performing each of the following steps: identifying a browser associated with a user of the computer system; in response to identifying the browser, establishing a first connection between the computer system and one or more other computer systems of the user; establishing a second connection between the computer system and a service, wherein the second connection is different from the first connection; identifying first data about the browser when the computer system connects to one or more other computer systems via the first connection and when the computer system connects to the service via the second connection; and in response to identifying the first data about the browser: sending a message corresponding to the first data via the first connection between the computer system and one or more other computer systems based on determining that the first data includes existence data about the browser; and sending a message corresponding to the first data via the second connection based on determining that the first data does not include existence data.
[0011] In some examples, a computer program product is described. In some examples, the computer program product includes one or more programs configured to be executed by one or more processors of a computer system. In some examples, the one or more programs include instructions for: identifying a browser associated with a user of the computer system; in response to identifying the browser, causing a first connection to be established between the computer system and one or more other computer systems of the user; causing a second connection to be established between the computer system and a server, wherein the second connection is different from the first connection; identifying first data about the browser when the computer system connects to one or more other computer systems via the first connection and when the computer system connects to the service via the second connection; and in response to identifying the first data about the browser: sending a message corresponding to the first data via the first connection between the computer system and one or more other computer systems based on determining that the first data includes existence data about the browser; and sending a message corresponding to the first data via the second connection based on determining that the first data does not include existence data.
[0012] In some examples, a method performed by a computer system is described. In some examples, the method includes: establishing a first connection between a first user's first computer system and a second computer system of the first user; identifying a first portion of a subset of content; and after establishing the first connection and identifying the first portion of the subset of content: based on determining that the presence of a first user using the first user's first computer system is detected with respect to the subset and that the subset is designed to be shared, establishing a second connection between the first user's first computer system and a third computer system of a second user different from the first user, while maintaining the first connection; and based on determining that the presence of the first user's first computer system is detected with respect to the subset and that the subset is not designed to be shared, maintaining the first connection without establishing the second connection between the first user's first computer system and the second user's third computer system.
[0013] In some examples, a non-transitory computer-readable storage medium is described, which stores one or more programs configured to be executed by one or more processors of a computer system. In some examples, the one or more programs include instructions for: causing a first connection to be established between a first computer system of a first user and a second computer system of the first user; identifying a first portion of a subset of content; and after causing the establishment of the first connection and identifying the first portion of the subset of content: based on determining that the presence of a first user using the first computer system of the first user is detected with respect to the subset and that the subset is designed to be shared, causing a second connection to be established between the first computer system of the first user and a third computer system of a second user different from the first user, while maintaining the first connection; and based on determining that the presence of the first computer system of the first user is detected with respect to the subset and that the subset is not designed to be shared, maintaining the first connection without causing a second connection to be established between the first computer system of the first user and the third computer system of the second user.
[0014] In some examples, a transient computer-readable storage medium is described that stores one or more programs configured to be executed by one or more processors of a computer system. In some examples, the one or more programs include instructions for: causing a first connection to be established between a first computer system of a first user and a second computer system of the first user; identifying a first portion of a subset of content; and after causing the establishment of the first connection and identifying the first portion of the subset of content: based on determining that the presence of a first user using the first computer system of the first user is detected with respect to the subset and that the subset is designed to be shared, causing a second connection to be established between the first computer system of the first user and a third computer system of a second user different from the first user, while maintaining the first connection; and based on determining that the presence of the first computer system of the first user is detected with respect to the subset and that the subset is not designed to be shared, maintaining the first connection without causing a second connection to be established between the first computer system of the first user and the third computer system of the second user.
[0015] In some examples, a computer system is described that includes one or more processors and memory storing one or more programs configured to be executed by the one or more processors. In some examples, the one or more programs include instructions for: causing a first connection to be established between a first computer system of a first user and a second computer system of the first user; identifying a first portion of a subset of content; and after causing the establishment of the first connection and identifying the first portion of the subset of content: based on determining that the presence of a first user using the first computer system of the first user is detected with respect to the subset and that the subset is designed to be shared, causing a second connection to be established between the first computer system of the first user and a third computer system of a second user different from the first user, while maintaining the first connection; and based on determining that the presence of the first computer system of the first user is detected with respect to the subset and that the subset is not designed to be shared, maintaining the first connection without causing a second connection to be established between the first computer system of the first user and the third computer system of the second user.
[0016] In some examples, the computer system includes means for performing each of the following steps: establishing a first connection between a first user's first computer system and a second computer system of the first user; identifying a first portion of a subset of content; and after establishing the first connection and identifying the first portion of the subset of content: based on determining that the presence of a first user using the first user's first computer system is detected with respect to the subset and that the subset is designed to be shared, establishing a second connection between the first user's first computer system and a third computer system of a second user different from the first user, while maintaining the first connection; and based on determining that the presence of the first user's first computer system is detected with respect to the subset and that the subset is not designed to be shared, maintaining the first connection without establishing a second connection between the first user's first computer system and the second user's third computer system.
[0017] In some examples, a computer program product is described. In some examples, the computer program product includes one or more programs configured to be executed by one or more processors of a computer system. In some examples, the one or more programs include instructions for: causing a first connection to be established between a first computer system of a first user and a second computer system of the first user; identifying a first portion of a subset of content; and after causing the establishment of the first connection and identifying the first portion of the subset of content: based on determining that the presence of a first user using the first computer system of the first user is detected regarding the subset and that the subset is designed to be shared, causing a second connection to be established between the first computer system of the first user and a third computer system of a second user different from the first user, while maintaining the first connection; and based on determining that the presence of the first computer system of the first user is detected regarding the subset and that the subset is not designed to be shared, maintaining the first connection without causing a second connection to be established between the first computer system of the first user and the third computer system of the second user.
[0018] In some examples, a method is described performed by a first computer system communicating with a display generation component and associated with a first user. In some examples, the method includes: displaying, via the display generation component, a first indication that the presence of a second user is detected regarding a first portion of a subset of content, wherein the subset of content is shared between the first user and the second user, wherein the first computer system is connected to a second computer system of the second user and not connected to a third computer system of the second user, and wherein the second user is different from the first user; receiving a message while displaying the first indication; and, in conjunction with the received message: if the second computer system is active with respect to a second portion of the subset of content that is different from the first portion of the subset of content, displaying, via the display generation component, a second indication that the presence of the second user is detected regarding the second portion of the subset of content, without displaying the first indication; and if the third computer system is active with respect to the second portion of the subset of content, displaying, via the display generation component, the second indication, without displaying the first indication.
[0019] In some examples, a non-transitory computer-readable storage medium is described that stores one or more programs configured to be executed by one or more processors of a first computer system communicating with a display generation component and associated with a first user. In some examples, the one or more programs include instructions for: displaying, via the display generation component, a first indication that the presence of a second user has been detected regarding a first portion of a subset of content, wherein this subset of content is shared between the first user and the second user, wherein the first computer system is connected to a second computer system of the second user and not connected to a third computer system of the second user, and wherein the second user is different from the first user; receiving a message while displaying the first indication; and, in conjunction with the received message: displaying, via the display generation component, a second indication that the presence of a second user has been detected regarding a second portion of a subset of content, different from the first portion of the subset of content, without displaying the first indication, based on the second computer system being active with respect to a second portion of the subset of content; and displaying, via the display generation component, the second indication without displaying the first indication, based on the third computer system being active with respect to a second portion of the subset of content.
[0020] In some examples, a transient computer-readable storage medium is described that stores one or more programs configured to be executed by one or more processors of a first computer system communicating with a display generation component and associated with a first user. In some examples, the one or more programs include instructions for: displaying, via the display generation component, a first indication that the presence of a second user has been detected regarding a first portion of a subset of content, wherein the subset of content is shared between the first user and the second user, wherein the first computer system is connected to a second computer system of the second user and not connected to a third computer system of the second user, and wherein the second user is different from the first user; receiving a message while displaying the first indication; and, in conjunction with the received message: displaying, via the display generation component, a second indication that the presence of a second user has been detected regarding a second portion of a subset of content, different from the first portion of the subset of content, without displaying the first indication, based on the second computer system being active with respect to a second portion of the subset of content; and displaying, via the display generation component, the second indication without displaying the first indication, based on the third computer system being active with respect to a second portion of the subset of content.
[0021] In some examples, a first computer system is described that communicates with a display generation component and is associated with a first user. In some examples, the first computer system communicating with the display generation component and associated with the first user includes one or more processors and memory configured to execute one or more programs by the one or more processors. In some examples, the one or more programs include instructions for: displaying a first indication via the display generation component that the presence of a second user is detected regarding a first portion of a subset of content, wherein this subset of content is shared between the first user and the second user, wherein the first computer system is connected to a second computer system of the second user and not connected to a third computer system of the second user, and wherein the second user is different from the first user; receiving a message while displaying the first indication; and, in conjunction with the received message: displaying a second indication via the display generation component that the presence of a second user is detected regarding a second portion of a subset of content, which is different from the first portion of the subset of content, without displaying the first indication, based on the second computer system being active with respect to a second portion of the subset of content; and displaying the second indication via the display generation component without displaying the first indication, based on the third computer system being active with respect to a second portion of the subset of content.
[0022] In some examples, a first computer system communicating with a display generation component and associated with a first user is described. In some examples, the first computer system communicating with the display generation component and associated with the first user includes means for performing each of the following steps: displaying, via the display generation component, a first indication that the presence of a second user is detected regarding a first portion of a subset of content, wherein the subset of content is shared between the first user and the second user, wherein the first computer system is connected to the second user's second computer system and not connected to the second user's third computer system, and wherein the second user is different from the first user; receiving a message while displaying the first indication; and, in conjunction with the received message: displaying, via the display generation component, a second indication that the presence of a second user is detected regarding a second portion of a subset of content that is different from the first portion of the subset of content, without displaying the first indication, based on the second computer system being active with respect to a second portion of the subset of content; and displaying, via the display generation component, the second indication without displaying the first indication, based on the third computer system being active with respect to a second portion of the subset of content.
[0023] In some examples, a computer program product is described. In some examples, the computer program product includes one or more programs configured to be executed by one or more processors of a first computer system that communicates with a display generation component and is associated with a first user. In some examples, the one or more programs include instructions for: displaying, via the display generation component, a first indication that the presence of a second user is detected regarding a first portion of a subset of content, wherein the subset of content is shared between the first user and the second user, wherein the first computer system is connected to the second user's second computer system and not connected to the second user's third computer system, and wherein the second user is different from the first user; receiving a message while displaying the first indication; and, in conjunction with the received message: displaying, via the display generation component, a second indication that the presence of a second user is detected regarding a second portion of a subset of content that is different from the first portion of the subset of content, without displaying the first indication, based on the second computer system being active with respect to a second portion of the subset of content; and displaying, via the display generation component, the second indication without displaying the first indication, based on the third computer system being active with respect to a second portion of the subset of content.
[0024] In some examples, a method performed by a computer system is described. In some examples, the method includes: receiving a first message that the first computer system of the first user has scrolled to a second position on the user interface when indicating that the scroll position of a first user is at a first scroll position on the user interface; in response to receiving the first message, indicating that the first user's scroll position is at a second scroll position different from the first scroll position; receiving a second message that the second computer system of the first user has scrolled to a third position on the user interface after indicating that the first user's scroll position is at the second scroll position and before indicating that the first user's scroll position is at a first different scroll position, wherein the second computer system is different from the first computer system; and in response to receiving the second message, indicating that the first user's scroll position is at a third scroll position different from the second scroll position, without indicating that the first user's scroll position is at the second scroll position.
[0025] In some examples, a non-transitory computer-readable storage medium is described, which stores one or more programs configured to be executed by one or more processors of a computer system. In some examples, the one or more programs include instructions for performing the following operations: receiving a first message that the first user's first computer system has scrolled to a second position on the user interface when instructing the first user to scroll to a first scroll position on the user interface; in response to receiving the first message, instructing the first user to scroll to a second scroll position different from the first scroll position; receiving a second message that the first user's second computer system has scrolled to a third position on the user interface after instructing the first user to scroll to the second scroll position and before instructing the first user to scroll to a first different scroll position, wherein the second computer system is different from the first computer system; and in response to receiving the second message, instructing the first user to scroll to a third scroll position different from the second scroll position, without instructing the first user to scroll to the second scroll position.
[0026] In some examples, a transient computer-readable storage medium is described that stores one or more programs configured to be executed by one or more processors of a computer system. In some examples, the one or more programs include instructions for performing the following operations: receiving a first message that the first user's first computer system has scrolled to a second position on the user interface when instructing the first user to scroll to a first scroll position on the user interface; in response to receiving the first message, instructing the first user to scroll to a second scroll position different from the first scroll position; receiving a second message that the first user's second computer system has scrolled to a third position on the user interface after instructing the first user to scroll to the second scroll position and before instructing the first user to scroll to a first different scroll position, wherein the second computer system is different from the first computer system; and in response to receiving the second message, instructing the first user to scroll to a third scroll position different from the second scroll position, without instructing the first user to scroll to the second scroll position.
[0027] In some examples, a computer system is described that includes one or more processors and a memory storing one or more programs configured to be executed by the one or more processors. In some examples, the one or more programs include instructions for performing the following operations: receiving a first message that the first user's first computer system has scrolled to a second position on the user interface when instructing the first user to scroll to a first scroll position on the user interface; in response to receiving the first message, instructing the first user to scroll to a second scroll position different from the first scroll position; receiving a second message that the first user's second computer system has scrolled to a third position on the user interface after instructing the first user to scroll to the second scroll position and before instructing the first user to scroll to a first different scroll position, wherein the second computer system is different from the first computer system; and in response to receiving the second message, instructing the first user to scroll to a third scroll position different from the second scroll position, without instructing the first user to scroll to the second scroll position.
[0028] In some examples, the computer system includes means for performing each of the following steps: receiving a first message that the first user's first computer system has scrolled to a second position on the user interface when instructing the first user's scroll position to be at a first scroll position on the user interface; in response to receiving the first message, instructing the first user's scroll position to be at a second scroll position different from the first scroll position; receiving a second message that the first user's second computer system has scrolled to a third position on the user interface after instructing the first user's scroll position to be at the second scroll position and before instructing the first user's scroll position to be at a first different scroll position, wherein the second computer system is different from the first computer system; and in response to receiving the second message, instructing the first user's scroll position to be at a third scroll position different from the second scroll position, without instructing the first user's scroll position to be at the second scroll position.
[0029] In some examples, a computer program product is described. In some examples, the computer program product includes one or more programs configured to be executed by one or more processors of a computer system. In some examples, the one or more programs include instructions for performing the following operations: receiving a first message that the first user's first computer system has scrolled to a second position on the user interface when instructing the first user to scroll to a first scroll position on the user interface; in response to receiving the first message, instructing the first user to scroll to a second scroll position different from the first scroll position; receiving a second message that the first user's second computer system has scrolled to a third position on the user interface after instructing the first user to scroll to the second scroll position and before instructing the first user to scroll to a first different scroll position, wherein the second computer system is different from the first computer system; and in response to receiving the second message, instructing the first user to scroll to a third scroll position different from the second scroll position, without instructing the first user to scroll to the second scroll position.
[0030] Executable instructions for performing these functions are optionally included in a non-transitory computer-readable storage medium or other computer program product configured for execution by one or more processors. Attached Figure Description
[0031] To better understand the various examples described, reference should be made to the following detailed embodiments in conjunction with the accompanying drawings, in which similar reference numerals indicate corresponding parts throughout the drawings.
[0032] Figure 1 This is a block diagram illustrating a computing system.
[0033] Figure 2 This is a block diagram illustrating a device with an interconnect subsystem.
[0034] Figure 3 This is a block diagram illustrating a network based on some examples.
[0035] Figures 4A to 4B An exemplary user interface for displaying groups of shared content is shown, based on some examples.
[0036] Figures 5A to 5B This is an exemplary channel diagram for managing communication between computer systems, based on some examples.
[0037] Figure 6 This is an exemplary block diagram representing the connection between computer systems, based on some examples.
[0038] Figures 7A to 7C This is an exemplary channel diagram for managing communication between computer systems, based on some examples.
[0039] Figure 8 This is an exemplary block diagram representing the connection between computer systems, based on some examples.
[0040] Figure 9 This is a flowchart illustrating, based on some examples, a method for managing personal communication between computer systems of users.
[0041] Figure 10 This is a flowchart illustrating, based on some examples, a method for managing communication between computer systems regarding shared content.
[0042] Figure 11 This is a flowchart illustrating, based on some examples, a method for managing messages about shared content.
[0043] Figure 12A and Figure 12B An exemplary user interface for updating shared tag group data is shown, based on some examples.
[0044] Figure 13 This is a flowchart illustrating methods for updating shared tag group data based on some examples. Detailed Implementation
[0045] The following description illustrates exemplary methods, parameters, etc. However, it should be understood that this description is not intended to be a limitation on the scope of this disclosure, but is provided as a description of examples.
[0046] The methods described herein may include one or more steps depending on the satisfaction of one or more conditions. It should be understood that a method may occur in multiple iterations of the same process, wherein different steps of the method are satisfied in different iterations. For example, if a method requires performing a first step upon determining that a set of one or more criteria is satisfied, and a second step upon determining that a set of one or more criteria is not satisfied, those skilled in the art will understand that the steps of the method are repeated until the two conditions are not satisfied in a particular order. Therefore, a method described as having steps depending on the satisfaction of conditions can be rewritten as a method that repeats until each of the conditions described in the method is satisfied. However, this is not required by a system claim or computer-readable medium claim, which includes instructions for performing one or more steps depending on the satisfaction of one or more conditions. Because the instructions for a system claim or computer-readable medium claim are stored in one or more processors and / or at one or more memory locations, a system claim or computer-readable medium claim includes logic that determines whether one or more conditions have been satisfied without explicitly repeating the steps of the method until all conditions under which the steps in the method are based have been satisfied. Those skilled in the art will also understand that, similar to a method having discretionary steps, a system or computer-readable storage medium may repeat the steps of the method multiple times as needed to ensure that all discretionary steps have been performed.
[0047] Although the following description uses the terms "first," "second," etc., to describe various elements, these elements should not be limited by the terms. In some examples, these terms are used to distinguish individual elements. For example, without departing from the scope of the various examples described, a first subsystem may be referred to as a second subsystem, and similarly, a subsystem device may be referred to as a subsystem device. In some examples, the first subsystem and the second subsystem are two separate references to the same subsystem. In some examples, both the first subsystem and the second subsystem are subsystems, but they are not the same subsystem or subsystems of the same type.
[0048] The terminology used in the description of the various examples herein is for the purpose of describing particular examples only and is not intended to be limiting. As used in the description of the various examples and the appended claims, the singular forms “a” and “the” are intended to include the plural forms as well, unless the context expressly indicates otherwise. It will also be understood that the term “and / or” as used herein refers to and covers any and all possible combinations of one or more of the items listed in connection with the description. It will also be understood that the terms “comprising” and / or “including” as used in this specification specify the presence of the stated features, integers, steps, operations, elements, and / or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and / or groups thereof.
[0049] Depending on the context, the term "if" may optionally be interpreted as meaning "when," "in response to," "in response to detection," or "according to determination." Similarly, depending on the context, the phrases "if it is determined..." or "if [the stated condition or event] is detected" may optionally be interpreted as meaning "in response to," "in response to," "when [the stated condition or event] is detected," "in response to," or "according to"."
[0050] Go to Figure 1 A block diagram of computing system 100 is illustrated. Computing system 100 is a non-limiting example of a computing system that can be used to perform the functionality described herein. It should be appreciated that other computer architectures can be used to perform the functionality described herein.
[0051] In the illustrated example, computing system 100 includes a processor subsystem 110 that communicates (e.g., wired or wirelessly) with memory 120 (e.g., system memory) and I / O interface 130 via interconnect 150 (e.g., a system bus, one or more memory locations, or other communication channels for connecting multiple components of computing system 100). Additionally, I / O interface 130 communicates with I / O device 140 (e.g., wired or wirelessly). In some examples, I / O interface 130 and I / O device 140 are included together such that they are a single component. It should be appreciated that one or more I / O interfaces may exist, with each I / O interface communicating with one or more I / O devices. In some examples, multiple instances of processor subsystem 110 may communicate via interconnect 150.
[0052] The computing system 100 can be any type of device from a variety of types, including but not limited to system-on-a-chip, server systems, personal computer systems (e.g., smartphones, smartwatches, wearable devices, tablets, laptops, and / or desktops), sensors, etc. In some examples, the computing system 100 includes or communicates with physical components for the purpose of modifying physical components in response to instructions. In some examples, the computing system 100 receives instructions for modifying physical components and, in response to those instructions, causes the physical components to be modified. In some examples, physical components are modified via actuators, electrical signals, and / or algorithms. Examples of such physical components include accelerometer controls, brakes, gearboxes, hinges, motors, pumps, cooling systems, springs, suspension systems, steering controls, pumps, vacuum systems, and / or valves. In some examples, the sensor includes one or more hardware components that detect information about the physical environment in the vicinity (e.g., the surroundings) of the sensor. In some examples, the hardware components of the sensor include sensing components (e.g., image sensors or temperature sensors), transmitting components (e.g., laser or radio transmitters), receiving components (e.g., laser or radio receivers), or any combination thereof. Examples of sensors include angle sensors, chemical sensors, braking pressure sensors, contact sensors, non-contact sensors, electrical sensors, flow sensors, force sensors, gas sensors, humidity sensors, image sensors (e.g., camera sensors, radar sensors, and / or lidar sensors), inertial measurement units, leak sensors, level sensors, light detection and ranging systems, metal sensors, motion sensors, particle sensors, photoelectric sensors, positioning sensors (e.g., GPS), sediment sensors, pressure sensors, proximity sensors, radio detection and ranging systems, radiation sensors, velocity sensors (e.g., measuring the velocity of an object), temperature sensors, time-of-flight sensors, torque sensors, and ultrasonic sensors. In some examples, sensors include combinations of multiple sensors. In some examples, sensor data is captured by fusing data from one sensor with data from one or more other sensors. Although in Figure 1 A single computing system is shown, but computing system 100 can also be implemented as two or more computing systems operating together.
[0053] In some examples, processor subsystem 110 includes one or more processors or processing units configured to execute program instructions to perform the functionality described herein. For example, processor subsystem 110 may execute an operating system, middleware system, one or more applications, or any combination thereof.
[0054] In some examples, the operating system manages the resources of computing system 100. Examples of operating system types covered herein include bulk operating systems (e.g., multiple virtual memory (MVS)), time-sharing operating systems (e.g., Unix), distributed operating systems (e.g., Advanced Interactive Execution (AIX)), network operating systems (e.g., Microsoft Windows Server), and real-time operating systems (e.g., QNX). In some examples, the operating system includes various programs, sets of instructions, software components, and / or drivers for controlling and managing general system tasks (e.g., memory management, storage device control, power management, etc.) and for facilitating communication between various hardware and software components. In some examples, the operating system uses a priority-based scheduler that assigns priorities to different tasks that processor subsystem 110 can execute. In such examples, the priority assigned to a task is used to identify the next task to be executed. In some examples, the priority-based scheduler identifies the next task to be executed when a previous task has completed execution. In some examples, the highest priority task runs until completion unless another higher priority task becomes ready.
[0055] In some examples, the middleware system provides applications (e.g., one or more applications running on processor subsystem 110) with one or more services and / or capabilities beyond what the operating system provides (e.g., data management, application services, messaging, authentication, API management, etc.). In some examples, the middleware system is designed for heterogeneous computer clusters to provide hardware abstractions, low-level device control, implementations of common functionality, messaging between processes, package management, or any combination thereof. Examples of middleware systems include Lightweight Communication and Marshaling (LCM), PX4, Robot Operating System (ROS), and ZeroMQ. In some examples, the middleware system uses a graphical architecture to represent processes and / or operations, where processing occurs in nodes that can receive, publish, and reuse sensor data messages, control messages, status messages, planning messages, actuator messages, and other messages. In such examples, the graphical architecture may define applications (e.g., applications executing on processor subsystem 110 as described above) such that different operations of the application are associated with different nodes in the graphical architecture.
[0056] In some examples, a publish-subscribe model is used to execute message delivery from a first node in the graph architecture to a second node in the graph architecture, where the first node publishes data on a channel that the second node can subscribe to. In such examples, the first node may store data in memory (e.g., memory 120 or a local memory of processor subsystem 110) and notify the second node that the data has been stored in memory. In some examples, the first node notifies the second node that the data has been stored in memory by sending a pointer (e.g., a memory pointer, such as an identifier of a memory location) to the second node, enabling the second node to access the data from the location where the first node stores the data. In some examples, the first node will send data directly to the second node, so that the second node will not need to access memory based on data received from the first node.
[0057] Memory 120 may include a computer-readable medium (e.g., a non-transitory or transient computer-readable medium) that can be used to store (e.g., configured to store, assigned to store, and / or store) program instructions that can be executed by processor subsystem 110 to cause computing system 100 to perform the various operations described herein. For example, memory 120 may store program instructions to implement functionality associated with methods 900, 1000, 1100, and 1300 described below.
[0058] Memory 120 may be implemented using various physical non-transitory memory media, such as hard disk storage devices, floppy disk storage devices, removable disk storage devices, flash memory, random access memory (RAM-SRAM, EDO RAM, SDRAM, DDR SDRAM, RAMBUS RAM, etc.), read-only memory (PROM, EEPROM, etc.). The memory in computing system 100 is not limited to main memory devices such as memory 120. Computing system 100 may also include other forms of storage devices, such as cache memory in processor subsystem 110 and auxiliary storage devices (e.g., hard disk drives, storage arrays, etc.) on I / O devices 140. In some examples, these other forms of storage devices may also store program instructions executable by processor subsystem 110 to perform the operations described herein. In some examples, processor subsystem 110 (or each processor within processor subsystem 110) includes cache or other forms of on-board memory.
[0059] I / O interface 130 can be any type of interface configured to communicate with other devices. In some examples, I / O interface 130 includes a bridge chip (e.g., a southbridge) connecting a front-side bus to one or more back-side buses. I / O interface 130 can communicate with one or more I / O devices (e.g., I / O device 140) via one or more corresponding buses or other interfaces. Examples of I / O devices include storage devices (hard disk drives, optical disk drives, removable flash drives, storage arrays, SANs, or their associated controllers), network interface devices (e.g., to a local area network or wide area network), sensor devices (e.g., cameras, radar, lidar, ultrasonic sensors, GPS, inertial measurement devices, etc.), and auditory or visual output devices (e.g., speakers, lights, screens, projectors, etc.). In some examples, computer system 100 communicates with a network via a network interface device (e.g., configured to communicate via Wi-Fi, Bluetooth, Ethernet, etc.). In some examples, computing system 100 is directly or wired connected to a network.
[0060] Figure 2 A block diagram of a device 200 with interconnected subsystems is illustrated. In the illustrated example, device 200 includes three distinct subsystems (i.e., a first subsystem 210, a second subsystem 220, and a third subsystem 230) that communicate with each other (e.g., wired or wirelessly) to create networks (e.g., personal area networks, local area networks, wireless LANs, metropolitan area networks, wide area networks, storage area networks, virtual private networks, enterprise intranets, campus area networks, system area networks, and / or controller area networks). Figure 1 (i.e., computing system 100) describes, as in Figure 2 Examples of possible computer architectures for the subsystems included. Although in Figure 2 Three subsystems are shown, but device 200 may include more or fewer subsystems.
[0061] In some examples, some subsystems are not connected to other subsystems (e.g., first subsystem 210 can be connected to second subsystem 220 and third subsystem 230, but second subsystem 220 cannot be connected to third subsystem 230). In some examples, some subsystems are connected via one or more wires, while other subsystems are wirelessly connected. In some examples, a message is set between first subsystem 210, second subsystem 220, and third subsystem 230 such that when a corresponding subsystem transmits a message, other subsystems (e.g., via wires and / or buses) receive that message. In some examples, one or more subsystems are wirelessly connected to one or more computing systems, such as server systems, external to device 200. In such examples, subsystems can be configured to communicate wirelessly with one or more computing systems external to device 200.
[0062] In some examples, device 200 includes a housing that completely or partially encloses subsystems 210 to 230. Examples of device 200 include household appliances (e.g., refrigerators or air conditioning systems), robots (e.g., robotic arms or robotic vacuum cleaners), and vehicles. In some examples, device 200 is configured to navigate in a physical environment (with or without user input).
[0063] In some examples, one or more subsystems of device 200 are used to control, manage, and / or receive data from one or more other subsystems of device 200 and / or one or more computing systems remote from device 200. For example, the first subsystem 210 and the second subsystem 220 may each be a camera capturing images, and the third subsystem 230 may use the captured images for decision-making. In some examples, at least a portion of device 200 is used as a distributed computing system. For example, a task may be broken down into different parts, with a first part performed by the first subsystem 210 and a second part performed by the second subsystem 220.
[0064] As used herein, "installed application" refers to a software application that has been downloaded to a computer system (e.g., computing system 100 and / or device 200) and is ready to be launched on the device (e.g., become open). In some examples, a downloaded application becomes an installed application using an installer, which extracts program portions from the downloaded package and integrates the extracted portions with the computer system's operating system.
[0065] As used herein, the terms "open application" or "running application" refer to a software application that maintains state information (e.g., as part of device / global internal state and / or application internal state). An open or running application is optionally any of the following types of applications:
[0066] • Active app, which is currently displayed on the screen of the device that is using the app;
[0067] • Background applications (or background processes) that are not currently displayed but whose one or more processes are being handled by one or more processors; and
[0068] • A suspended or hibernating application that is not running but has state information stored in memory (either volatile or non-volatile) that can be used to resume the execution of the application.
[0069] As used herein, the term "closed application" refers to a software application that does not retain state information (e.g., the state information of a closed application is not stored in the device's memory). Therefore, closing an application includes: stopping and / or removing the application's process and removing the application's state information from the device's memory. Generally, opening a second application while the first application is running does not close the first application. When the second application is displayed and the first application stops displaying, the first application becomes a background application.
[0070] Attention now turns to techniques for managing communication between computer systems. Such techniques are described in the context of detecting the presence of a user relative to a tag and / or shared tag group. It should be recognized that techniques similar to those described herein can be applied to a variety of situations beyond shared tag groups, such as shared slides in a PowerPoint presentation, shared workbooks in a spreadsheet, shared chapters in a document, and / or shared content in a media library. Furthermore, these techniques may optionally complement or replace other techniques for managing communication between computer systems in terms of detecting the presence of a user relative to a shared tag group.
[0071] Figure 3 Examples of networks based on some examples are shown. Specifically, Figure 3 Example network diagram 300 is a computer system configured to synchronize copies of tag data (e.g., tag data 330, 332, 334 and / or 336). Figure 3An example is illustrated of a set of computer systems associated with one of users 1, 2, and 3 (e.g., belonging to, being identified by, and / or registered with that user). As shown in Table 302, computer system-2 320 is associated with user 2, computer systems-1A 322 and 1B 324 are both associated with user 1, and computer system-3 326 is associated with user 3, wherein each of user 1, user 2, and user 3 is different from each other. In this example, computer systems-2 320 and 1B 324 are both smartphones, computer system-1A 322 is a tablet computer, and computer system-3 326 is a laptop computer. It should be recognized that other types of computer systems, other combinations of computer system types, more or fewer computer systems for users, and / or more or fewer users and / or user accounts can be used with the techniques described herein.
[0072] In some examples, each user is associated with a unique identity and / or user account. In some of these examples, computer system-2 320 registers with user 2's user account, computer systems-1A 322 and 1B 324 register with user 1's user account (e.g., the same user account), and computer system-3 326 registers with user 3's user account. In some examples, computer systems-1A 322 and 1B 324 register the same user account. In some examples, computer system registration of user accounts includes computer systems logging into user accounts. In some examples, when a computer system logs into a user account, the computer system operates according to one or more settings of the user account. In some examples, Figure 3 The computer systems and / or servers depicted (synchronization server 312, identity server 314, computer system-2320, computer system-1A 322, computer system-1B 324 and / or computer system-3 326) include Figure 1 The computing system 100 and / or Figure 2 One or more features of the device 200.
[0073] exist Figure 3In this context, four computer systems (Computer System-2 320, Computer System-1A 322, Computer System-1B 324, and Computer System-3 326) are part of a group activity session. Specifically, the group activity session involves a shared tab group. In some examples, a shared tab group is a collection of web browser tabs (e.g., each web browser tab corresponds to a webpage) (e.g., or other content) shared among a set of users (e.g., two or more users). In some examples, each user in the set of users sharing the set of web browser tabs (e.g., each user is a member of the group activity session) can perform one or more of the following actions: view the tabs in the set, edit the tabs in the set (e.g., add, remove, and / or delete), rearrange the tabs in the set, and / or view other user activities related to the set (e.g., which tab a user is viewing and / or the user's scroll position and / or cursor position on the webpage associated with the tab in the set). In some examples, group activities involve sharing application components other than tags and / or web pages, such as sharing chapters of a document (e.g., some chapters of the document are hidden from one set of users and available to another set of users), slides of a presentation (e.g., some slides of a presentation are hidden from one set of users and available to another set of users), and / or workbooks of a spreadsheet (e.g., some workbooks of a spreadsheet are hidden from one set of users and available to another set of users).
[0074] exist Figure 3 In this configuration, each computer system (computer system-2 320, computer system-1A 322, computer system-1B 324, and computer system-3 326) is associated with a copy of tag data (and / or webpage data), which includes at least tag data related to user activity occurring on that respective computer system. The tag data may also include shared tag group data (e.g., activity of other computer systems and / or users in a shared tag group). In some examples, the tag data is stored locally in the memory of the respective computer system. For example, computer system-2 320 stores tag data 330, computer system-1A 322 stores tag data 332, computer system-1B 324 stores tag data 334, and computer system-3 326 stores tag data 336.
[0075] Network diagram 300 includes network 310, which represents one or more interconnected networks (e.g., the Internet, a wide area network (WAN), a local area network (LAN), and / or some combination of these interconnected networks) used for communication between computer systems. Synchronization server 312 and identity server 314 are depicted within network 310 merely to illustrate that they can be accessed via network 310 (e.g., through communication on, through, and / or including communication on that network) and should not be construed as necessarily being part of a network component and / or hosted by a network provider. Figure 3 The computer system shown can use network 310 to synchronize and share tag data for the tag group.
[0076] In some examples, synchronization server 312 performs one or more functions related to a group activity session for collaborating on tag data. In some examples, synchronization server 312 manages the presence of users and / or computer systems within the group activity session. For example, synchronization server 312 may receive communications from computer systems to determine the presence and / or level of presence (e.g., activity level) of users and / or computer systems in the group activity session. In some examples, presence is established based on indications of the activity status of users and / or computer systems (e.g., indicating activity level). In some examples, presence is based on one or more of the following: at least a threshold amount of activity and / or whether certain types of activity are performed (e.g., opening on the computer system screen instead of minimizing). For example, synchronization server 312 may receive indications that computer system-2 320 exists in a shared tag group (e.g., actively browsing tags in the shared tag group). In conjunction with indications that the transmitting computer system-2 320 exists in an active session (e.g., opens a file and is participating in a threshold amount or type of activity), (e.g., before, simultaneously, and / or after this), computer system-2 320 establishes a connection with synchronization server 312 to synchronize with other members of the existing group activity (e.g., computer system-1B 324). In some examples, a second data channel is established in response to an indication that computer system-2 320 has accessed a data object (e.g., opened a file).
[0077] Communication from a computer system to establish an existence may include identifiers (e.g., unique identifiers) of tag data (e.g., shared tags and / or shared tag groups), indications of the computer system's activity status regarding the tag data, user accounts associated with the computer system, and / or requests for updates to tag data from other computer systems and / or user accounts that are members of a group activity session. For example, a group activity session created for a specific group activity (e.g., for a shared tag group) may be identified by a corresponding unique identifier (e.g., such that two different shared tag groups each have different unique identifiers). In some examples, a computer system (e.g., computer system-2 320) may send notification communication to a synchronization server 312, causing one or more of the following operations to occur: (1) the synchronization server 312 notifies other computer systems also present in the group activity session of the presence of the newly joined computer system, and / or (2) the synchronization server 312 causes the newly joined computer system to subscribe to notifications related to the group activity session. Regarding (1), this can provide other computer systems with notifications that a new computer system has joined and / or is performing some type or level of activity regarding tag data, which can be used to make decisions about synchronization (e.g., when to synchronize updated tag data). Regarding (2), this can allow newly joined computer systems to keep up-to-date with which users and / or computer systems are present in group activity sessions and / or receive synchronization updates from other computer systems.
[0078] In some examples, whether a computer system and / or user (e.g., a user account) joins a group activity session depends on the presence of the computer system and / or user. For example, by using the concept of presence, simply opening an application (e.g., a web browser) may not be sufficient to establish a real-time data channel (e.g., resources would be wasted if the user then immediately closes the application). A selective process for synchronization based on presence can allow a computer system to know when, for example, to upgrade the connection or bandwidth used for real-time synchronization. In some examples, presence is a sliding scale. For example, higher activity can result in a higher level of presence (e.g., a quantified quantity), which can then be used to increase the synchronization rate to a level higher than lower levels of presence. In some examples, presence is binary (e.g., user presence or absence).
[0079] exist Figure 3In this context, identity server 314 refers to one or more servers that manage access to account information and / or personal storage (e.g., per-user storage) for one or more users. For example, identity server 314 is a cloud service provider server that stores tag data for each computer system (computer system-2 320, computer system-1A 322, computer system-1B 324, and / or computer system-3326) and / or user (e.g., user 1, user 2, and / or user 3). In some examples, identity server 314 shares the tag data for each computer system among other computer systems associated with the same user. For example, because both computer systems are associated with user 1, identity server 314 shares tag data 332 of computer system-1A 322 with computer system-1B 324, and shares tag data 334 of computer system-1B 324 with computer system-1A 322; conversely, because computer system-2 320 or computer system-3 326 is not associated with user 1, identity server 314 does not share tag data 332 or 334 with computer system-2 320 or computer system-3 326. In some examples, identity server 314 stores and / or shares other data, such as account information associated with user accounts, photos, media, and / or preference data. In some examples, identity server 314 shares and / or collects data from multiple applications, such as browser applications, spreadsheet applications, media applications, and / or word processing applications.
[0080] In some examples, one or more computer systems communicate with each other and / or with one or more servers via network 310. In some examples, this communication occurs via one or more connections. In some examples, the computer systems use a first connection to connect to identity server 314 and a second connection, different from the first connection, to connect to synchronization server 312. For example, as... Figure 3 As shown, each computer system (computer system-2 320, computer system-1A 322, computer system-1B 324, and computer system-3 326) connects to the identity server 314 using connection 304A and connects to the synchronization server 312 using connection 304B.
[0081] like Figure 3As shown, each computer system (computer system-2 320, computer system-1A 322, computer system-1B 324, and computer system-3 326) may each include a copy of its own corresponding tag data (tag data 330, tag data 332, tag data 334, or tag data 336) locally stored in memory before synchronization with other computer systems. In some examples, the synchronization of tag data occurs (1) between each computer system and other computer systems, (2) between each computer system and other computer systems associated with other user accounts, and / or (3) between each computer system and other computer systems associated with the same user account. For example, there may be many ways to exchange and / or route synchronization data. Several methods are described herein, but the scenarios described herein are not intended to be exhaustive. As shown in network diagram 300, each computer system (computer system-2 320, computer system-1A 322, computer system-1B 324, and computer system-3 326) communicates via network 310 (e.g., via connection 304A and / or connection 304B). This communication may occur with at least one of synchronization server 312 and / or identity server 314. In some examples, synchronization server 312 handles (e.g., relaying, receiving, routing, and / or retransmitting) the synchronization of tag data exchanged between the computer systems. For example, synchronization server 312 may act as an intermediary for updates between computer systems associated with different users (e.g., between computer system-2 320 associated with user 2 and computer system-1A 322 associated with user 1). In some examples, identity server 314 handles (e.g., relaying, receiving, routing, and / or retransmitting) synchronization between computer systems associated with the same user (e.g., between computer system-1A 322 associated with user 1 and computer system-1A 324 associated with user 1).
[0082] Regardless of whether communication occurs through synchronization server 312 and / or identity server 314 as intermediaries, network diagram 300 depicts bidirectional communication between each computer system joining a group activity session for performing synchronization during the group activity session. In some examples, connection 304A is a separate data channel from the data channel used for synchronization with identity server 314 (e.g., connection 304B). As an example, a first data channel (e.g., connection 304A) may be used for synchronization with synchronization server 312 for synchronizing updates among members of the group activity session, and a second data channel (e.g., connection 304B) may be established and used for synchronization with identity server 314. In some examples, the computer systems configure the corresponding first data channel by enabling a plug-in instance to transmit messages to synchronization server 312. In some examples, synchronization server 312 multicasts messages received from the computer systems via the first data channel to other members of the group activity (e.g., computer systems subscribing to updates of the group activity session). A "pub / sub" model (publish and subscribe model) can be used to relay messages (e.g., updates, notifications, instructions, etc.) among members of the group activity session. In a publish-subscribe model, computer systems and / or users set up connections to a server and become subscribers to whoever sends updates, and when an update is published, all subscribers will receive it. In some examples, synchronization server 312 includes one or more notification servers. For example, synchronization server 312 accepts published messages and sends them to subscribers without needing to know the number of computer systems and / or users present in a group activity session, the identities of such users and / or computer systems, and / or the content of the group activity session (e.g., a website represented in a shared tag group). In some examples, information about the number, identities, and / or content of computer systems and / or users is provided to the respective computer systems and / or users who are members of the group activity session.
[0083] It should be noted that while synchronization server 312 is referenced, more than one synchronization server may exist. Furthermore, synchronization server 312 may refer to multiple servers, each performing different functions related to collaboration and / or synchronization. For example, there may be a server that determines existence and manages subscriptions to group activity sessions, a separate server that handles pushing existence notifications and / or updates to members of group activities, a separate server for transmitting data via a data channel used for synchronization, a separate server for coordinating updates to tag data, and so on. According to some examples, the collective phrase "synchronization server" is used only to indicate one or more servers that provide support and / or perform operations for implementing the processes described herein.
[0084] It should be noted that while identity server 314 is referenced, there may be more than one identity server. Furthermore, identity server 314 can refer to multiple servers, each performing different functions related to collaboration and / or identity. According to some examples, the collective phrase "identity server" is used only to indicate one or more servers that provide support and / or perform operations for implementing the processes described herein.
[0085] Figures 4A to 4B Exemplary user interfaces for displaying groups of shared content are illustrated, based on some examples. Specifically, Figure 4A An example is illustrated of a computer system 400 including a display component, namely a touch-sensitive display 402 (hereinafter referred to as "display 402"). In some examples, the computer system 400 includes... Figure 1 Computer system 100 and / or Figure 2 One or more features of the device 200.
[0086] like Figure 4A As shown, computer system 400 displays a tab management interface 410 of a web browser application installed on computer system 400 via monitor 402. In a first area, tab management interface 410 includes tab 412A, which represents a webpage that is part of the currently selected tab group (e.g., a tab group named "77 tabs"). Figure 4A As shown, computer system 400 (in the second area) displays a tab group selection interface 420 for selecting among tab groups accessible to computer system 400. Tab group selection interface 420 includes controls for changing between tab groups, including shared tab group 422 (labeled "Holiday '24") and shared tab group 424 (labeled "Group Design Items"). Shared tab group 422 and shared tab group 424 each correspond to different shared tab groups. For example, shared tab group 422 includes a first set of members (e.g., users, user accounts, and / or computer systems) and a first set of tags, and shared tab group 424 includes a second set of members (optionally different from the first set of members) and a second set of tags (optionally different from the second set of tags). Figure 4A In this context, both shared tag group 422 and shared tag group 424 are visible because the user associated with computer system 400 and / or browser application (e.g., logged in and / or authorized to use) is a member of both the first set of members and the second set of members. In some examples, members identify computer systems and / or users. Figure 4AAs shown, shared tag groups 422 and 424 each include an indicator that identifies them as shared tag groups. For example, the indicator is a circular icon with the outline of a human head in 422 and 424 (unlike the tag group marked "Match" below 424, which does not include an indicator as a circular icon with the outline of a human head). In some examples, a shared tag group may include one or more tags.
[0087] Figure 4B An example is given by computer system 400 in response to detecting an attack. Figure 4A The user interface is displayed by selecting a shared tab group 422 (e.g., by tapping on that shared tab group). Figure 4B As shown, in response to this selection, computer system 400 displays a tab management interface 430 of a web browser application installed on computer system 400 via display 402. In the header area, tab management interface 430 includes the name of a shared tab group (“Holiday '24”). In the first area, tab management interface 430 includes tabs 432, 434, and 436, each tab representing a webpage included in the currently selected tab group (e.g., the tab group named “Holiday '24”). Figure 4B As shown, the tag management interface 430 includes a first user indicator 440 (associated with a first user), a second user indicator 442 (associated with a second user different from the first user), and a third user indicator 444 (associated with a third user different from the first and second users). Each of these user indicators represents another user who is a member of a shared tag group and is currently present within the shared tag group (e.g., browsing tags and / or interacting with tags). Figure 4B Each of the user indicators shown is positioned (e.g., overlaid) on a corresponding label that indicates the label where the corresponding user currently exists (e.g., is browsing and / or interacting): the first user indicator 440 indicates that the first user exists in label 432, the second user indicator 442 indicates that the second user exists in label 434, and the third user indicator 444 indicates that the third user exists in label 436.
[0088] Figures 5A to 5B This is an exemplary channel diagram 500 based on some examples for managing communication between computer systems, and Figure 6 This is an exemplary block diagram 600 representing a connection between computer systems, based on some examples. Specifically, it provides... Figure 6 To show in Figures 5A to 5BThe connection between computer systems -2 520, -1A 522, -1A 524, and -3 526 during one or more steps. Computer system -2 520 is connected to the above-mentioned... Figure 3 The computer system associated with user 2 is discussed, and includes... Figure 3 One or more features of the computer system 320. Computer system-1A 522 and computer system-1B 524 are related to the above regarding... Figure 3 The computer systems associated with user 1 are discussed, and include respectively Figure 3 Computer system 322 and computer system 324 have one or more characteristics. Computer system 3526 is related to the above regarding Figure 3 The discussion covers the computer systems associated with user 3, and includes... Figure 3 One or more features of computer system 326. In some examples, one or more of computer systems 522 to 526 include Figure 1 The computing system 100 and / or Figure 2 One or more characteristics of the device 200.
[0089] Go to Figure 5A At 530, computer system-1A 522 opens a browser application and / or enables the browser application (e.g., including the above-mentioned...) Figures 4A to 4B The described interface 410 and / or 430 (such an application) executes in the foreground to open tabs in shared tab group A. Shared tab group A is a subset of shared tabs (e.g., groups and / or sets). Additionally, at 532, computer system-1B 524 opens tabs in shared tab group B by opening a browser application and / or having the browser application operate in the foreground. Shared tab group B is a subset of shared tabs. Shared tab group A is a different shared tab group than shared tab group B. In some examples, shared tab group A is shared tab group 422, and shared tab group B is... Figure 4A Shared tag group 424, or vice versa. In some examples, shared tag group A and / or shared tag group B include the above-mentioned... Figures 4A to 4B One or more characteristics of one or more shared tag groups are discussed.
[0090] At locations 534-536, when computer system-1A 522 and computer system-1B 524 open tabs in shared tab group A by opening a browser application and / or having the browser application (e.g., at locations 530-532) execute in the foreground, computer system-1A 522 establishes a personal connection with computer system-1B 524 (e.g., in some examples, via personal connection activity 510 (e.g., using the above regarding...). Figure 3(one or more technologies described in the activity session).
[0091] Go to Figure 6 A personal connection 602 (e.g., corresponding to a personal connection between computer system-1A 522 and computer system-1B 524) is shown between computer system-1A 522 and computer system-1B 524 to demonstrate that a connection between computer system-1A 522 and computer system-1B 524 has been established. In some examples, via... Figure 3 Synchronization server 312 instead Figure 3 Identity server 314 is used to establish personal connection 602. In some examples, personal connection 602 is a peer-to-peer connection that enables computer system-1A 522 and computer system-1B 524 to communicate directly with each other. In some examples, personal connection 602 is a client-server connection, where computer systems 522 to 524 use... Figure 3 The synchronization server 312 communicates via notification (such as from a computing system originating from a computer system and via...) Figure 3 The synchronization server 312 communicates with each other by sending push notifications to another computer system.
[0092] return Figure 5A In some examples, when computer system-1A 522 and computer system-1B 524 open tabs in shared tab group A by opening a browser application and / or running the browser application in the foreground (e.g., at 530 to 532), computer system-1A 522 and computer system-1B 524 maintain and / or establish connections with... Figure 3 The connection to identity server 314. In some examples, computer system-1A 522 and computer system-1B 524 are connected via... Figure 6 Personal connection 602 connects simultaneously and connects individually Figure 3 Identity server 314. In some examples, Figure 6 Personal connection 602 allows computer systems-1A 522 and computer systems-1B 524 to communicate with each other via their respective systems. Figure 3 A separate connection to identity server 314 allows for faster communication (e.g., for reasons similar to those provided above). Therefore, in some examples, messages sent via personal connection 602 allow computer system-1A 522 and / or computer system-1B 524 to provide functionality and / or perform one or more operations (such as updating user interface elements) at a speed faster than messages sent via the connection. Figure 3The messages from the identity server 314 enable the computer system to provide and / or execute them at a faster speed. In some examples (and further described below), the computer system communicates via one or more personal connections and / or shared connections (e.g., via...). Figure 3 The synchronization server 312) sends "existence data", while the computer system sends data via one or more connections to... Figure 3 Identity server 314 sends "data as non-existent data". In some examples, existing data corresponds to data from user interactions with content, and therefore the computer system sends this data via personal and / or shared connections (e.g., via...). Figure 3 The synchronization server 312) sends "existence data" so that one or more other computer systems can respond to the interaction at the corresponding computer system more quickly.
[0093] As used herein, the term "personal connection" is a connection between a personal computer system associated with a user (e.g., user 1, who is associated with computer systems -1A 522 and -1B 524 as described above). In some examples, at 530-534, when computer systems -1A 522 and -1B 524 are different types of devices, computer systems -1A 522 and -1B 524 may establish personal connections based on different criteria. In some examples, when it is determined that the computer system is a mobile device (such as a mobile phone, tablet, and / or a computer system with a display the size of a typical mobile phone and / or tablet, or smaller) and a browser application including shared tabs is running in the foreground, the computer system will establish personal connections with other computer systems of the same user associated with that computer system. However, when it is determined that the computer system is a mobile device and a browser application (e.g., a browser application including shared tabs) is running in the background, the computer system will not establish personal connections with other computer systems. However, in some examples, when the computer system is a desktop and / or laptop computer (e.g., with a display larger than that of a typical mobile phone and / or device and / or a display designed and / or calibrated to be better at multitasking than that of a mobile phone and / or device), the computer system will establish a personal connection with other computer systems as long as the browser application is running, regardless of whether the browser application is running in the foreground or background. Therefore, in some examples, when the computer system is a mobile device and it is determined that the browser application has switched from running in the background to running in the foreground, the computer system connected to the user via the personal connection will disconnect from the other computer system (but in some examples, this does not happen when the computer system is a laptop and / or desktop computer). In some examples, when the browser application stops running, the computer system connected to the user via the personal connection will disconnect from the other computer system, regardless of whether that computer system is a mobile device or another type of device. In some examples, the computer system determines whether it is a certain type of device based on the operating system used to execute the browser application running on the computer system, such as a mobile phone operating system, tablet computer operating system, laptop computer operating system, desktop computer operating system, head-mounted display operating system, and / or fitness tracker operating system.
[0094] At 538, computer system-1A 522 establishes a shared connection with one or more computer systems that share shared label group A via shared label group activity A 512 (e.g., using the above regarding...). Figure 3(One or more technologies described in the activity session description). Computer system-1A 522 establishes a shared connection with shared tab group A in response to user 1 using computer system-1A 522 (and / or computer system-1A 522) to open a tab in shared tab group A at 530. Furthermore, at 540, computer system-1B 524 establishes a shared connection with one or more computer systems sharing shared tab group B via shared tab group activity B 514 (e.g., using the techniques described above regarding...). Figure 3 (One or more technologies described in the active session description). Similar to computer system-1A 522, computer system-1B 524 responds to user 1 using computer system-1B 524 (and / or computer system-1B 524) to open a tag in shared tag group B at 532 to establish a shared connection with shared tag group B.
[0095] At 542, computer system-3 526 opens the tab in shared tab group B, and at 544 establishes a shared connection with one or more computer systems that share shared tab group B via shared tab group activity B 514 (e.g., using the above regarding...). Figure 3 (One or more technologies described in the active session description). Similar to computer system-1B 524, computer system-3 526 establishes a shared connection with shared tag group B in response to computer system-1B 524 opening a tag in shared tag group B at 542. Therefore, at 544, computer system-1B 524 and computer system-3 526 are connected via a shared connection, which is provided by... Figure 6 The shared connection 606 is shown.
[0096] As used herein, the term "shared connection" is a connection between the computer systems of one or more different users and / or members (e.g., users sharing a shared tag group) that share a tag group. Similar to a personal connection, a shared connection can be via... Figure 3 The peer-to-peer connection and / or client-server connection of the synchronization server 312, and compared to the connection via Figure 3 The connection provided by identity server 314 can enable faster communication between computer systems. In some examples, any computer system communicating via a shared connection also communicates with... Figure 3 The identity server 314 communicates via a connection and / or via separate personal connections to one or more computer systems associated with its users. In some examples, computer system-3 526 does not establish a personal connection with computer system-1B 524 because computer system-3 526 and computer system-1B 524 are not associated with the same user. Instead, these computer systems are associated with different users (e.g., user 3 and user 1).
[0097] Similar to computer system-3 526, at 546, computer system-2 520 opens a tag in shared tag group A, and at 548 establishes a shared connection with one or more computer systems that share shared tag group A via shared tag group activity A 512 (e.g., using the above regarding...). Figure 3 (One or more technologies described in the active session description). Similar to computer system-1A 522, computer system-2 520 establishes a shared connection with shared tag group A in response to computer system-2 520 opening a tag in shared tag group A at 546. Therefore, at 548, computer system-2 520 and computer system-1A 522 are connected via a shared connection, which is provided by... Figure 6 The shared connection 602 is shown.
[0098] At 550, User 1 switches to using computer system-1B 524 to view and / or interact with the new tab in shared tab group B. When User 1 switches to using computer system-1B 524 to view and / or interact with the new tab in shared tab group B, it is determined that the presence of User 1 in shared tab group B has changed because User 1 is viewing the new tab in shared tab group B. Therefore, at 552, computer system-1B 524 sends an update message to the computer system associated with the user that shares shared tab group B via a shared connection with shared tab group activity B 514. Similarly, at 554, computer system-1B 524 sends an update message related to the change in the presence of User 1 in shared tab group B via a personal connection to update computer system-1A 522 (and in some examples, other computer systems associated with User 1). In some examples, update messages (e.g., including those containing existing data) sent via computer system-1B 524 are sent only via personal and / or shared connections of computer system-1B 524 (e.g., in some examples, via a connection to synchronization server 312), and not via connections to... Figure 3 The identity server 314 is used to send data. In some examples, data other than the existing data is sent. Figure 3 The update message is sent to the identity server 314, instead of via a personal and / or shared connection to the computer system-1B 524 (e.g., via a connection to the synchronization server 312 in some examples). In some examples, the update message at 552 is sent before, after, and / or simultaneously with the update message at 554.
[0099] At 556, computer system-3 526 receives the update message sent at 552, and computer system-1A 522 receives the update message sent at 554. Here, the content (and / or payload) of the message sent at 552 is the same as the content sent at 554, wherein the content of both messages indicates a tag group identifier (e.g., an identifier associated with tag group B) and a tag identifier pair indicating which tag in which group the user changed from and / or to which tag in which group. In some examples, after computer system-3 526 receives the update message at 556, computer system-3 526 updates the indicator of the presence of user 1 (e.g., ...). Figure 4B User indicator 440 or user indicator 442) causes the indicator of user 1's presence to move from the label that user 1 is viewing and / or interacting with to the label that user 1 begins to view and / or interact with at 550.
[0100] At 558, computer system-1A 522 receives the update message sent at 554, and at 560 sends a different update message to the computer system associated with the user whose shared tag group A is shared, via the shared connection with shared tag group activity A 512. In some examples, computer system-1A 522 sends the update message at 560 because it is determined that computer system-1B 524 cannot send the message directly, as computer system-1B 524 is not connected to the computer system associated with the user whose shared tag group A is shared. In some examples, the update message received by computer system-1A 522 at 558 is different from the update message sent by computer system-1A 522 at 560 (and / or the update message sent at 552), because the user whose shared tag group activity A is shared may not know shared tag group activity B and / or specific information about shared tag group activity B, including identifiers associated with shared tag group activity B and / or tags of shared tag group activity B. In some examples, the update message sent at 560 includes content (and / or payload) indicating that user 1 has left (e.g., left shared tag group activity A) and / or that user 1's presence is no longer detected in shared tag group activity A, without identifying identifiers associated with shared tag group activity B, including tag group identifiers (e.g., identifiers associated with tag group B) and tag identifier pairs indicating which tag in which group the user changed from and / or which tag in which group they changed to. In some examples, after computer system-2 520 receives the update message sent at 562, computer system 620 updates the indicator of user 1's presence (e.g., ... Figure 4BUser indicator 440 or user indicator 442) causes the indicator of user 1's presence to no longer be displayed (e.g., because user 1's presence was not detected in shared tab group activity A based on user 1 using computer system-1B at 550 to switch tabs in shared tab group B).
[0101] Go to Figure 5B After sending the update message at position 564 and position 560, computer system-1A522 and... Figure 5A At point 538, the shared connection established with shared tab group A is disconnected (e.g., disconnected from shared tab group activity A). Computer system-1A 522 disconnects the shared connection established with shared tab group A because at point 550, it is determined that the presence of user 1 is detected in shared tab group B. On the other hand, at point 566, computer system-2 520 maintains a connection to the shared connection with shared tab group A (e.g., including other users whose shared tab group A is shared, but not considering user 1 and user 3). It should be noted that the presence of user 1 is determined based on the latest and / or most recent interactions received using any computer system associated with the user to interact with the shared tab group. Therefore, in some examples, even if computer system-1A 522 still displays the webpage of the tab in shared tab group A when and after user 1 uses computer system-1B to switch tabs in shared tab group B at point 550, the detection of user 1's presence regarding the tabs in shared tab group B will cause the computer system belonging to the user of shared tab group A to be updated and stop displaying user 1 as present regarding the tabs in shared tab group A.
[0102] At 570, User 1 switches to using Computer System-1B 524 to view the new tag in Shared Tag Group B (e.g., a tag different from the tag at 550) and / or interact with the new tag in Shared Tag Group B. At 572-574, Computer System-1B 524 uses one or more techniques similar to those described above regarding 552-554 to send update messages about the new tag. At 576, Computer System-1A 522 receives the update message but does not forward it and / or send it to any other computer system because Computer System-1A 522 no longer has a shared connection with any shared tag group (e.g., after being disconnected from Shared Tag Group A at 564). At 578, Computer System-3 526 receives the update message and, in response to receiving the update message, performs actions similar to those described above regarding... Figure 5A 556 describes one or more of those operations (e.g., changing the display of a user indicator).
[0103] It should be understood that interaction with tags also includes, and / or may be referred to as, interaction with the webpage represented by the tag, such as scrolling the webpage, selecting text, inserting text, moving the cursor, and / or playing media associated with the webpage. It should also be understood that... Figures 5A to 5B One or more steps provided may occur in response to interaction with a tab or webpage that is different from the tab switching (such as the interaction described in the text regarding interaction with the webpage). It should also be understood that groups sharing content other than tabs can also be covered by the techniques described above, including sharing different slide groups of a presentation with a group of different users, sharing different workbooks of a spreadsheet document with a group of different users, and / or sharing different chapters of a word processing document with a group of different users.
[0104] Figures 7A to 7C This is an exemplary channel diagram 700 based on some examples for managing communication between computer systems, and Figure 8 This is an exemplary block diagram 800 representing a connection between computer systems, based on some examples. Specifically, it provides... Figure 8 To show in Figures 7A to 7C The connection between computer system-2 720, computer system-1A 722, computer system-1A 724, and computer system-3 726 established during one or more steps. Computer system-2 720 is related to the connection established above regarding... Figure 3 The computer system associated with user 2 discussed, and including Figure 3 One or more features of the computer system 320. Computer system-1A 722 and computer system-1B 724 are related to the above regarding... Figure 3 The computer systems associated with User 1 discussed herein, and respectively include Figure 3 Computer system 322 and computer system 324 have one or more characteristics. Computer system-3726 is related to the above regarding... Figure 3 The computer system associated with user 3 discussed, and includes Figure 3 The computer system 326 has one or more characteristics. In some examples, one or more of the computer systems 722 to 726 include... Figure 1 The computing system 100 and / or Figure 2 One or more characteristics of the device 200.
[0105] Go to Figure 7A At locations 730 to 732, computer systems-1A 722 and 1B 724 open tabs in shared tab groups A and / or B by opening a browser application and / or running the browser application in the foreground, and use the above-mentioned... Figure 5AArticles 530 to 536 describe one or more technologies for establishing personal connections with each other. Go to Figure 8 The personal connection established between computer systems 722 and 724 is represented by personal connection 802.
[0106] return Figure 7A At 730, Computer System-1A 722 opens the browser application and / or makes the browser application run in the foreground, and at 734 uses the above-mentioned... Figure 5A 538 describes one or more techniques for establishing a shared connection with shared tab group A, because the browser application of computer system-1A 722 includes tabs in shared tab group A.
[0107] At 731, Computer System-1B 724 opens the browser application and / or runs the browser application in the foreground, and at 735 uses the above-mentioned... Figure 5A 540 describes one or more techniques for establishing a shared connection with shared tab group B because the browser application of computer system-1B 724 includes tags from shared tab group A. At 731, computer system-1B 724 performs a process regarding... Figures 5A to 5B Some operations not presented. At 731, computer system-1B 724 opens a browser application and / or runs the browser application in the foreground, and at step 736 establishes a shared connection with shared tab group A, because the browser application of computer system-1B 724 also includes tabs in shared tab group A (e.g., in addition to shared tab group B discussed above). Because computer system-1A 722 and computer system-1B 724 have a shared connection to shared tab group A via shared tab group activity A 712, computer system-1A 722 and computer system-1B 724 have shared connections and personal connections to each other (e.g., such as...). Figure 8 (As shown in the personal connection 802 and shared connection 806).
[0108] At 737, computer system-3 726 opens the tab in shared tab group B and uses the above-mentioned... Figure 5A One or more techniques described in sections 542 to 544 establish a shared connection at 738 with one or more computer systems sharing shared tag group B via shared tag group activity B 714. Go to Figure 8 A shared connection 810 is provided between computer system-1B 724 and computer system-3 726 to demonstrate that they have a shared connection with each other.
[0109] return Figure 7AAt 739, computer system-2 720 opens a tag in shared tag group A, and at 740 establishes a shared connection with one or more computer systems that share tag group A. Because shared tag group A is being shared with computer system-1A 722 and computer system-1B 724 (e.g., as described above), computer system-2 720 has a shared connection with each of computer systems-1A 722 and computer system-1B 724 (e.g., via shared tag group A activity 712), which in Figure 8 The data is shown in the diagram by shared connections 804 and 808.
[0110] At 741, User 1 uses Computer System-1A 722 to switch to a new label in shared label group A. At 742, Computer System-1A 722 sends an update message via a personal connection, and at 744, it sends an update message via a shared connection to shared label group A, so that other computer systems are aware that User 1's presence has changed. The update messages sent at 742 to 744 are similar because they include label group identifiers (e.g., identifiers associated with label group A) and label identifier pairs (e.g., an identifier with shared label group A and an identifier corresponding to the label from which and / or to which the user switched). The update messages sent at 742 to 744 are similar because Computer System-1A 722 has a shared connection to shared label group A and a personal connection to Computer System-1B 724.
[0111] At 743, computer system-1B 724 receives an update message sent at 742 (e.g., via a personal connection). Furthermore, at 745, computer system-1B 724 also receives an update message sent at 744 (e.g., via a shared connection). Computer system-1B 724 receives two messages from computer system-1A 722 because computer system-1B 724 has both a shared connection and a personal connection with computer system-1A 722. Computer system-1B 724 can handle receiving multiple update messages in different ways. Figures 7A to 7C (and those discussed above) Figures 5A to 5BIn this context, update messages may include a conflict-free copy data type (e.g., CRDT) that can be used to resolve conflicts between message updates (e.g., receiving multiple messages about the existence of data). In some examples, the CRDT includes a clock as a monotonically increasing integer, where higher numbers indicate newer messages. In some examples, the CRDT includes a clock as a monotonically decreasing integer, where lower numbers indicate newer messages. In some examples, the CRDT includes a device identifier indicating the current state of the corresponding user to whom the message pertains. In some examples, the corresponding computer system tracks the latest and / or most recent messages received by the computer system. In some examples, a received update message with a lower CRDT generation than a locally known update message will be discarded, while a received update message with a higher CRDT generation will replace the locally known update message (and / or previously stored update messages). In some examples, replacing a received update message with a locally known update message will cause the user interface to be updated (e.g., because the user's presence has been updated).
[0112] exist Figure 7A If an update message sent at 742 is received before an update message sent at 744, computer system-1B 724 will send an update message corresponding to the update message sent at 742 to shared tag group B, and discard the update message sent at 744 after determining that the update message sent at 742 is equal to the update message sent at 744. In other examples, if an update message sent at 744 is received before an update message sent at 742, computer system-1B 724 will send an update message corresponding to the update message sent at 744 to shared tag group B, and discard the update message sent at 742 after determining that the update message sent at 742 is equal to the update message sent at 744. At 746, an update message corresponding to either the update message sent at 742 or the update message sent at 744 is sent via a shared connection with shared tag group B. At 747, computer system-3 726 receives an update message that does not contain as much information as the update messages sent at 742 and / or 744 (e.g., because computer system-1A 722 is not part of shared tag group B, and for reasons similar to those described above regarding 558 to 560). In some examples, after receiving the update message at 747, computer system-3 726 performs operations similar to those described above regarding 556 and / or 562, including removing the display of user indicator for user 1.
[0113] At 748, computer system-2 720 receives an update message sent at 744 (e.g., sent to shared tag group A). Here, the update message received at 748 includes more information because computer system-1A 722 is part of shared tag group A. In some examples, after receiving the update message at 748, computer system-2 720 performs operations similar to those described above with respect to 556 and / or 562, including moving user 1's user indicator to a different tag. [Go to...] Figure 7B At 749, computer system-1B 724 disconnects from shared tag group A, and computer system-3726 at 750 maintains a connection to shared tag group B using one or more of the techniques described above with respect to 566 to 564.
[0114] At 751, User 1 uses Computer System-1A 722 to switch to a new label in shared label group A. At 752 and 753, Computer System-1A 722 uses one or more techniques similar to those discussed above regarding 741, 742, and 744 to send an update message. At 754, Computer System-1B 724 receives the update message sent at 753, and at 755, Computer System-1B 724 also receives the update message sent at 752, for reasons similar to one or more reasons discussed above regarding 754 and 755. Computer System-1B 724 will locally store the first received update message and discard the other message (e.g., for reasons similar to those described above regarding 752 and 754). However, after locally storing the first received message, computer system-1B 724 will not send a message about the first update message to the shared connection because computer system-1A 722 has sent an update message and is currently also connected to shared tag group A along with computer system-1B 724. In some examples, it is assumed that computer system-1A 722 sends update messages to all shared connections of computer system-1A 722. In some examples, computer system-1B 724 avoids sending duplicate messages via this assumption.
[0115] At 756, computer system-2 720 receives an update message sent at 752 (e.g., sent to shared tag group A). In some examples, after receiving the update message at 756, computer system-2 720 performs operations similar to those described above with respect to 556 and / or 562, including moving user 1's user indicator to a different tag.
[0116] At 757, User 1 uses Computer System-1B 724 to switch to a new label in Shared Label Group A. At 758 and 759, Computer System-1B 724 uses a technique similar to that discussed above regarding 742 to 744 to send an update message via personal and shared connections of Computer System-1A 722. Furthermore, at 760, Computer System-1A 722 receives the message sent at 758 (e.g., via personal connection), and at 761, Computer System-1A 722 receives the message sent at 759 (e.g., via shared connection). Here, Computer System-1A 722 will use a technique similar to that discussed above regarding 754 and 755 to retain one of the received messages and discard the other. At 762, Computer System-2 720 receives the update message sent at 759 (e.g., sent to Shared Label Group A). In some examples, after receiving an update message at 762, computer system-2 720 performs operations similar to those described above with respect to 556 and / or 562, including moving user 1's user indicator to a different label.
[0117] Go to Figure 7CAt point 763, user 1 uses computer system-1B 724 to switch to a new label in shared label group B. At points 764 and 765, computer system-1B 724 uses one or more techniques similar to those discussed above regarding points 741, 742, and 744 to send update messages. After sending update messages at points 764 and 765, computer system-1A 722 receives the update message sent at point 764 (e.g., via a personal connection) and the update message sent at point 765 (e.g., via a shared connection to shared label group A) at points 766 and 767, respectively. In an example where an updated message sent at 764 (e.g., via a personal connection) is received before a message sent at 765 (e.g., via a shared connection to shared tag group A), computer system-1A 722 saves the message sent at 764 (e.g., because the message has more information and the user selected a specific tag in a specific tag group) and discards the updated message sent at 765 (e.g., because the message has less information and the user left). In an example where an updated message sent at 764 (e.g., via a personal connection) is received after a message sent at 765 (e.g., via a shared connection to shared tag group A), computer system-1A 722 first saves the message sent at 765, but discards the message sent at 764 when the updated message sent at 765 is received (e.g., because the updated message sent at 765 and the updated message sent at 764 belong to the same generation, but the updated message at 764 has more information than the updated message sent at 765). In some examples, computer system-1A 722 does not forward any received messages about 764 to 765 because computer system-1A 722 and computer system-1B 724 have lost their shared connection with shared label group A because the presence of user 1 is now detected at shared group B (e.g., because computer system-1B 724 is used to switch to a new label in shared label group B at 763).
[0118] At 768, computer system-1B 724 establishes (and / or re-establishes) a shared connection with shared label group B (e.g., because computer system-1B 724 was used at 763 to switch to a new label in shared label group B), and sends the update message via the shared connection (e.g., via shared label group activity 714). At 769, computer system-3 726 receives the update message. In some examples, computer system-3 726 performs operations similar to those described above with respect to 556 and / or 562, including displaying the user indicator for user 1 on the label (e.g., where the user indicator was not previously displayed before 763 because there was no shared connection with shared label group B). At 770, computer system-2 receives the update message sent at 765, and uses the information about... Figure 5A The 556 describes one or more techniques to stop displaying the user indicator for user 1.
[0119] It should be understood that interaction with tags also includes, and / or may be referred to as, interaction with the webpage represented by the tag, such as scrolling the webpage, selecting text, inserting text, moving the cursor, and / or playing media associated with the webpage. It should also be understood that... Figures 7A to 7C One or more steps provided may occur in response to interaction with a tab or webpage that is different from the tab switching (such as the interaction described in the text regarding interaction with the webpage). It should also be understood that groups sharing content other than tabs can also be covered by the techniques described above, including sharing different slide groups of a presentation with a group of different users, sharing different workbooks of a spreadsheet document with a group of different users, and / or sharing different chapters of a word processing document with a group of different users.
[0120] Figure 9 This is a flowchart illustrating a method (e.g., method 900) for managing personal communication between computer systems of users, based on some examples. Some operations in method 900 are optionally combined, the order of some operations is optionally changed, and some operations are optionally omitted.
[0121] As described below, method 900 provides an intuitive way to manage personal communication between a user's computer systems. Method 900 reduces the cognitive burden on the user in managing personal communication between their computer systems, thereby creating a more efficient human-computer interface. For battery-powered computing devices, it enables users to manage personal communication between their computer systems more quickly and effectively, saving power and increasing the time interval between battery charges.
[0122] At 902, a computer system identifier (e.g., navigating to, opening, viewing, detecting corresponding input, acquiring, obtaining, picking, selecting, and / or receiving relevant information) is associated with a user of the computer system (e.g., associated with the user, registered by the user, logged in by the user, and / or via the user's user account) (e.g., opened by the user, used by the user, set by the user, and / or displayed on the user's computer system, belonging to the user, and / or the user's computer system). In some examples, the computer system is a telephone, watch, tablet computer, fitness tracker, wearable device, television, multimedia device, accessory, speaker, head-mounted display (HMD), service, backend process, and / or personal computing device. In some examples, the computer system communicates with input / output devices, such as one or more cameras, speakers, microphones, and / or sensors (e.g., heart rate sensor, monitor, Bluetooth, near-field communication sensor, and / or Wi-Fi sensor). In some examples, a webpage is identified after a computer system joins and / or is invited to an active session associated with a data object (e.g., a unique session associated with multiple user-accessible shared tab groups and / or subsets). In some examples, a browser includes webpages (e.g., a browser page, tabs representing webpages and / or browser windows in a web browser, tabs representing page and / or content windows in an application (e.g., a document generation application, a web browser, a presentation application, and / or a spreadsheet application)) and, in some examples, browser components (e.g., one or more user interface elements and / or content of the browser)).
[0123] At 904, in response to identifying the browser, the computer system enables the establishment (e.g., provision, setup, and / or configuration) of a first connection (e.g., channel, communication channel, data channel, and / or data connection) between the computer system and one or more other computer systems of the user (e.g., one or more types of computer systems described above regarding computer systems). In some examples, the computer system is a computer system of a different type from one or more other computer systems. In some examples, the computer system is in the same location, region, geographic location, building, house, shop, vehicle, and / or area as one or more other computer systems. In some examples, the computer system is in a different location, region, geographic location, building, house, shop, vehicle, and / or area from one or more other computer systems (e.g., when, before, and / or after, a connection is established between the computer system and one or more other computer systems). In some examples, the computer system and one or more other computer systems are registered and / or connected to the user's account and / or correspond to the user's account. In some examples, setting up a connection includes establishing a communication channel (e.g., a "real-time" channel) for synchronization between one or more computer systems (e.g., direct synchronization, without intermediary computer systems and / or directly with one or more intermediary computer systems for message delivery (e.g., manipulating messages and / or not manipulating messages) rather than with storage resources), sending one or more messages between one or more computer systems, and / or linking one or more computer systems. In some examples, the connection is established through activity on one or more of the user's other computer systems and accessible to the computer systems (and in some examples, inaccessible to another computer system). In some examples, the activity is hosted on a server (and in some examples, a cloud server), such as an identity server that knows the identity of the user and / or one or more other users. In some examples, the computer system determines that the webpage is shared with one or more users other than the user of the computer system. In some examples, the computer system determines that the webpage is not shared with one or more users other than the user of the computer system (e.g., a second user, a third user, etc.).
[0124] At 906, the computer system causes a second connection (e.g., providing, setting, and / or configuring) to be established between the computer system and a service (e.g., identity, synchronization, and / or mediation services) (e.g., a channel, communication channel, data channel, and / or data connection) (e.g., sending first data without via a first connection between the computer system and one or more other computer systems) (e.g., a service that knows and / or tracks the identity of a user and / or one or more other users and / or account information associated with the user and / or one or more other users) (and in some examples, sending messages without via a first connection (and / or any connection) between the computer system and one or more other computer systems), wherein the second connection is different from the first connection. In some examples, the service is not part of one or more other computer systems and / or is not the user's and / or only the user's computer system. In some embodiments, the first and second connections are established after and / or in response to opening a webpage and / or opening a web browser application that includes a webpage. In some examples, data transmitted via the first connection to an endpoint device (e.g., a computer system sharing web pages and / or documents with another user) is transmitted faster than data transmitted via the second connection. In some implementations, the service is provided via a server. In some implementations, the second connection is a peer-to-peer connection.
[0125] At 908, when the computer system connects to one or more other computer systems via a first connection, and when the computer system connects to the service via a second connection, the computer system identifies first data about the browser.
[0126] At 910, in response to identifying first data about the browser and based on determining that the first data includes data about the presence of the browser (e.g., data identifying and / or indicating whether a user is using (e.g., interacting with, viewing, editing, reading, and / or updating) web pages and / or web parts), the computer system sends (e.g., transmits and / or moves) a message corresponding to (e.g., including and / or associated with) the first data via a first connection between the computer system and one or more other computer systems.
[0127] At 912, in response to identifying first data about the browser and determining that the first data does not include existing data, the computer system sends a message corresponding to the first data via a second connection. In some examples, in response to identifying the first data and determining that the first data is data of a first type, a message is sent via the first connection, without sending the first data via the second connection. In some examples, in response to identifying the first data and determining that the first data is data of a first type, a message is sent via both the first and second connections.
[0128] In some examples, the first connection is a peer-to-peer connection. In some examples, the first connection enables a computer system to send one or more messages to one or more other computer systems. In some examples, the first connection is a direct connection to one or more other computer systems.
[0129] In some examples, the first connection includes a client-server connection. In some examples, the client-server connection includes: a first client-server connection between a computer system and a server (e.g., a synchronization server); and a second client-server connection between another computer system in one or more other computer systems and the server, wherein the server manages the distribution of data via the client-server connection.
[0130] In some examples, the computer system connects to one or more other computer systems via a first connection between the computer system and one or more other computer systems, and simultaneously connects to the server via a second connection between the computer system and the server.
[0131] In some examples, after the browser detects the user's presence and during the establishment of a first connection between the computer system and one or more other computer systems, the computer system detects that it no longer detects the user's presence relative to the browser. In some examples, in response to detecting that the user's presence is no longer detected relative to the browser, the computer system causes to terminate the first connection between the computer system and one or more other computer systems (e.g., disconnect and / or not maintain the connection between the computer system and one or more other computer systems) (and in some examples, simultaneously causes to disconnect the connection between the computer system and the identity server).
[0132] In some examples, the user's presence is not detected when the browser is operating in the background (e.g., running and / or executing) (e.g., as a background process and / or not viewable and / or invisible). In some examples, the user's presence is detected when the browser is operating in the foreground (e.g., as a foreground process and / or viewable and / or visible) (e.g., when the computer system is a mobile computer system such as a mobile phone and / or a fitness tracking device such as a smartwatch). In some examples, when the computer system is a computer system such as a tablet, laptop, and / or desktop computer, the user's presence continues to be detected even when the browser is operating in the background.
[0133] In some examples, in response to a browser application that includes (e.g., the browser that hosts and / or is used for display) exiting (e.g., closing and / or ceasing to perform and / or operate) (e.g., when the computer system is a computer system such as a tablet, laptop, and / or desktop computer), the presence of a user is not detected (e.g., the user is detected not to exist).
[0134] It should be noted that the process described above is relative to method 900 (e.g., Figure 9 The details of this method also apply in a similar manner to the other methods described herein. For example, method 1000 optionally includes one or more features of the various methods described above with reference to method 900. For example, the techniques of method 900 can be used to manage communication between a personal computing device and a server to send different types of data, some of which can also be sent to other devices using the methods and techniques of method 1000. For the sake of brevity, these details will not be repeated below.
[0135] Figure 10 This is a flowchart illustrating, according to some examples, a method (e.g., method 1000) for managing communication between computer systems regarding shared content. Some operations in method 1000 may be optionally combined, the order of some operations may be optionally changed, and some operations may be optionally omitted.
[0136] As described below, method 1000 provides an intuitive way to manage communication between computer systems regarding shared content. Method 800 reduces the cognitive burden on users managing communication between computer systems regarding shared content, thereby creating a more efficient human-computer interface. For battery-powered computing devices, it enables users to manage communication between computer systems regarding shared content more quickly and effectively, saving power and increasing the time interval between battery charges.
[0137] At 1002, the computer system enables the establishment (e.g., as described above regarding method 900) of a first connection (e.g., as described above regarding method 900) between the first user's first computer system and the first user's second computer system (e.g., as described above regarding method 900) (e.g., a connection between personal computer systems (e.g., identified personal computer systems, such as computer systems registered to the same account and / or account group)).
[0138] At 1004, the first part (e.g., application content, other content, document, window, page, and / or webpage) of a subset of computer system identifier (e.g., navigating to, opening, viewing, detecting corresponding input, obtaining, acquiring, picking, selecting, and / or receiving related information) content (e.g., groups, sets, chapters, hashes, sections, shared groups, shared sets, shared chapters, shared hashes, and / or shared portions of browser labels (e.g., labels representing web pages and / or browser windows in a web browser, labels representing pages and / or windows in an application (e.g., document generation applications, web browsers, presentation applications, and / or spreadsheet applications)).
[0139] At 1006, after a first portion of a subset of content is identified and a first connection is established (e.g., in response to, subsequently, due to, combined with (e.g., immediately following and / or as part of)), and based on the determination that the presence of a first user using a first computer system of a first user is detected relative to the subset (e.g., as described above with respect to method 900) and the subset is designed (e.g., configured to, established to, and / or set to) be shared (e.g., between the first user and the second user and / or between the first user and any different user), the computer system enables the establishment (e.g., as described above with respect to method 900) of a second connection (e.g., a connection different from the first connection and / or a connection separate from the first connection) between the first user's first computer system and a third computer system of a second user different from the first user (e.g., as described above with respect to method 900) while maintaining the first connection (e.g., a connection between the first user's personal computer system and the second user's personal computer system).
[0140] At point 1008, after establishing a first connection and identifying a first portion of the content subset, and based on determining that the presence of a first user's first computer system is detected relative to the subset and that the subset is not designed to be shared, the computer system maintains the first connection without establishing a second connection between the first user's first computer system and the second user's third computer system. In some examples, the first computer system, the second computer system, and / or the third computer system are connected to a service and / or a server, without being connected to each other and / or simultaneously connected to one of other computer systems via the first connection and / or via the second connection. In some examples, the computer system determines that the presence of a first user using the first user's first computer system is detected relative to the subset, and that the subset is not designed to be shared. In some examples, the first computer system determines that the presence of a first user using the first user's first computer system is not detected relative to the subset and / or that the subset is designed to be shared.
[0141] In some examples, while maintaining both the first and second connections, the computer system identifies a switch in the detection status from a first subset to a second subset. In some examples, in response to identifying a switch in the detection status from a first subset to a second subset, the computer system sends a first message via the first connection and a second message via the second connection (instead of the first connection). In some examples, the first message is not sent via the second connection. In some examples, the first and / or second message includes an indication that the detection status of the first user has switched from a first subset to a second subset. In some examples, the first and / or second message includes an indication that the first user's presence was previously detected relative to a first subset. In some examples, the first and / or second message includes an indication that the first user's presence was detected relative to a second subset.
[0142] In some examples, the content of the first message (e.g., payload and / or information) differs from the content of the second message (e.g., payload and / or information) (e.g., user A leaves with user A leaves tag alpha; for a specific subset and / or a specific part of a subset if the second connected computer system does not know the tag and / or is not connected to tag alpha).
[0143] In some examples, the content of the first message (e.g., payload and / or information) is the same as the content of the second message (e.g., payload and / or information) (e.g., user A is at label alpha; for a specific subset and / or a specific part of the subset if the second connected computer system knows the label and / or is connected to label alpha).
[0144] In some examples, a first message (and / or the content of the first message) takes precedence over a second message (and / or the content of the second message) (e.g., regardless of whether the first and / or second messages are received first by the receiving computer system) (e.g., a message sent via a first connection takes precedence over a message sent via a second connection) (e.g., a message sent via the first connection is sent before a message sent via the second connection) (e.g., the first message is sent before the second message) (e.g., a message sent via the first connection is processed by the receiving computer system before a message sent via the second connection (e.g., when the messages are received approximately simultaneously)) (e.g., the first message is processed by the receiving computer system before the second message is processed by it) (e.g., the first message includes an indication that the first message has a higher priority than the second message). In some examples, upon receiving the first message (e.g., after receiving the second message), the content of the first message is saved, while the content of the second message is deleted.
[0145] In some examples, one or more of the content of the first message and the content of the second message include one or more operations from a group that includes: information identifying the second part (e.g., tag location, webpage location (e.g., the first webpage in the group, the second tag in the group, the third slide in a presentation, and / or the fourth chapter of a document)); media playback information about the second part (e.g., information relating to the media being played (e.g., audio and / or video media) and / or a specific media item being played in a set of media items included in webpages, documents, and / or tags); and related... The scroll positioning information for the second part (e.g., the positioning of the webpage and / or document when scrolling (e.g., horizontal positioning, vertical positioning, and / or any combination thereof)); the selected text information for the second part (e.g., information relating to text simultaneously selected in the document and / or on the webpage); the table text information for the second part (e.g., the information text currently entered into a table on the webpage (e.g., input boxes, check marks, text input elements, and / or password input elements)); and / or the cursor position information for the second part (e.g., the position of the cursor on the webpage and / or document).
[0146] In some examples, one or more of the contents of the first message and the second message include conflict-free copy data type information.
[0147] In some examples, one or more of the contents of the first message and the second message include time information (e.g., timestamps and / or indications of when the message was sent and / or received).
[0148] In some examples, this subset is a first subset. In some examples, while maintaining the first and second connections, the computer system identifies that the presence of the first user has been detected from relative to the first subset (e.g., a first set of tabs and / or web pages) to relative to a second subset of content different from the first subset (e.g., a second set of tabs and / or web pages) (e.g., the user's computer system has clicked a new tab and / or window, is viewing a new page and / or window, and / or is switching between viewing old tabs and / or web pages and viewing new tabs and / or web pages). In some examples, in response to identifying that the presence of the first user has been detected from relative to the first subset to relative to the second subset, the computer system causes a third connection to be established between the computer system and a fourth computer system of a third user different from the first and second users (e.g., as described above with respect to method 900).
[0149] In some examples, in response to the switch of the detection of the presence of a first user from being detected relative to a first subset to being detected relative to a second subset, the computer system maintains the first connection while providing a third connection (e.g., does not maintain the second connection and / or makes the second connection maintain).
[0150] In some examples, a fourth connection to a server (e.g., an identity or synchronization server) is established simultaneously with one or more of the first and second connections (and in some examples, regardless of whether the first and / or second connections are established and maintained).
[0151] In some examples, the computer system receives a message (e.g., as described below with respect to method 1100). In some examples, in response to receiving a message and based on determining that the message includes presence data, the computer system sends data corresponding to the message via one or more of a first connection and a second connection, without sending the data corresponding to the message via a third connection. In some examples, the data corresponding to the message sent via the first connection is different from the data corresponding to the message sent via the second connection. In some examples, based on determining that the message does not include presence data, the computer system sends data corresponding to the message via a third connection, without sending the data corresponding to the message via the first and second connections.
[0152] It should be noted that the process described above is relative to method 1000 (e.g., Figure 10 The details of this method also apply in a similar manner to the other methods described herein. For example, method 1000 optionally includes one or more features of the various methods described above with reference to method 900. For example, the techniques of method 900 can be used to manage communication between a personal computing device and a server to send different types of data, some of which can also be sent to other devices using the methods and techniques of method 1000. For the sake of brevity, these details will not be repeated below.
[0153] Figure 11 This is a flowchart illustrating a method (e.g., method 1100) for managing messages about shared content, based on some examples. Some operations in method 1100 may be optionally combined, the order of some operations may be optionally changed, and some operations may be optionally omitted.
[0154] As described below, method 1100 provides an intuitive way to manage incoming messages related to shared content. Method 1100 reduces the cognitive burden on users managing messages associated with shared content, thereby creating a more efficient human-computer interface. For battery-powered computing devices, it enables users to manage incoming messages related to shared content more quickly and efficiently, saving power and increasing the time interval between battery charges.
[0155] In some examples, method 1100 is performed by (and / or at) a first computer system that communicates with display generating components (e.g., a display, display area, touch-sensitive screen, and / or display and / or projector) and is associated with a first user (e.g., registering, logging into a first user account associated with the first user, and / or indicating that one belongs to the first user).
[0156] At 1102, the first computer system detects a first indication of the presence of a second user (e.g., as described above with respect to method 1000) by displaying a first portion (e.g., a first label, a first window, a first portion of a chapter, a first member of a set and / or group and / or an entity and / or a first item) of a subset of content (e.g., groups, collections, chapters, hashes, parts, shared groups, shared collections, shared chapters, shared hashes and / or shared portions of browser tabs (e.g., tabs representing web pages and / or browser windows in a web browser, tabs representing content in an application (e.g., document generation application, web browser, presentation application and / or spreadsheet application)), browser content, documents, document chapters, document parts, windows and / or entities) via a display generation component. This is indicated by a first portion (e.g., a first label, a first window, a first portion of a chapter, a first member of a collection and / or group and / or an entity and / or a first item). The subset of content is shared between the first user and the second user, the first computer system is connected to the second user's second computer system and is not connected to the second user's third computer system, and the second user is different from the first user.
[0157] At 1104, when the first instruction is displayed, the first computer system receives a message (e.g., information, data, text, words, symbols, signals, and / or requests) (e.g., the user has left a subset, the user has stopped using the first part, the user is using the second part, and / or the user is using a subset different from that subset) (e.g., a message from an entity that has switched tags and / or shared a tag group, as described below with respect to methods 900 and 1000).
[0158] At 1106, in conjunction with the received message (e.g., a message as described above with respect to method 1000) (e.g., after receiving the message and / or as part of receiving the message), according to (e.g., and / or according to determination) that the second computer system is active with respect to the second part of the subset of content that is different from the first part of the subset of content (and / or in some examples, the second computer system causes the second user to be detected with respect to the second part of the subset of content that is different from the first part of the subset of content (and in some examples, the third computer system does not cause the second user to be detected with respect to the second part)), the first computer system displays a second indication (e.g., the user has left and / or stopped using the first part and / or the user is using the second part) via the display generation component, without displaying (and / or simultaneously stopping the display and / or not continuing to display) the first indication.
[0159] At 1108, in conjunction with the received message, and based on (e.g., and / or based on determination) that the third computer system (and / or in some examples, the third computer system causes the second user to be detected with respect to the second part of the subset of content (and in some examples, the second computer system does not cause the second user to be detected with respect to the second part)) is active with respect to the second part of the subset of content, the first computer system displays a second instruction via a display generation component, without displaying a first instruction.
[0160] In some examples, the second computer system and the third computer system communicate with each other (e.g., and / or are connected to each other (e.g., as described above with respect to method 1000)).
[0161] In some examples, in conjunction with receiving a message and based on (e.g., and / or based on determining) that a third user, different from the first and second users, is active relative to a second portion of the content, the first computer system displays a third indication of detecting the presence of the third user regarding the second portion of the content via a display generation component, while continuing to display the first indication. In some examples, the third indication is visually different from the first and / or second indications (e.g., including an avatar corresponding to the third user, instead of an avatar corresponding to the second user). In some examples, the first and / or second indications include an avatar of the second user.
[0162] In some examples, the message includes a first amount of content, provided that (e.g., and / or as determined) a second portion of the content is active relative to a subset of the second computer system. In some examples, the message includes a second amount of content, less than the first amount, provided that (e.g., and / or as determined) a second portion of the content is active relative to a subset of the third computer system.
[0163] In some examples, messages including a first amount of content (e.g., the user has switched to a second part of the content, the user has switched to a different tab and / or webpage, and / or the user has switched to a specific tab and / or webpage) have location data associated with the second part of the subset of content. In some examples, messages including a second amount of content (e.g., the user has left and / or the user has left and / or no longer views the first part of the subset of content) do not have location data associated with the second part of the subset of content. In some examples, messages including a first amount of content and messages including a second amount of content have conflict-free copy data type information and / or time information (e.g., as described above with respect to method 1000).
[0164] In some examples, in conjunction with receiving the message and based on (e.g., and / or based on determination) that the second part of the third computer system is active relative to a subset of the content, the first computer system abandons its connection to the third computer system (and in some examples, continues its connection to the second computer system simultaneously).
[0165] In some examples, messages are received from the second computer system instead of the third computer system, in conjunction with the receipt of the message and based on (e.g., and / or based on determination) that the second computer system is active relative to a second portion of the content. In some examples, messages are received from the second computer system instead of the third computer system, based on (e.g., and / or based on determination) that the third computer system is active relative to a second portion of the content.
[0166] In some examples, a subset of the content is a first subset of the content. In some examples, if, according to (e.g., and / or according to determination), a third portion of the second subset of the content, which is different from the first subset of the content, is active on the second computer system and the second subset of the content is not shared with the first user, the first computer system is disconnected from the second computer system (e.g., not connected to the third computer system). In some examples, if, according to (e.g., and / or according to determination), a third portion of the second subset of the content is active on the third computer system and the second subset of the content is not shared with the first user, the first computer system is disconnected from the second computer system (e.g., not connected to the third computer system). In some examples, if, according to (e.g., and / or according to determination), a third portion of the second subset of the content is active on the second computer system (and / or the third computer system) and the second subset of the content is shared with the first user, the first computer system remains connected to the second computer system.
[0167] In some examples, the subset of content is a first subset of content. In some examples, if (e.g., and / or if determined) a third portion of the second subset of content is active with respect to the second computer system and the second subset of content is not shared with the first user, the first computer system refrains from displaying the first and second instructions. In some examples, if (e.g., and / or if determined) a third portion of the second subset of content is active with respect to the third computer system and the second subset of content is not shared with the first user, the first computer system refrains from displaying the first and second instructions. In some examples, if the third portion of the second subset of content is active with respect to the second computer system (and / or the third computer system) and the second subset of content is shared with the first user, the first computer system does not display the first and second instructions, and in some examples, an indication is displayed regarding the detection of the presence of the second user with respect to the third portion of the second subset of content.
[0168] It should be noted that the process described above is relative to method 1100 (e.g., Figure 11 The details of this method also apply in a similar manner to the other methods described herein. For example, method 1100 optionally includes one or more features of the various methods described above with reference to method 1000. For example, method 1000 can be used to manage the connection between the computer system of method 1100 and other computer systems, such that the computer system of method 1100 can update one or more instructions. For the sake of brevity, these details will not be repeated below.
[0169] Figure 12A and Figure 12B An exemplary user interface for updating shared tag group data is shown, based on some examples. Figure 12A and Figure 12B The user interface in the document is used to illustrate the processes described below, including Figure 13 The process in.
[0170] Figure 12A An example is illustrated of a computer system 1200 including a display component, which is a touch-sensitive display 1202 (hereinafter referred to as "display 1202"). The computer system 1200 includes... Figure 1 The computing system 100 Figure 2 The device 200 and / or one or more features of the computer system 400 of Figure 4.
[0171] like Figure 12A As shown, computer system 1200 displays web page interface 1210 via display 1202. This web page interface includes web pages represented by tags that are part of a shared tag group (e.g., from...). Figure 4BThe content of the webpage (represented by tag 432). The webpage interface 1210 includes a scroll indicator 1212, which indicates the scroll positioning of the webpage when displayed on the monitor 1202. Figure 12A In the example shown, the entire length of the right side of monitor 1202 (from the top closest to the page title to the bottom closest to the page URL) is a scaled representation of the entire length of the page. Figure 12A In the middle, the scroll indicator 1212 is near the top, indicating that the computer system 1200 is displaying the webpage near the top of the webpage.
[0172] exist Figure 12A In the scenario shown, computer system 1200 receives a message including location information for one or more other members of a shared tab group. In some examples, the location information includes an indication of cursor positioning (e.g., displayed on an interface of a computer system other than computer system 1200 and controlled by the corresponding user). In some examples, the location information includes an indication of scroll positioning (e.g., when content is displayed on a webpage interface on a computer system other than computer system 1200).
[0173] like Figure 12A As shown, the web page interface 1210 includes a scroll indicator 1214 indicating the scroll position of another user who is a member of a shared tab group. In this case, the scroll indicator 1214 indicates the scroll position relative to the above-mentioned... Figure 4B The described first user indicator 440 is associated with the scroll positioning of a first user. In some examples, the scroll indicator 1214 includes the first user indicator 440 (e.g., an avatar, image, initials, color, and / or representation associated with the corresponding user). In some examples, the scroll indicator 1214 does not include the first user indicator 440 (e.g., it is an arrow, without an avatar). Figure 12A As shown, the webpage interface 1210 includes a scroll indicator 1216 indicating the scroll position of another user who is a member of a shared tab group. In this case, the scroll indicator 1216 indicates the scroll position relative to the above text. Figure 4B The scroll positioning of the second user associated with the described first user indicator 442. For example, in Figure 12B In the scenario, with ( Figure 4B The first user indicator 442 is associated with a second user currently existing in label 432 (while...). Figure 4B In the text, they are shown as existing in label 434.
[0174] In some examples, a user (e.g., a member of a shared tag group) is associated with multiple computer systems. Figure 12AThis includes a schematic diagram that includes indications of multiple computer systems associated with scroll indicator 1216 (e.g., associated with a user represented by scroll indicator 1216). Figure 12A As shown, (as associated with scroll indicator 1216) Figure 4B The second user is associated with two computer systems (computer system 1218A (e.g., a smartphone) and computer system 1218B (e.g., a tablet computer)). In some examples, the user's scrolling positioning in a shared tab group is based on one of the multiple computer systems associated with the user. For example, in Figure 12A In this context, the scroll positioning of scroll indicator 1216 is based on computer system 1218A. In some examples, each of the multiple computer systems is in a different corresponding scroll positioning. For example, Figure 4B A second user can open tab 432 on their smartphone and their tablet, and can simultaneously scroll the webpage to different locations on each device. In some examples, the scroll location of one computer system (e.g., by computer system 1200) is used as the representative scroll location (e.g., for display as scroll indicator 1216). In some examples, which computer system among multiple computer systems is used for the representative scroll location is determined based on presence information derived from that computer system (e.g., transmitted by that computer system and / or generated based on the use of that computer system). In some examples, which computer system among multiple computer systems is used for the representative scroll location is determined based on proximity of presence (e.g., the most recently scrolled or otherwise interacted computer system is reported as the representative scroll location for the corresponding user).
[0175] Figure 12B An example is shown where computer system 1200 displays a web page interface 1210 via monitor 1202, the web page interface including data from... Figure 12A The same webpage content is depicted, but scrolls further down toward the bottom of the content. After scrolling the webpage interface 1210 (e.g., in response to detecting a swipe input via the touch-sensitive display 1202), the scroll indicator 1212 has moved further down toward the bottom of the measurement (representing the length of the webpage content), thereby indicating that the webpage content has been scrolled down.
[0176] like Figure 12B As shown, the web page interface 1210 includes scroll indicators 1214 and 1216, as described above relative to... Figure 12A As described. Scroll indicator 1214 has not yet moved (e.g., the corresponding user has not yet scrolled the webpage but it still exists), and scroll indicator 1216 has moved further down. Figure 12BIn this scenario, computer system 1200 receives one or more messages including positioning information indicating that a user has scrolled a webpage associated with scroll indicator 1216. Figure 12A The diagram includes indications of computer systems 1218A and 1218B associated with scroll indicator 1216 (e.g., associated with a user represented by scroll indicator 1216). Figure 12B In this scenario, the diagram illustrates how computer system 1218B is used to determine the representative scrolling position of a corresponding user. For example, the user associated with scroll indicator 1216 is... Figure 12A They used their smartphones (Computer System 1218A) to view web pages and later... Figure 12B They switched to using their tablet (Computer System 1218B) and used it to scroll the webpage positioning, so that... Figure 12B In this context, the representative positioning (e.g., the positioning of the scroll indicator 1216) is based on the computer system 1218B, even if the scroll positioning on the computer system 1218A remains unchanged.
[0177] Presence data, such as locations displayed to the user based on recentity (e.g., by computer system 1200) (e.g., represented as scroll indicators), indicates a location within the content the user is currently interacting with. In some examples, multiple messages are received, including multiple scroll locations for the user. For example, scroll locations may be reported by each of the user's computer systems. In some examples, a representative scroll location is selected from the multiple scroll locations (e.g., and other scroll locations are ignored and / or discarded). For example, recently received messages may be used. For example, a change in a scroll location may trigger the sending of an presence message, so the most recent presence data indicates that it was recently used by the user.
[0178] In some examples, computer system 1200 detects that a user has left the shared tab group and, in response, stops indicating the user's scrolling location. For example, if the user associated with scroll indicator 1216 leaves the shared tab group, computer system 1200 stops displaying scroll indicator 1216 at web page interface 1210.
[0179] In some examples, computer system 1200 detects that a user has switched a tab within a shared tab group and, in response, stops instructing the user to scroll. For example, if the user associated with scroll indicator 1216 changes a tab (e.g., within a shared tab group, or changes to a tab not in a shared tab group) (e.g., and as...), Figure 4BIf scroll indicator 1216 is present in label 434 and no longer present in label 432, then computer system 1200 stops displaying scroll indicator 1216 at webpage interface 1210. This can happen even if only one of the user's computer systems has switched labels (e.g., scroll indicator 1216 stops displaying at webpage interface 1210 regardless of whether the other computer system of that user has not yet switched labels). In some examples, based on presence, the user associated with indicator 1216 can only "exist" within one label at a time.
[0180] Figure 13 This is a flowchart illustrating a method (e.g., method 1300) for updating shared tag group data, based on some examples. Some operations in method 1300 are optionally combined, the order of some operations is optionally changed, and some operations are optionally omitted.
[0181] As described below, method 1300 provides an intuitive way to update shared tag group data using a computer system. Method 1300 reduces the cognitive burden on users when updating shared tag group data using a computer system, thereby creating a more efficient human-computer interface. For battery-powered computing systems, it enables users to update shared tag group data more quickly and efficiently, saving power and increasing the time interval between battery charges.
[0182] At 1302, when the scroll position (e.g., page positioning (e.g., the first part of the page, the middle part, the last part of the page, the cursor positioning, the scroll bar positioning) of the first user (e.g., content, web page, document page, pane, part of the user interface, spreadsheet and / or slide) is indicated to be at a first scroll position on the user interface (e.g., content, web page, document page, pane, part of the user interface, spreadsheet and / or slide) by (e.g., by displaying an indication and / or representation of scroll positioning, via a variable (e.g., an undisplayed variable), via a database entry, etc.)) is at a first scroll position on the user interface, the computer system receives a first message that the first user's first computer system (e.g., as described above with respect to method 900) has scrolled to a second position on the user interface.
[0183] At 1304, in response to receiving a first message (e.g., a message as described above with respect to methods 1000 and 1100), the computer system instructs the first user's scroll position to be in a second scroll position different from the first scroll position (e.g., instead of and / or not instructing the first user's scroll position to be in the first scroll position). In some examples, instructing the first user's scroll position to be in a second scroll position different from the first scroll position includes updating the displayed indication, displaying a new indication, and / or updating one or more variables corresponding to the indication.
[0184] At 1306, after indicating that the first user's scroll position is at the second scroll position and before indicating that the first user's scroll position is at the first different scroll position (and / or in some examples, when indicating that the first user's scroll position is at the second scroll position), the computer system receives a second message (e.g., a message as described above with respect to methods 1000 and 1100) indicating that the first user's second computer system has scrolled to a third position on the user interface (e.g., from the first scroll position, the second scroll position, and / or a scroll position different from the first scroll position, the second scroll position, and / or the third scroll position), wherein the second computer system is different from the first computer system.
[0185] At 1308, in response to receiving the second message, the computer system instructs the first user to scroll to a third scroll position that is different from the second scroll position (and in some examples, different from the first scroll position) (e.g., instead of and / or not instructing the first user to scroll ...
[0186] In some examples, after instructing the first user to scroll to a third scroll position and before instructing the first user to scroll to a second different scroll position (e.g., different from the first different scroll position), the computer system receives a third message indicating that the second user's computer system has scrolled to a fourth position different from the third position, and continues to instruct the first user to scroll to the third scroll position (e.g., not instructing the first user to scroll to the fourth scroll position and / or simultaneously instructing the second user to scroll to the fourth scroll position and / or that it has changed), wherein the second user (and / or the second user account) is different from the first user (and / or the first user account).
[0187] In some examples, a set of user interfaces, including user interfaces (e.g., as described above relative to a subset of content), is shared between the first user and users of the computer system (e.g., not the first user and / or different from the first user).
[0188] In some examples, when instructing the first user on scroll positioning, the computer system detects that the set of user interfaces is no longer shared with the first user. In some examples, in response to detecting that the set of user interfaces is no longer shared with the first user, the computer system stops instructing the first user on scroll positioning.
[0189] In some examples, when instructing the first user on scrolling positioning, the computer system detects that the first computer system has switched from displaying a user interface to displaying a different user interface. In some examples, in response to detecting that the first computer system has switched from displaying a user interface to displaying a different user interface, the computer system stops instructing the first user on scrolling positioning. In some examples, the different user interface is included in the set of user interfaces; in some examples, the different user interface is not included in the set of user interfaces.
[0190] In some examples, the cessation of scroll positioning for the first user occurs regardless of whether the state of the second computer system has changed (e.g., regardless of whether the second computer system is displaying a different user interface and / or whether the user interface continues to operate in the foreground or, in some examples, in the background on the second computer system).
[0191] In some examples, the second scroll position is on a first side of the first scroll position (e.g., above, below, left, right, and / or any combination thereof). In some examples, the third scroll position is on a second side of the first scroll position, different from the first side of the first scroll position (e.g., above, below, left, right, and / or any combination thereof).
[0192] In some examples, when the first and second computer systems are connected to an active session represented by a corresponding subset of the user interface including the user interface (e.g., a unique session associated with multiple user-accessible documents and / or services (in some examples, not part of an identity service)), the user interface scrolls in response to receiving a first message and in response to receiving a second message. In some examples, when the first and second computer systems are not connected to an activity represented by a corresponding subset of the user interface including the user interface, the user interface does not scroll in response to receiving a first message and in response to receiving a second message.
[0193] In some examples, when the first computer system and the second computer system are connected to each other (and in some examples, when the first computer system and the second computer system are connected to an activity represented by a corresponding subset of the user interface including the user interface), the user interface scrolls in response to receiving a first message and in response to receiving a second message. In some examples, when the first computer system and the second computer system are not connected to each other, the user interface does not scroll in response to receiving a first message and in response to receiving a second message.
[0194] In some examples, when at least one of the first and second computer systems is connected to a third user's computer system different from the first user, the user interface scrolls in response to receiving a first message and in response to receiving a second message. In some examples, if at least one of the first and second computer systems is not connected to a third user's computer system different from the first user, the user interface does not scroll in response to receiving the first message and in response to receiving the second message.
[0195] It should be noted that the above is relative to method 1300 (e.g., Figure 13 The details of the process described herein also apply in a similar manner to the methods described herein. For example, method 1300 optionally includes one or more features of the various methods described above with reference to method 1000. For example, method 1000 can be used to manage connections between the computer system of method 1300 and other computer systems, enabling the computer system of method 1300 to update one or more instructions. For the sake of brevity, these details will not be repeated below.
[0196] For purposes of explanation, the foregoing description has been presented with reference to specific examples. However, the illustrative discussion above is not intended to be exhaustive or to limit this disclosure to the precise form disclosed. Many modifications and variations are possible based on the teachings above. These examples were chosen and described in order to best explain the principles of these techniques and their practical applications. Others skilled in the art will thus be able to best utilize these techniques and the various examples with modifications suitable for the specific intended use.
[0197] While this disclosure and examples have been fully described with reference to the accompanying drawings, it should be noted that various changes and modifications will become apparent to those skilled in the art. It should be understood that such changes and modifications are considered to be included within the scope of this disclosure and examples as defined by the claims.
[0198] As described above, one aspect of the present invention is the collection and use of data available from various sources to improve the way computer systems communicate with each other. This disclosure contemplates that, in some instances, the collected data may include personal information data that uniquely identifies or can be used to contact or locate specific individuals, such as computer system identifiers and / or device identifiers that can be associated with a person's location. Such personal information data may include and / or be used to locate demographic data, location-based data, telephone numbers, email addresses, home addresses, or any other identifying information.
[0199] This disclosure recognizes that the use of such personal information data in the present invention can benefit users. For example, personal information data can be used to determine how computer systems communicate with each other. Therefore, the use of such personal information data enables better and / or faster communication between computer systems. Furthermore, this disclosure also anticipates other uses of personal information data that benefit users.
[0200] This disclosure also envisions that entities responsible for the collection, analysis, disclosure, transmission, storage, or other use of such personal information data will comply with established privacy policies and / or privacy practices. Specifically, such entities should implement and adhere to privacy policies and measures that are recognized as meeting or exceeding industry or governmental requirements for maintaining the privacy and security of personal information data. For example, personal information from users should be collected for legitimate and reasonable purposes of the entity and not shared or sold outside of these legitimate purposes. Furthermore, such collection should only be conducted after obtaining informed consent from users. Additionally, such entities should take any necessary steps to safeguard and protect access to such personal information data and ensure that others with access to such personal information data comply with their privacy policies and procedures. Furthermore, such entities may subject themselves to third-party assessments to demonstrate their compliance with widely accepted privacy policies and practices.
[0201] Regardless of the foregoing, this disclosure also envisions examples of users selectively blocking the use or access to personal information data. That is, this disclosure contemplates hardware and / or software components to prevent or block access to such personal information data. For example, with regard to image capture, the inventive technology can be configured to allow users to choose to "join" or "opt out" from participating in the collection of personal information data during service registration.
[0202] Therefore, while this disclosure broadly covers the use of personal information data to implement one or more of the various disclosed examples, it also contemplates that various examples can be implemented without access to such personal information data. That is, various examples of the inventive technology will not be rendered inoperable due to the lack of all or part of such personal information data. For example, content can be displayed to a user by inferring location based on non-personal information data or a minimal measure of personal information (such as content being requested by a computer system associated with the user or other non-personal information). Claims (as amended under Article 19 of the Treaty) 1. A method, the method comprising: The browser that identifies the user of the computer system; In response to identifying the browser, a first connection is established between the computer system and one or more other computer systems of the user; This enables the establishment of a second connection between the computer system and the service, wherein the second connection is different from the first connection; When the computer system connects to the one or more other computer systems via the first connection, and when the computer system connects to the service via the second connection, first data about the browser is identified; and In response to the first data identifying the browser: Based on the determination that the first data includes existence data regarding the browser, a message corresponding to the first data is sent via the first connection between the computer system and the one or more other computer systems; and Based on the determination that the first data does not include existing data, the message corresponding to the first data is sent via the second connection. 2. The method according to claim 1, wherein the first connection is a peer connection. 3. The method of claim 1, wherein the first connection includes a client-server connection. 4. The method according to any one of claims 1 to 3, wherein the computer system is connected to the one or more other computer systems via a first connection between the computer system and the one or more other computer systems, and is simultaneously connected to the service via a second connection between the computer system and the service. 5. The method according to any one of claims 1 to 4, further comprising: After the browser detects the presence of the user and during the establishment of the first connection between the computer system and the one or more other computer systems, it is detected that the browser no longer detects the presence of the user; and In response to detecting that the user's presence is no longer detected relative to the browser, the first connection between the computer system and the one or more other computer systems is terminated. 6. The method of claim 5, wherein the presence of the user is not detected when the browser is running in the background. 7. The method of claim 5, wherein the presence of the user is not detected in response to the browser application including the browser being exited. 8. A non-transitory computer-readable medium storing one or more programs configured to be executed by one or more processors of a computer system, the one or more programs including instructions for performing the method according to any one of claims 1 to 7. 9. A computer system, the computer system comprising: One or more processors; and A memory storing one or more programs configured to be executed by the one or more processors, the one or more programs including instructions for performing the method according to any one of claims 1 to 7. 10. A computer system, the computer system comprising: Apparatus for performing the method according to any one of claims 1 to 7. 11. A computer program product comprising one or more programs configured to be executed by one or more processors of a computer system, the one or more programs comprising instructions for performing the method according to any one of claims 1 to 7. 12. A non-transitory computer-readable storage medium storing one or more programs configured to be executed by one or more processors of a computer system, the one or more programs including instructions for performing the following operations: The browser that identifies the user of the computer system; In response to identifying the browser, a first connection is established between the computer system and one or more other computer systems of the user; This enables the establishment of a second connection between the computer system and the service, wherein the second connection is different from the first connection; When the computer system connects to the one or more other computer systems via the first connection, and when the computer system connects to the service via the second connection, first data about the browser is identified; and In response to the first data identifying the browser: Based on the determination that the first data includes existence data regarding the browser, a message corresponding to the first data is sent via the first connection between the computer system and the one or more other computer systems; and Based on the determination that the first data does not include existing data, the message corresponding to the first data is sent via the second connection. 13. A computer system, the computer system comprising: One or more processors; and The memory stores one or more programs configured to be executed by the one or more processors, the one or more programs including instructions for the following operations: The browser that identifies the user of the computer system; In response to identifying the browser, a first connection is established between the computer system and one or more other computer systems of the user; This enables the establishment of a second connection between the computer system and the service, wherein the second connection is different from the first connection; When the computer system connects to the one or more other computer systems via the first connection, and when the computer system connects to the service via the second connection, first data about the browser is identified; and In response to the first data identifying the browser: Based on the determination that the first data includes existence data regarding the browser, a message corresponding to the first data is sent via the first connection between the computer system and the one or more other computer systems; and Based on the determination that the first data does not include existing data, the message corresponding to the first data is sent via the second connection. 14. A computer system, the computer system comprising: A device used for: identifying a user associated with a computer system; A means for performing the following operation: in response to identifying the browser, causing a first connection to be established between the computer system and one or more other computer systems of the user; A means for performing the following operation: establishing a second connection between the computer system and the service, wherein the second connection is different from the first connection; A means for: identifying first data about the browser when the computer system connects to the one or more other computer systems via the first connection, and when the computer system connects to the service via the second connection; and In response to the first data identifying the browser: A means for performing the following operations: based on determining that the first data includes existence data regarding the browser, sending a message corresponding to the first data via the first connection between the computer system and the one or more other computer systems; and An apparatus for the following operation: based on determining that the first data does not include existing data, sending a message corresponding to the first data via a second connection. 15. A computer program product comprising one or more programs configured to be executed by one or more processors of a computer system, the one or more programs comprising instructions for performing the following operations: The browser that identifies the user of the computer system; In response to identifying the browser, a first connection is established between the computer system and one or more other computer systems of the user; This enables the establishment of a second connection between the computer system and the service, wherein the second connection is different from the first connection; When the computer system connects to the one or more other computer systems via the first connection, and when the computer system connects to the service via the second connection, first data about the browser is identified; and In response to the first data identifying the browser: Based on the determination that the first data includes existence data regarding the browser, a message corresponding to the first data is sent via the first connection between the computer system and the one or more other computer systems; and Based on the determination that the first data does not include existing data, the message corresponding to the first data is sent via the second connection. 16. A method, the method comprising: This enables the establishment of a first connection between the first user's first computer system and the first user's second computer system, which is different from the first user's first computer system. The first part of the subset of the identified content; and After the first connection is established and after the first portion of the subset of identified content: Based on the determination of the subset of content, the presence of the first user using the first user's first computer system is detected, and the subset of content is designed to be shared, such that a second connection is established between the first user's first computer system and a third user's third computer system, different from the first user, while maintaining the first connection; and Based on the determination that the presence of the first user using the first user's first computer system is detected relative to the subset of content and that the subset of content is not designed to be shared, the first connection is maintained without establishing a second connection between the first user's first computer system and the second user's third computer system. 17. The method according to claim 16, further comprising: While maintaining the first connection and the second connection, it is identified that the presence of the first user has switched from being detected in the first portion of the subset of content to being detected in the second portion of the subset of content; and In response to the detection of the presence of the first user having shifted from the first portion of the subset of content to the second portion of the subset of content: Send a first message via the first connection; and The second message is sent via the second connection. 18. The method of claim 17, wherein the content of the first message is different from the content of the second message. 19. The method according to claim 17, wherein the content of the first message is the same as the content of the second message. 20. The method according to any one of claims 18 to 19, wherein the transmission of the first message takes precedence over the transmission of the second message. 21. The method according to any one of claims 18 to 20, wherein one or more of the content of the first message and the content of the second message comprises one or more operations from the group consisting of: identifying information about the second part; media playback information about the second part; scroll positioning information about the second part; selection text information about the second part; table text information about the second part; and / or cursor position information about the second part. 22. The method according to any one of claims 18 to 21, wherein one or more of the content of the first message and the content of the second message include conflict-free copy data type information. 23. The method according to any one of claims 18 to 22, wherein one or more of the content of the first message and the content of the second message include time information. 24. The method according to any one of claims 16 to 23, wherein the subset of content is a first subset of content, the method further comprising: While maintaining the first connection and the second connection, the presence of the first user is detected to have switched from being detected as a first subset of content to being detected as a second subset of content, which is different from the first subset of content; and In response to the detection of the presence of the first user switching from being detected with respect to the first subset of content to being detected with respect to the second subset of content, a third connection is established between the computer system and a fourth computer system with a third user who is different from the first user and the second user. 25. The method according to claim 24, further comprising: In response to the detection of the presence of the first user switching from the first subset of content to the second subset of content, the first connection is maintained while the third connection is provided. 26. The method according to any one of claims 16 to 25, wherein a fourth connection with the server is established simultaneously with the establishment of one or more of the first connection and the second connection. 27. The method according to claim 26, further comprising: Receive messages; and In response to receiving the message: Based on the determination that the message includes existing data, data corresponding to the message is sent via one or more of the first and second connections, without sending the data corresponding to the message via the third connection; and Based on the determination that the message does not contain existing data, the data corresponding to the message is sent via the third connection, without sending the data corresponding to the message via the first connection and the second connection. 28. A non-transitory computer-readable medium storing one or more programs configured to be executed by one or more processors of a computer system, the one or more programs including instructions for performing the method according to any one of claims 16 to 27. 29. A computer system, the computer system comprising: One or more processors; and A memory storing one or more programs configured to be executed by the one or more processors, the one or more programs including instructions for performing the method according to any one of claims 16 to 27. 30. A computer system, the computer system comprising: Apparatus for performing the method according to any one of claims 16 to 27. 31. A computer program product comprising one or more programs configured to be executed by one or more processors of a computer system, the one or more programs comprising instructions for performing the method according to any one of claims 16 to 27. 32. A non-transitory computer-readable storage medium storing one or more programs configured to be executed by one or more processors of a first computer system of a first user, the one or more programs including instructions for performing the following operations: This enables the establishment of a first connection between the first user's first computer system and a second computer system of the first user that is different from the first user's first computer system; The first part of the subset of the identified content; and After the first connection is established and after the first portion of the subset of identified content: Based on the determination of the subset of content, the presence of the first user using the first user's first computer system is detected, and the subset of content is designed to be shared, such that a second connection is established between the first user's first computer system and a third user's third computer system, different from the first user, while maintaining the first connection; and Based on the determination that the presence of the first user using the first user's first computer system is detected relative to the subset of content and that the subset of content is not designed to be shared, the first connection is maintained without establishing a second connection between the first user's first computer system and the second user's third computer system. 33. A first computer system for a first user, the first computer system comprising: One or more processors; and The memory stores one or more programs configured to be executed by the one or more processors, the one or more programs including instructions for the following operations: This enables the establishment of a first connection between the first user's first computer system and a second computer system of the first user that is different from the first user's first computer system; The first part of the subset of the identified content; and After the first connection is established and after the first portion of the subset of identified content: Based on the determination of the subset of content, the presence of the first user using the first user's first computer system is detected, and the subset of content is designed to be shared, such that a second connection is established between the first user's first computer system and a third user's third computer system, different from the first user, while maintaining the first connection; and Based on the determination that the presence of the first user using the first user's first computer system is detected relative to the subset of content and that the subset of content is not designed to be shared, the first connection is maintained without establishing a second connection between the first user's first computer system and the second user's third computer system. 34. A first computer system for a first user, the first computer system comprising: A device for the following operation: establishing a first connection between the first user's first computer system and a second computer system of the first user that is different from the first user's second computer system; A device for the following operations: identifying a first portion of a subset of content; and After the first connection is established and after the first portion of the subset of identified content: A device for operating as follows: detecting the presence of a first user using a first computer system of the first user, based on a subset of content, and the subset of content being designed to be shared, such that a second connection is established between the first computer system of the first user and a third computer system of a second user different from the first user, while maintaining the first connection; and A device for: based on determining that the presence of the first user using the first user's first computer system is detected relative to the subset of content and that the subset of content is not designed to be shared, maintaining the first connection without establishing a second connection between the first user's first computer system and the second user's third computer system. 35. A computer program product comprising one or more programs configured to be executed by one or more processors of a first computer system of a first user, the one or more programs comprising instructions for performing the following operations: This enables the establishment of a first connection between the first user's first computer system and the first user's second computer system, which is different from the first user's first computer system. The first part of the subset of the identified content; and After the first connection is established and after the first portion of the subset of identified content: Based on the determination of the subset of content, the presence of a first user using the first user's first computer system is detected, and the subset of content is designed to be shared, such that a second connection is established between the first user's first computer system and a third user's third computer system, different from the first user, while maintaining the first connection; and Based on the determination that the presence of the first user using the first user's first computer system is detected relative to the subset of content and that the subset of content is not designed to be shared, the first connection is maintained without establishing a second connection between the first user's first computer system and the second user's third computer system. 36. A method, the method comprising: A first computer system of a first user, wherein the first computer system communicates with and is associated with a display generation component: The first indication that the presence of a second user is detected is displayed via the display generation component regarding a first portion of a subset of the content, wherein the subset of the content is shared between the first user and the second user, wherein the first user's first computer system is connected to the second user's second computer system and is not connected to the second user's third computer system, which is different from the second user's second computer system, and wherein the second user is different from the first user; Receive a message when the first instruction is displayed; and Based on the received message: Based on the fact that the second computer system of the second user is active relative to the second portion of the subset of content that is different from the first portion of the subset of content, a second indication of the detection of the presence of the second user is displayed via the display generation component regarding the second portion of the subset of content, without displaying the first indication; and According to the second user, the third computer system is active relative to the second portion of the subset of content, and the second instruction is displayed via the display generation component, without displaying the first instruction. 37. The method of claim 36, wherein the second computer system of the second user and the third computer system of the second user communicate with each other. 38. The method according to any one of claims 36 to 37, further comprising: In conjunction with receiving the message and based on the fact that the second part of the subset of content is active according to the fourth computer system of a third user different from the first user and the second user, a third indication of detecting the presence of the third user is displayed via the display generation component regarding the second part of the subset of content, while the first indication continues to be displayed. 39. The method according to any one of claims 36 to 38, wherein: The message includes a first amount of content, provided that the second computer system of the second user is active relative to the second portion of the subset of content; and According to the second user, the third computer system is active relative to the second portion of the subset of content, and the message includes a second amount of content that is less than the first amount of content. 40. The method of claim 39, wherein the message comprising the first amount of content has location data associated with the second portion of the subset of content, and wherein the message comprising the second amount of content does not have location data associated with the second portion of the subset of content. 41. The method according to any one of claims 36 to 40, the method further comprising: Based on the received message and the fact that the second part of the subset of content of the second user's third computer system is active, the connection to the second user's third computer system is abandoned. 42. The method according to any one of claims 36 to 41, wherein: Based on the received message: The message is received from the second user's second computer system, rather than the second user's third computer system, based on the fact that the second part of the subset of the content is active in relation to the second user's second computer system. The message is received from the second user's third computer system, rather than the second user's second computer system, if the second part of the subset of content is active according to the second user's third computer system. 43. The method according to any one of claims 36 to 42, wherein the subset of content is a first subset of content, the method further comprising: The second computer system of the second user is disconnected from the third computer system of the second user, based on the fact that a third portion of the second subset of the content, which is different from the first subset of the content, is active and the second subset of the content is not shared with the first user; and According to the second user, the third computer system is active relative to the third part of the second subset of the content and the second subset of the content is not shared with the first user, and is disconnected from the second user's second computer system. 44. The method of claim 43, wherein the subset of content is a first subset of content, the method further comprising: Based on the fact that the second user's second computer system is active relative to the third portion of the second subset of the content and the second subset of the content is not shared with the first user, the display of the first instruction and the second instruction is abandoned; and Based on the fact that the third computer system of the second user is active relative to the third part of the second subset of the content and the second subset of the content is not shared with the first user, the display of the first instruction and the second instruction is abandoned. 45. A non-transitory computer-readable medium storing one or more programs configured to be executed by one or more processors of a first computer system of a first user, wherein the first computer system communicates with a display generation component, the one or more programs comprising instructions for performing the method according to any one of claims 36 to 44. 46. A first computer system for a first user, wherein the first computer system communicates with and is associated with a display generation component, the first computer system comprising: One or more processors; and A memory storing one or more programs configured to be executed by the one or more processors, the one or more programs including instructions for performing the method according to any one of claims 36 to 44. 47. A first computer system for a first user, the first computer system communicating with a display generation component, the first computer system comprising: Apparatus for performing the method according to any one of claims 36 to 44. 48. A computer program product comprising one or more programs configured to be executed by one or more processors of a first computer system of a first user, wherein the first computer system communicates with a display generation component, the one or more programs comprising instructions for performing the method according to any one of claims 36 to 44. 49. A non-transitory computer-readable storage medium storing one or more programs configured to be executed by one or more processors of a first computer system of a first user, wherein the first computer system communicates with a display generation component, and wherein the one or more programs include instructions for: The first indication that the presence of a second user is detected is displayed via the display generation component regarding a first portion of a subset of the content, wherein the subset of the content is shared between the first user and the second user, wherein the first user's first computer system is connected to the second user's second computer system and is not connected to the second user's third computer system, which is different from the second user's second computer system, and wherein the second user is different from the first user; Receive a message when the first instruction is displayed; and Based on the received message: Based on the fact that the second computer system of the second user is active relative to the second portion of the subset of content that is different from the first portion of the subset of content, a second indication of the detection of the presence of the second user is displayed via the display generation component regarding the second portion of the subset of content, without displaying the first indication; and According to the second user, the third computer system is active relative to the second portion of the subset of content, and the second instruction is displayed via the display generation component, without displaying the first instruction. 50. A first computer system for a first user, wherein the first computer system communicates with a display generation component, the first computer system comprising: One or more processors; and The memory stores one or more programs configured to be executed by the one or more processors, the one or more programs including instructions for the following operations: The first indication that the presence of a second user is detected is displayed via the display generation component regarding a first portion of a subset of the content, wherein the subset of the content is shared between the first user and the second user, wherein the first user's first computer system is connected to the second user's second computer system and is not connected to the second user's third computer system, which is different from the second user's second computer system, and wherein the second user is different from the first user; Receive a message when the first instruction is displayed; and Based on the received message: Based on the fact that the second computer system of the second user is active relative to the second portion of the subset of content that is different from the first portion of the subset of content, a second indication of the detection of the presence of the second user is displayed via the display generation component regarding the second portion of the subset of content, without displaying the first indication; and According to the second user, the third computer system is active relative to the second portion of the subset of content, and the second instruction is displayed via the display generation component, without displaying the first instruction. 51. A first computer system for a first user, wherein the first computer system communicates with a display generation component, the first computer system comprising: A device for the following operation: displaying a first indication of detecting the presence of a second user via the display generation component regarding a first portion of a subset of content, wherein the subset of content is shared between the first user and the second user, wherein the first user's first computer system is connected to the second user's second computer system and not connected to the second user's third computer system which is different from the second user's second computer system, and wherein the second user is different from the first user; A device for: receiving a message when the first instruction is displayed; and Based on the received message: A device for operating as follows: Based on the second user's second computer system being active relative to a second portion of the subset of content that differs from the first portion of the subset of content, displaying via the display generation component a second indication that the presence of the second user has been detected regarding the second portion of the subset of content, without displaying the first indication; and The apparatus is used to display the second instruction via the display generation component, without displaying the first instruction, based on the fact that the third computer system of the second user is active with respect to the second portion of the subset of content. 52. A computer program product comprising one or more programs configured to be executed by one or more processors of a first computer system of a first user, wherein the first computer system communicates with and is associated with a display generation component, the one or more programs comprising instructions for: The first indication that the presence of a second user is detected is displayed via the display generation component regarding a first portion of a subset of the content, wherein the subset of the content is shared between the first user and the second user, wherein the first user's first computer system is connected to the second user's second computer system and is not connected to the second user's third computer system, which is different from the second user's second computer system, and wherein the second user is different from the first user; Receive a message when the first instruction is displayed; and Based on the received message: Based on the fact that the second computer system of the second user is active relative to the second portion of the subset of content that is different from the first portion of the subset of content, a second indication of the detection of the presence of the second user is displayed via the display generation component regarding the second portion of the subset of content, without displaying the first indication; and According to the second user, the third computer system is active relative to the second portion of the subset of content, and the second instruction is displayed via the display generation component, without displaying the first instruction. 53. A method, the method comprising: When instructing the first user to scroll to a first scroll position on the user interface, receive a first message that the first user's first computer system has scrolled to a second position on the user interface; In response to receiving the first message, the system indicates that the first user's scroll position is in a second scroll position, which is different from the first scroll position; After indicating that the first user's scroll position is in the second scroll position and before indicating that the first user's scroll position is in the first different scroll position, a second message is received indicating that the first user's second computer system has scrolled to a third position on the user interface, wherein the second computer system is different from the first computer system; and In response to receiving the second message, the system indicates that the first user's scroll position is in a third scroll position, which is different from the second scroll position, instead of indicating that the first user's scroll position is in the second scroll position. 54. The method according to claim 53, further comprising: After instructing the first user that the scroll position is in the third scroll position and before instructing the first user that the scroll position is in the second different scroll position, a third message is received indicating that the second user's computer system has scrolled to a fourth position different from the third position, and the first user's scroll position is continued to be instructed that the first user's scroll position is in the third scroll position, wherein the second user is different from the first user. 55. The method according to any one of claims 53 to 54, wherein the set of user interfaces of the user interface is shared between the first user and the user of the computer system. 56. The method according to claim 55, further comprising: When instructing the first user on the scroll positioning, the set of user interfaces is detected to no longer be shared with the first user; and In response to detecting that the set of user interfaces is no longer shared with the first user, the scroll positioning instructing the first user is stopped. 57. The method according to any one of claims 55 to 56, further comprising: When instructing the first user on the scrolling position, it is detected that the first computer system has switched from displaying the user interface to displaying a different user interface; and In response to detecting that the first computer system has switched from displaying the user interface to displaying a different user interface, the scrolling positioning instructing the first user is stopped. 58. The method of claim 57, wherein the scrolling positioning of the first user is stopped regardless of whether the state of the second computer system has changed. 59. The method according to any one of claims 53 to 58, wherein the second rolling position is on a first side of the first rolling position, and wherein the third rolling position is on a second side of the first rolling position that is different from the first side of the first rolling position. 60. The method according to any one of claims 53 to 59, wherein when the first computer system and the second computer system are connected to an active session represented by a respective subset of a user interface including the user interface, the user interface is scrolled in response to receiving the first message and in response to receiving the second message. 61. The method according to any one of claims 53 to 60, wherein when the first computer system and the second computer system are connected to each other, the user interface is scrolled in response to receiving the first message and in response to receiving the second message. 62. The method according to any one of claims 53 to 61, wherein when at least one of the first computer system and the second computer system is connected to a computer system of a third user different from the first user, the user interface is scrolled in response to receiving the first message and in response to receiving the second message. 63. A non-transitory computer-readable medium storing one or more programs configured to be executed by one or more processors of a computer system, the one or more programs including instructions for performing the method according to any one of claims 53 to 62. 64. A computer system, the computer system comprising: One or more processors; and A memory storing one or more programs configured to be executed by the one or more processors, the one or more programs including instructions for performing the method according to any one of claims 53 to 62. 65. A computer system, the computer system comprising: Apparatus for performing the method according to any one of claims 53 to 62. 66. A computer program product comprising one or more programs configured to be executed by one or more processors of a computer system, the one or more programs comprising instructions for performing the method according to any one of claims 53 to 62. 67. A non-transitory computer-readable storage medium storing one or more programs configured to be executed by one or more processors of a computer system, the one or more programs including instructions for: When instructing the first user to scroll to a first scroll position on the user interface, receive a first message that the first user's first computer system has scrolled to a second position on the user interface; In response to receiving the first message, the system indicates that the first user's scroll position is in a second scroll position, which is different from the first scroll position; After indicating that the first user's scroll position is in the second scroll position and before indicating that the first user's scroll position is in the first different scroll position, a second message is received indicating that the first user's second computer system has scrolled to a third position on the user interface, wherein the second computer system is different from the first computer system; and In response to receiving the second message, the system indicates that the first user's scroll position is in a third scroll position, which is different from the second scroll position, instead of indicating that the first user's scroll position is in the second scroll position. 68. A computer system, the computer system comprising: One or more processors; and The memory stores one or more programs configured to be executed by the one or more processors, the one or more programs including instructions for the following operations: When instructing the first user to scroll to a first scroll position on the user interface, receive a first message that the first user's first computer system has scrolled to a second position on the user interface; In response to receiving the first message, the system indicates that the first user's scroll position is in a second scroll position, which is different from the first scroll position; After indicating that the first user's scroll position is in the second scroll position and before indicating that the first user's scroll position is in the first different scroll position, a second message is received indicating that the first user's second computer system has scrolled to a third position on the user interface, wherein the second computer system is different from the first computer system; and In response to receiving the second message, the system indicates that the first user's scroll position is in a third scroll position, which is different from the second scroll position, instead of indicating that the first user's scroll position is in the second scroll position. 69. A computer system, the computer system comprising: A device for the following operation: when indicating that the scroll position of the first user is at a first scroll position on the user interface, receiving a first message that the first user's first computer system has scrolled to a second position on the user interface; A device for the following operation: in response to receiving the first message, instructing the first user that the scroll position is in a second scroll position that is different from the first scroll position; A device for: receiving a second message that the first user's second computer system has scrolled to a third position on the user interface, after indicatively indicating that the first user's scroll position is in a second scroll position and before indicatively indicating that the first user's scroll position is in a first different scroll position, wherein the second computer system is different from the first computer system; and A device for: in response to receiving the second message, indicating that the first user's scroll position is in a third scroll position different from the second scroll position, without indicating that the first user's scroll position is in the second scroll position. 70. A computer program product comprising one or more programs configured to be executed by one or more processors of a computer system, the one or more programs including instructions for performing the following operations: When instructing the first user to scroll to a first scroll position on the user interface, receive a first message that the first user's first computer system has scrolled to a second position on the user interface; In response to receiving the first message, the system indicates that the first user's scroll position is in a second scroll position, which is different from the first scroll position; After indicating that the first user's scroll position is in the second scroll position and before indicating that the first user's scroll position is in the first different scroll position, a second message is received indicating that the first user's second computer system has scrolled to a third position on the user interface, wherein the second computer system is different from the first computer system; and In response to receiving the second message, the system indicates that the first user's scroll position is in a third scroll position, which is different from the second scroll position, instead of indicating that the first user's scroll position is in the second scroll position.
Claims
1. A method comprising: identifying a browser associated with a user of a computer system; in response to identifying the browser, causing a first connection to be established between the computer system and one or more other computer systems of the user; causing a second connection to be established between the computer system and a service, wherein the second connection is different from the first connection; while the computer system is connected to the one or more other computer systems via the first connection, and while the computer system is connected to the service via the second connection, identifying first data about the browser; and in response to identifying the first data about the browser: in accordance with a determination that the first data includes presence data about the browser, sending a message corresponding to the first data via the first connection between the computer system and the one or more other computer systems; and in accordance with a determination that the first data does not include presence data, sending the message corresponding to the first data via the second connection.
2. The method of claim 1, wherein the first connection is a peer-to-peer connection.
3. The method of claim 1, wherein the first connection comprises a client-server connection.
4. The method of any of claims 1-3, wherein the computer system is connected to the one or more other computer systems via the first connection between the computer system and the one or more other computer systems while being connected to the service via the second connection between the computer system and the service.
5. The method of any of claims 1-4, further comprising: after detecting presence of the user with respect to the browser and while the first connection between the computer system and the one or more other computer systems is established, detecting that the presence of the user is no longer detected with respect to the browser; and in response to detecting that the presence of the user is no longer detected with respect to the browser, causing the first connection between the computer system and the one or more other computer systems to be terminated.
6. The method of claim 5, wherein the presence of the user is not detected while the browser is running in the background.
7. The method of claim 5, wherein the presence of the user is not detected in response to a browser application that includes the browser being exited.
8. A non-transitory computer-readable medium storing one or more programs configured to be executed by one or more processors of a computer system, the one or more programs comprising instructions for performing the method of any of claims 1-7.
9. A computer system comprising: one or more processors; and memory storing one or more programs configured to be executed by the one or more processors, the one or more programs comprising instructions for performing the method of any of claims 1-7. 10. A computer system, the computer system comprising: means for performing the method of any of claims 1-7.
11. A computer program product, the computer program product comprising one or more programs configured to be executed by one or more processors of a computer system, the one or more programs including instructions for performing the method of any of claims 1-7.
12. A non-transitory computer-readable storage medium storing one or more programs configured to be executed by one or more processors of a computer system, the one or more programs including instructions for: identifying a browser associated with a user of the computer system; in response to identifying the browser, causing a first connection to be established between the computer system and one or more other computer systems of the user; causing a second connection to be established between the computer system and a service, wherein the second connection is different from the first connection; while the computer system is connected to the one or more other computer systems via the first connection, and while the computer system is connected to the service via the second connection, identifying first data about the browser; and in response to identifying the first data about the browser: in accordance with a determination that the first data includes presence data about the browser, sending a message corresponding to the first data via the first connection between the computer system and the one or more other computer systems; and in accordance with a determination that the first data does not include presence data, sending the message corresponding to the first data via the second connection.
13. A computer system, the computer system comprising: one or more processors; and memory storing one or more programs configured to be executed by the one or more processors, the one or more programs including instructions for: identifying a browser associated with a user of the computer system; in response to identifying the browser, causing a first connection to be established between the computer system and one or more other computer systems of the user; causing a second connection to be established between the computer system and a service, wherein the second connection is different from the first connection; while the computer system is connected to the one or more other computer systems via the first connection, and while the computer system is connected to the service via the second connection, identifying first data about the browser; and in response to identifying the first data about the browser: in accordance with a determination that the first data includes presence data about the browser, sending a message corresponding to the first data via the first connection between the computer system and the one or more other computer systems; and in accordance with a determination that the first data does not include presence data, sending the message corresponding to the first data via the second connection.
14. A computer system, the computer system comprising: An apparatus for: identifying a browser associated with a user of a computer system; in response to identifying the browser, causing a first connection to be established between the computer system and one or more other computer systems of the user; causing a second connection to be established between the computer system and a service, wherein the second connection is different from the first connection; while the computer system is connected to the one or more other computer systems via the first connection and while the computer system is connected to the service via the second connection, identifying first data about the browser; and in response to identifying the first data about the browser: in accordance with a determination that the first data includes presence data about the browser, sending a message corresponding to the first data via the first connection between the computer system and the one or more other computer systems; and in accordance with a determination that the first data does not include presence data, sending the message corresponding to the first data via the second connection.
15. A computer program product, the computer program product comprising one or more programs configured to be executed by one or more processors of a computer system, the one or more programs including instructions for: identifying a browser associated with a user of a computer system; in response to identifying the browser, causing a first connection to be established between the computer system and one or more other computer systems of the user; causing a second connection to be established between the computer system and a service, wherein the second connection is different from the first connection; while the computer system is connected to the one or more other computer systems via the first connection and while the computer system is connected to the service via the second connection, identifying first data about the browser; and in response to identifying the first data about the browser: in accordance with a determination that the first data includes presence data about the browser, sending a message corresponding to the first data via the first connection between the computer system and the one or more other computer systems; and in accordance with a determination that the first data does not include presence data, sending the message corresponding to the first data via the second connection.
16. A method, the method comprising: causing a first connection to be established between a first computer system of a first user and a second computer system of the first user; identifying a first portion of a subset of content; and after causing the first connection to be established and after identifying the first portion of the subset of content: in accordance with a determination that presence of a first user of a first computer system of the first user is detected with respect to the subset and the subset is designed to be shared, causing a second connection to be established between the first computer system of the first user and a third computer system of a second user different from the first user while the first connection is maintained; and in accordance with a determination that the presence of the first computer system of the first user is detected with respect to the subset and the subset is not designed to be shared, causing the first connection to be maintained without causing the second connection to be established between the first computer system of the first user and the third computer system of the second user.
17. The method of claim 16, the method further comprising: while the first connection and the second connection are maintained, identifying that the presence of the first user has switched from being detected with respect to the first portion of the subset to being detected with respect to a second portion of the subset; and in response to identifying that the presence of the first user has switched from being detected with respect to the first portion of the subset to being detected with respect to the second portion of the subset: sending a first message via the first connection; and sending a second message via the second connection.
18. The method of claim 17, wherein content of the first message is different from content of the second message.
19. The method of claim 17, wherein content of the first message is the same as content of the second message.
20. The method of any of claims 18-19, wherein the first message takes precedence over the second message.
21. The method of any of claims 18-20, wherein one or more of the content of the first message and the content of the second message comprises one or more operations from the group comprising: identifying information about the second portion; media playback information about the second portion; scroll positioning information about the second portion; selected text information about the second portion; table text information about the second portion; and / or cursor position information about the second portion.
22. The method of any of claims 18-21, wherein one or more of the content of the first message and the content of the second message comprises conflict-free replicated data type information.
23. The method of any of claims 18-22, wherein one or more of the content of the first message and the content of the second message comprises time information.
24. The method of any of claims 16-23, wherein the subset is a first subset, the method further comprising: while the first connection and the second connection are maintained, identifying that the presence of the first user has switched from being detected with respect to the first subset to being detected with respect to a second subset of content different from the first subset; and in response to identifying that the presence of the first user has switched from being detected relative to the first subset to being detected relative to the second subset, causing a third connection to be established between the computer system and a fourth computer system of a third user different from the first user and the second user.
25. The method of claim 24, the method further comprising: in response to identifying that the presence of the first user has switched from being detected relative to the first subset to being detected relative to the second subset, maintaining the first connection while providing the third connection.
26. The method of any of claims 16-25, wherein a fourth connection to a server is established concurrently with establishing one or more of the first connection and the second connection.
27. The method of claim 26, the method further comprising: receiving a message; and in response to receiving the message: in accordance with a determination that the message includes presence data, sending data corresponding to the message via one or more of the first connection and the second connection without sending data corresponding to the message via the third connection; and in accordance with a determination that the message does not include presence data, sending data corresponding to the message via the third connection without sending data corresponding to the message via the first connection and the second connection.
28. A non-transitory computer-readable medium storing one or more programs configured to be executed by one or more processors of a computer system, the one or more programs including instructions for performing the method of any of claims 16-27.
29. A computer system, the computer system comprising: one or more processors; and memory storing one or more programs configured to be executed by the one or more processors, the one or more programs including instructions for performing the method of any of claims 16-27.
30. A computer system, the computer system comprising: means for performing the method of any of claims 16-27.
31. A computer program product comprising one or more programs configured to be executed by one or more processors of a computer system, the one or more programs including instructions for performing the method of any of claims 16-27.
32. A non-transitory computer-readable storage medium storing one or more programs configured to be executed by one or more processors of a computer system, the one or more programs including instructions for: causing a first connection to be established between a first computer system of a first user and a second computer system of the first user; a first portion identifying a subset of the content; and after causing the first connection to be established and identifying the first portion of the subset of content: in accordance with a determination that presence of a first user of a first computer system is detected with respect to the subset and the subset is designed to be shared, causing a second connection to be established between the first computer system of the first user and a third computer system of a second user different from the first user while the first connection is maintained; and in accordance with a determination that the presence of the first computer system of the first user is detected with respect to the subset and the subset is not designed to be shared, maintaining the first connection without causing the second connection to be established between the first computer system of the first user and the third computer system of the second user.
33. A computer system, the computer system comprising: one or more processors; and memory storing one or more programs configured to be executed by the one or more processors, the one or more programs including instructions for: causing a first connection to be established between a first computer system of a first user and a second computer system of the first user; identifying a first portion of a subset of content; and after causing the first connection to be established and identifying the first portion of the subset of content: in accordance with a determination that presence of a first user of a first computer system is detected with respect to the subset and the subset is designed to be shared, causing a second connection to be established between the first computer system of the first user and a third computer system of a second user different from the first user while the first connection is maintained; and in accordance with a determination that the presence of the first computer system of the first user is detected with respect to the subset and the subset is not designed to be shared, maintaining the first connection without causing the second connection to be established between the first computer system of the first user and the third computer system of the second user.
34. A computer system, the computer system comprising: means for causing a first connection to be established between a first computer system of a first user and a second computer system of the first user; means for identifying a first portion of a subset of content; and after causing the first connection to be established and identifying the first portion of the subset of content: in accordance with a determination that presence of a first user of a first computer system is detected with respect to the subset and the subset is designed to be shared, causing a second connection to be established between the first computer system of the first user and a third computer system of a second user different from the first user while the first connection is maintained; and in accordance with a determination that the presence of the first computer system of the first user is detected with respect to the subset and the subset is not designed to be shared, maintaining the first connection without causing the second connection to be established between the first computer system of the first user and the third computer system of the second user.
35. A computer program product, the computer program product comprising one or more programs configured to be executed by one or more processors of a computer system, the one or more programs including instructions for: causing a first connection to be established between a first computer system of a first user and a second computer system of the first user; a first portion identifying a subset of the content; and after causing the first connection to be established and identifying the first portion of the subset of content: in accordance with a determination that presence of a first user using the first computer system of the first user is detected with respect to the subset and the subset is designed to be shared, causing a second connection to be established between the first computer system of the first user and a third computer system of a second user different from the first user while the first connection is maintained; and in accordance with a determination that the presence of the first computer system of the first user is detected with respect to the subset and the subset is not designed to be shared, maintaining the first connection without causing the second connection to be established between the first computer system of the first user and the third computer system of the second user.
36. A method, the method comprising: by a first computer system that is in communication with a display generation component and that is associated with a first user: displaying, via the display generation component, a first indication that presence of a second user was detected with respect to a first portion of a subset of content, wherein the subset of content is shared between the first user and the second user, wherein the first computer system is connected to a second computer system of the second user and is not connected to a third computer system of the second user, and wherein the second user is different from the first user; while displaying the first indication, receiving a message; and in conjunction with receiving the message: in accordance with the second computer system being active with respect to a second portion of the subset of content that is different from the first portion of the subset of content, displaying, via the display generation component, a second indication that presence of the second user was detected with respect to the second portion of the subset of content without displaying the first indication; and in accordance with the third computer system being active with respect to the second portion of the subset of content, displaying the second indication without displaying the first indication via the display generation component.
37. The method of claim 36, wherein the second computer system and the third computer system are in communication with one another.
38. The method of any of claims 36-37, the method further comprising: in conjunction with receiving the message and in accordance with a fourth computer system of a third user different from the first user and the second user being active with respect to the second portion of the subset of content, displaying, via the display generation component, a third indication that presence of the third user was detected with respect to the second portion of the subset of content while continuing to display the first indication.
39. The method of any of claims 36-38, wherein: The message includes a first amount of content, provided that the second portion of the second computer system is active relative to the subset of content. as well as According to the third computer system, the second part of the subset of the content is active, and the message includes a second amount of content that is less than the first amount of content.
40. The method of claim 39, wherein the message comprising the first amount of content has location data associated with the second portion of the subset of content, and wherein the message comprising the second amount of content does not have location data associated with the second portion of the subset of content.
41. The method according to any one of claims 36 to 40, the method further comprising: Upon receiving the message and based on the fact that the second portion of the subset of content of the third computer system is active, the connection to the third computer system is abandoned.
42. The method according to any one of claims 36 to 41, wherein: Based on the received message: The message is received from the second computer system, rather than the third computer system, based on the fact that the second part of the subset of the content is active in the second computer system. The message is received from the second computer system, rather than the third computer system, if the second part of the subset of the content is active in the third computer system.
43. The method according to any one of claims 36 to 42, wherein the subset of content is a first subset of content, the method further comprising: The second computer system disconnects from the second computer system if a third part of the second subset of the content, which is different from the first subset of the content, is active and the second subset of the content is not shared with the first user. as well as The third computer system disconnects from the second computer system if the third part of the second subset of the content is active and the second subset of the content is not shared with the first user.
44. The method of claim 43, wherein the subset of content is a first subset of content, the method further comprising: If the third part of the second computer system relative to the second subset of the content is active and the second subset of the content is not shared with the first user, then the display of the first instruction and the second instruction is abandoned. as well as If the third computer system is active relative to the third portion of the second subset of the content and the second subset of the content is not shared with the first user, then the display of the first instruction and the second instruction is abandoned.
45. A non-transitory computer-readable medium storing one or more programs configured to be executed by one or more processors of a first computer system in communication with a display generation component and associated with a first user, the one or more programs including instructions for performing the method according to any one of claims 36 to 44.
46. A first computer system communicating with a display generation component and associated with a first user, the first computer system comprising: One or more processors; as well as A memory storing one or more programs configured to be executed by the one or more processors, the one or more programs including instructions for performing the method according to any one of claims 36 to 44.
47. A first computer system communicating with a display generation component and associated with a first user, the first computer system comprising: Apparatus for performing the method according to any one of claims 36 to 44.
48. A computer program product comprising one or more programs configured to be executed by one or more processors of a first computer system in communication with a display generation component and associated with a first user, the one or more programs comprising instructions for performing the method according to any one of claims 36 to 44.
49. A non-transitory computer-readable storage medium storing one or more programs configured to be executed by one or more processors of a first computer system in communication with a display generation component and associated with a first user, the one or more programs including instructions for: The presence of a second user is detected by displaying a first portion of a subset of the content via the display generation component, wherein the subset of the content is shared between the first user and the second user, wherein the first computer system is connected to the second user's second computer system and not connected to the second user's third computer system, and wherein the second user is different from the first user; Receive a message when the first instruction is displayed; as well as Based on the received message: If the second computer system is active with respect to a second portion of the subset of content that is different from the first portion of the subset of content, a second indication is displayed via the display generation component regarding the detection of the presence of the second user with respect to the second portion of the subset of content, without displaying the first indication; as well as The second instruction is displayed via the display generation component if the second portion of the subset of content is active in the third computer system. Instead of displaying the first instruction.
50. A first computer system communicating with a display generation component and associated with a first user, the first computer system comprising: One or more processors; as well as The memory stores one or more programs configured to be executed by the one or more processors, the one or more programs including instructions for the following operations: The presence of a second user is detected by displaying a first portion of a subset of the content via the display generation component, wherein the subset of the content is shared between the first user and the second user, wherein the first computer system is connected to the second user's second computer system and not connected to the second user's third computer system, and wherein the second user is different from the first user; Receive a message when the first instruction is displayed; as well as Based on the received message: If the second computer system is active with respect to a second portion of the subset of content that is different from the first portion of the subset of content, a second indication is displayed via the display generation component regarding the detection of the presence of the second user with respect to the second portion of the subset of content, without displaying the first indication; as well as If the second portion of the subset of content is active in the third computer system, the second instruction is displayed via the display generation component, but the first instruction is not displayed.
51. A first computer system communicating with a display generation component and associated with a first user, the first computer system comprising: A device for the following operation: displaying a first indication of the presence of a second user via the display generation component, wherein the subset of content is shared between the first user and the second user, wherein the first computer system is connected to the second user's second computer system and not connected to the second user's third computer system, and wherein the second user is different from the first user; A device for the following operation: receiving a message when the first instruction is displayed; as well as Based on the received message: The apparatus is used to: display a second indication via the display generation component that the presence of the second user has been detected regarding the second part of the subset of content, which is different from the first part of the subset of content, based on the fact that the second computer system is active. as well as The apparatus is used to display the second instruction via the display generation component, without displaying the first instruction, based on the fact that the second portion of the subset of content is active in the third computer system.
52. A computer program product comprising one or more programs configured to be executed by one or more processors of a first computer system in communication with a display generation component and associated with a first user, the one or more programs comprising instructions for: The presence of a second user is detected by displaying a first portion of a subset of the content via the display generation component, wherein the subset of the content is shared between the first user and the second user, wherein the first computer system is connected to the second user's second computer system and not connected to the second user's third computer system, and wherein the second user is different from the first user; Receive a message when the first instruction is displayed; as well as Based on the received message: If the second computer system is active with respect to a second portion of the subset of content that is different from the first portion of the subset of content, a second indication is displayed via the display generation component regarding the detection of the presence of the second user with respect to the second portion of the subset of content, without displaying the first indication; as well as If the second portion of the subset of content is active in the third computer system, the second instruction is displayed via the display generation component, but the first instruction is not displayed.
53. A method, the method comprising: When instructing the first user to scroll to a first scroll position on the user interface, receive a first message that the first user's first computer system has scrolled to a second position on the user interface; In response to receiving the first message, the system indicates that the first user's scroll position is in a second scroll position, which is different from the first scroll position; After indicating that the first user’s scroll position is in the second scroll position and before indicating that the first user’s scroll position is in the first different scroll position, a second message is received that the first user’s second computer system has scrolled to a third position on the user interface, wherein the second computer system is different from the first computer system. as well as In response to receiving the second message, the system indicates that the first user's scroll position is in a third scroll position, which is different from the second scroll position, instead of indicating that the first user's scroll position is in the second scroll position.
54. The method according to claim 53, further comprising: After instructing the first user that the scroll position is in the third scroll position and before instructing the first user that the scroll position is in the second different scroll position, a third message is received indicating that the second user's computer system has scrolled to a fourth position different from the third position, and the first user's scroll position is continued to be instructed that the first user's scroll position is in the third scroll position, wherein the second user is different from the first user.
55. The method according to any one of claims 53 to 54, wherein the set of user interfaces of the user interface is shared between the first user and the user of the computer system.
56. The method according to claim 55, further comprising: When instructing the first user on the scrolling location, the set of user interfaces is detected to no longer be shared with the first user; as well as In response to detecting that the set of user interfaces is no longer shared with the first user, the scroll positioning instructing the first user is stopped.
57. The method according to any one of claims 55 to 56, further comprising: When instructing the first user on the scrolling position, it is detected that the first computer system has switched from displaying the user interface to displaying a different user interface; as well as In response to detecting that the first computer system has switched from displaying the user interface to displaying a different user interface, the scrolling positioning instructing the first user is stopped.
58. The method of claim 57, wherein the scrolling positioning of the first user is stopped regardless of whether the state of the second computer system has changed.
59. The method according to any one of claims 53 to 58, wherein the second rolling position is on a first side of the first rolling position, and wherein the third rolling position is on a second side of the first rolling position that is different from the first side of the first rolling position.
60. The method according to any one of claims 53 to 59, wherein when the first computer system and the second computer system are connected to an active session represented by a respective subset of a user interface including the user interface, the user interface is scrolled in response to receiving the first message and in response to receiving the second message.
61. The method according to any one of claims 53 to 60, wherein when the first computer system and the second computer system are connected to each other, the user interface is scrolled in response to receiving the first message and in response to receiving the second message.
62. The method according to any one of claims 53 to 61, wherein when at least one of the first computer system and the second computer system is connected to a computer system of a third user different from the first user, the user interface is scrolled in response to receiving the first message and in response to receiving the second message.
63. A non-transitory computer-readable medium storing one or more programs configured to be executed by one or more processors of a computer system, the one or more programs including instructions for performing the method according to any one of claims 53 to 62.
64. A computer system, the computer system comprising: One or more processors; as well as A memory storing one or more programs configured to be executed by the one or more processors, the one or more programs including instructions for performing the method according to any one of claims 53 to 62.
65. A computer system, the computer system comprising: Apparatus for performing the method according to any one of claims 53 to 62.
66. A computer program product comprising one or more programs configured to be executed by one or more processors of a computer system, the one or more programs comprising instructions for performing the method according to any one of claims 53 to 62.
67. A non-transitory computer-readable storage medium storing one or more programs configured to be executed by one or more processors of a computer system, the one or more programs including instructions for: When instructing the first user to scroll to a first scroll position on the user interface, receive a first message that the first user's first computer system has scrolled to a second position on the user interface; In response to receiving the first message, the system indicates that the first user's scroll position is in a second scroll position, which is different from the first scroll position; After indicating that the first user’s scroll position is in the second scroll position and before indicating that the first user’s scroll position is in the first different scroll position, a second message is received that the first user’s second computer system has scrolled to a third position on the user interface, wherein the second computer system is different from the first computer system. as well as In response to receiving the second message, the system indicates that the first user's scroll position is in a third scroll position, which is different from the second scroll position, instead of indicating that the first user's scroll position is in the second scroll position.
68. A computer system, the computer system comprising: One or more processors; as well as The memory stores one or more programs configured to be executed by the one or more processors, the one or more programs including instructions for the following operations: When instructing the first user to scroll to a first scroll position on the user interface, receive a first message that the first user's first computer system has scrolled to a second position on the user interface; In response to receiving the first message, the system indicates that the first user's scroll position is in a second scroll position, which is different from the first scroll position; After indicating that the first user’s scroll position is in the second scroll position and before indicating that the first user’s scroll position is in the first different scroll position, a second message is received that the first user’s second computer system has scrolled to a third position on the user interface, wherein the second computer system is different from the first computer system. as well as In response to receiving the second message, the system indicates that the first user's scroll position is in a third scroll position, which is different from the second scroll position, instead of indicating that the first user's scroll position is in the second scroll position.
69. A computer system, the computer system comprising: A device for the following operation: when indicating that the scroll position of the first user is at a first scroll position on the user interface, receiving a first message that the first user's first computer system has scrolled to a second position on the user interface; A device for the following operation: in response to receiving the first message, instructing the first user that the scroll position is in a second scroll position that is different from the first scroll position; A device for the following operation: receiving a second message that the first user's second computer system has scrolled to a third position on the user interface after indicating that the first user's scroll position is in the second scroll position and before indicating that the first user's scroll position is in the first different scroll position, wherein the second computer system is different from the first computer system; as well as A device for: in response to receiving the second message, indicating that the first user's scroll position is in a third scroll position different from the second scroll position, without indicating that the first user's scroll position is in the second scroll position.
70. A computer program product comprising one or more programs configured to be executed by one or more processors of a computer system, the one or more programs including instructions for performing the following operations: When instructing the first user to scroll to a first scroll position on the user interface, receive a first message that the first user's first computer system has scrolled to a second position on the user interface; In response to receiving the first message, the system indicates that the first user's scroll position is in a second scroll position, which is different from the first scroll position; After indicating that the first user’s scroll position is in the second scroll position and before indicating that the first user’s scroll position is in the first different scroll position, a second message is received that the first user’s second computer system has scrolled to a third position on the user interface, wherein the second computer system is different from the first computer system. as well as In response to receiving the second message, the system indicates that the first user's scroll position is in a third scroll position, which is different from the second scroll position, instead of indicating that the first user's scroll position is in the second scroll position.