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, the native application associated with the content item being different from the client application and being controlled by a different operating system process than the client application;
establishing, by the client application, a peer-to-peer connection with a second client device and a third client device to initiate a collaborative editing session to edit the content item with the second client device and the third client device;
responsive to the peer-to-peer connection being established, sending a real-time data stream of the content item to the second client device and the third client device, the real-time data stream being presented on a screen sharing window within a webpage associated with the CMS displayed on the second client device and the third client device;
generating a first cursor overlay identifying a user of the second client device for presentation on the third client device within the screen sharing window with the real-time data stream to a user of the third client device, the first cursor overlay corresponding to an overlay layer separate from the real-time data stream; and
providing the first cursor overlay corresponding to the user of the second client device to the third client device, the first cursor overlay being displayed in the overlay layer separate from the real-time data stream within the screen sharing window on the third client device;
receiving, by the client application, one or more changes to the content item being made via the sharing window on the second client device; and
providing, by the client application, a command corresponding to the one or more changes 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.
2 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.
21 Citations
17 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, the native application associated with the content item being different from the client application and being controlled by a different operating system process than the client application; establishing, by the client application, a peer-to-peer connection with a second client device and a third client device to initiate a collaborative editing session to edit the content item with the second client device and the third client device; responsive to the peer-to-peer connection being established, sending a real-time data stream of the content item to the second client device and the third client device, the real-time data stream being presented on a screen sharing window within a webpage associated with the CMS displayed on the second client device and the third client device; generating a first cursor overlay identifying a user of the second client device for presentation on the third client device within the screen sharing window with the real-time data stream to a user of the third client device, the first cursor overlay corresponding to an overlay layer separate from the real-time data stream; and providing the first cursor overlay corresponding to the user of the second client device to the third client device, the first cursor overlay being displayed in the overlay layer separate from the real-time data stream within the screen sharing window on the third client device; receiving, by the client application, one or more changes to the content item being made via the sharing window on the second client device; and providing, by the client application, a command corresponding to the one or more changes 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 (2, 3, 4, 5, 6, 7)
-
-
8. A method comprising:
-
establishing, by a client application on a first client device, a peer-to-peer connection with a second client device and a third client device to initiate a collaborative editing session to edit a content item with the second client device and the third client device, the first client device being associated with a first user account, the second client device being associated with a second user account, and the content item being provided on the first client device and the second client device via a native application of the content item, the native application of the content item being different from the client application and being controlled by a different operating system process than the client application; sending a real-time data stream of the content item to the second client device and the third client device over the peer-to-peer connection, the real-time data stream being presented on a screen sharing window within a webpage displayed on each of the second client device and the third client device; generating a first cursor overlay identifying a second user of the second client device for presentation within the screen sharing window with the real-time data stream to a third user of the third client device, the first cursor overlay corresponding to a first overlay layer separate from the real-time data stream; providing the first cursor overlay corresponding to the second user of the second client device to the third client device, the first cursor overlay being displayed in the first overlay layer separate from the real-time data stream within the screen sharing window of the third client device; generating a second cursor overlay identifying a third user of the third client device for presentation within the screen sharing window with the real-time data stream to the second user of the second client device, the second cursor overlay corresponding to a second overlay layer separate from the real-time data stream;
providing the second cursor overlay corresponding to the third user of the third client device to the second client device, the second cursor overlay being displayed in the second overlay layer separate from the real-time data stream within the screen sharing window of the second client device;receiving, by the client application, one or more changes to the content item being made via the sharing window on the second client device; and providing, by the client application, a command corresponding to the one or more changes 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. A non-transitory computer-readable storage medium storing instructions that, when executed by at least one processor, cause a first client device to:
-
present, via a web browser of the first client device, a webpage for display, the webpage providing access to one or more content items associated with a first user account stored with a content management system (CMS); send a request to join a collaborative editing session to edit a content item of the one or more content items with a second client device and a host client device, the content item being displayed by the host client device via a native application of the content item, wherein a CMS client application associated with a second user account with the CMS is installed on the host client device, the native application of the content item being different from the client application and being controlled by a different operating system process than the CMS client application; establish, via the web browser of the first client device, a peer-to-peer connection with the CMS client application of the host client device to join the collaborative editing session, wherein establishing the peer-to-peer connection includes present a screen sharing window within the webpage that displays 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 first 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 on the host device, the CMS client application; receiving the position information from the first client device, translating the position information to a location of the cursor within the native application of the content item on the host client device, and providing the translated position information for the location of the cursor of the first client device within the native application of the content item on the host client device to the second client device, wherein a reproduction of the cursor of the first client device is presented a screen sharing window within a webpage on the second client device with the real-time data stream of the native application displaying the content item, the reproduction of the cursor being presented in an overlay layer on the second client device separate from the real-time data stream; receiving, by the CMS client application on the host device, one or more changes to the content item being made by a user of the second client device via the screen sharing window on the second client device; and providing, by the CMS client application, a command corresponding to the one or more changes to the native application on the host client device, the command causing the native application to apply the one or more changes to the content item on the host client device. - View Dependent Claims (12, 13, 14, 15, 16, 17)
-
Specification