Real time collaboration and document editing by multiple participants in a content management system
First Claim
1. A method comprising:
- receiving a request to open a content item stored in association with a user account at a content management system (CMS), the request being received by a client application associated with the CMS installed on a client device, the content item being displayed via a native application associated with the content item on the client device;
establishing, by the client application, a peer-to-peer connection with at least one second client device to initiate a collaborative editing session to edit the content item with the at least one second client device;
responsive to the peer-to-peer connection being established, sending a real-time data stream of the content item to the at least one second client device, the real-time data stream being presented on a screen sharing window within a webpage associated with the CMS displayed on the at least one second client device, wherein transmitting the real-time data stream of the content item to the at least one second client device establishes the client device as a host client device for the collaborative editing session;
receiving, by the client application, instructions from the at least one second client device that when executed by the native application on the host client device cause the native application to apply one or more changes to the content item, the instructions corresponding to a user of the at least one second client device making the one or more changes to the content item via the sharing window, wherein the instructions do not include an updated content item with the one or more changes applied thereto; and
providing, by the client application, the instructions to the native application to apply the one or more changes to the content item on the host client device.
4 Assignments
0 Petitions
Accused Products
Abstract
A content management system allows users to collaboratively edit, draft, or otherwise work with the same content item simultaneously by displaying a real-time data stream of a native application displaying a content item on a host device in a screen sharing window of a webpage. The screen sharing window is capable of receiving edit inputs and sending the edit inputs to a client application on the host device. The edit inputs are provided as interpretable code for the native application for the content item and the client application provides the interpretable code to the native application to have the changes corresponding to the edit inputs incorporated into the content item. Further, the cursors of other users participating in the collaborative editing session are displayed in the screen sharing window to allow each participant to view and follow the changes made by the other participants of the session.
55 Citations
20 Claims
-
1. A method comprising:
-
receiving a request to open a content item stored in association with a user account at a content management system (CMS), the request being received by a client application associated with the CMS installed on a client device, the content item being displayed via a native application associated with the content item on the client device; establishing, by the client application, a peer-to-peer connection with at least one second client device to initiate a collaborative editing session to edit the content item with the at least one second client device; responsive to the peer-to-peer connection being established, sending a real-time data stream of the content item to the at least one second client device, the real-time data stream being presented on a screen sharing window within a webpage associated with the CMS displayed on the at least one second client device, wherein transmitting the real-time data stream of the content item to the at least one second client device establishes the client device as a host client device for the collaborative editing session; receiving, by the client application, instructions from the at least one second client device that when executed by the native application on the host client device cause the native application to apply one or more changes to the content item, the instructions corresponding to a user of the at least one second client device making the one or more changes to the content item via the sharing window, wherein the instructions do not include an updated content item with the one or more changes applied thereto; and providing, by the client application, the instructions to the native application to apply the one or more changes to the content item on the host client device. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method comprising:
-
establishing, by a client application of a first client device, a peer-to-peer connection with a second client device to initiate a collaborative editing session to edit a content item with the second client device, the first client device being associated with a first user account and the content item being provided on the first client device via a native application of the content item; sending a real-time data stream of a content item to the at least one second client device over the peer-to-peer connection, the real-time data stream being presented on a screen sharing window within a webpage associated with a second user account displayed on the second client device; receiving, by the client application, interpretable code for one or more changes to the content item being made via the sharing window on the second client, wherein the interpretable code does not include an updated content item with the one or more changes applied thereto; and providing, by the client application, a command corresponding to the interpretable code to the native application on the first client device for the native application to apply the one or more changes to the content item on the first client device. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A non-transitory computer-readable storage medium storing instructions that, when executed by at least one processor, cause a computing device to:
-
present, via a web browser of a client device, a webpage for a content management system (CMS) for display, the webpage providing access to one or more content items associated with a first user account stored with the CMS; send a request to join a collaborative editing session to edit a content item of the one or more content items with one or more additional client devices including a host client device, the content item being displayed by the host client device via a native application associated with the content item, wherein a CMS client application associated with a second user account with the CMS is installed on the host client device; establish, via the web browser, a peer-to-peer connection with the CMS client application of the host client device to join the collaborative editing session; responsive to establishing the peer-to-peer connection, present a screen sharing window within the webpage, the screen sharing window displaying a real-time data stream of the native application displaying the content item received over the peer-to-peer connection from the host client device; and responsive to a cursor of the client device being detected within the screen sharing window, send position information for the cursor within the screen sharing window over the peer-to-peer connection to the CMS client application, the CMS client application receiving the position information and translating the position information to a location of the cursor within the native application on the host client device; receive, from the CMS client application on the host client device, the translated position information for the location of the cursor within the native application on the host client device; present a reproduction of the cursor corresponding to the translated position information for display in the screen sharing window with the real-time data stream of the native application displaying the content item; and responsive to detecting an editing event corresponding to a user of the client device making an edit to the content item via the screen sharing window, send native application interpretable code for the editing event to the CMS client application on the host client device, the CMS client application providing the native application interpretable code to the native application to perform the edit to the content item on the host client device, wherein the interpretable code does not include an updated content item with the one or more changes applied thereto. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification