No description
Find a file
Ashod Nakashian 318f3f6eb8 wsd: more accurate possible-modification flagging
This improves the flagging of possible-modification
in cases where there might be a race between the
arrival of the ModifiedStatus flag from Core
and the closing of the document. This can happen,
for example, when the user makes an edit and
immediately closes the document. In these cases
we want to be able to assume modification based
on the last activity from the user that may have
modified the document.

The issue this patch fixes is that we were too
aggressive in our assumption of modification,
because it was better to be wrong and try to
save rather than not. However, this also set
the IsModifiedByUser header to the PutFile
request when uploading the document to storage,
which was not accurate or acceptable.

Change-Id: I84228bfbb92f688d303568027171df3686d2cd2b
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2023-02-07 14:36:51 +01:00
.git-hooks git-hooks: pre-commit: clean up not needed tweak of the perl library path 2021-07-12 19:47:59 +03:00
.github fix: codeql cpp unmet dependencies failure 2022-12-05 10:57:53 +01:00
.gitpod-files Remove the old vex-based welcome dialog code 2022-04-04 10:53:07 +02:00
android Translated using Weblate (Albanian) 2023-01-31 22:46:30 +01:00
browser Update UNO command translations 2023-02-06 21:49:53 +01:00
common wsd: more accurate possible-modification flagging 2023-02-07 14:36:51 +01:00
cypress_test jsdialog: convert delete slide modal from vex 2023-01-30 09:02:48 +01:00
debian Bump version to 22.05.10.1 2023-02-01 00:14:09 +01:00
docker Use COPY rather than ADD 2023-02-03 12:36:02 +01:00
etc backward compatibility: /lool/convert-to endpoint 2021-11-19 13:27:27 +01:00
fuzzer wsd: fix missing tile cache check in ClientSession::getCommandValues() 2022-10-25 16:55:19 +01:00
gtk Actually use the safer (escaped) string we construct 2023-01-06 16:09:52 +02:00
indexing indexing: rename 'lool' -> 'cool' 2021-11-17 09:17:31 +01:00
ios Put all Zotero logic to browser 2022-12-12 13:35:29 +01:00
kit wsd: support per-user timezone 2023-01-31 15:38:08 +01:00
kubernetes/helm fix: helm chart error validating data: unknown object type nil in ConfigMap.data.server_name 2023-01-13 14:15:39 +05:30
man coolstress: add man-page, cleanup somewhat and document a little. 2022-09-01 13:33:20 +01:00
net wsd: better logging 2023-01-27 08:44:53 -05:00
scripts browser: convert calc header controls to TS 2023-01-18 16:45:02 +05:30
test wsd: more accurate possible-modification flagging 2023-02-07 14:36:51 +01:00
tools wsd: fix multi-part logging 2022-09-13 09:45:43 +02:00
wasm I don't see the reason to use the intermediate libonline.a for WASM 2023-01-30 10:02:06 +02:00
wsd wsd: more accurate possible-modification flagging 2023-02-07 14:36:51 +01:00
.cirrus.yml Update image_family to a newer supported version. 2022-12-12 13:09:35 +03:00
.clang-format clang-format: turn off BreakBeforeBinaryOperators 2021-04-23 09:51:06 +02:00
.clang-tidy Png: avoid multiplication at int precision, then converting to long 2016-12-05 11:56:46 +01:00
.gitignore Fix build with libzstd on iOS 2022-11-02 12:09:53 +01:00
.gitpod.dockerfile GitPod: Fix No package 'libzstd' found 2022-11-17 07:39:39 +01:00
.gitpod.yml GitPod: Update core assets url to 22.05 2022-04-19 15:32:43 +02:00
.mailmap Add .mailmap 2021-11-26 11:44:09 +01:00
AUTHORS Apply the pre-branch rename script to re-organize the source. 2016-11-25 09:58:48 +00:00
autogen.sh No need to cd back before exiting a shell script that is run as a command 2022-12-07 15:06:16 +02:00
browsersync-config.js browser: update config files 2021-11-10 17:18:56 +01:00
ChangeLog Apply the pre-branch rename script to re-organize the source. 2016-11-25 09:58:48 +00:00
CODE_OF_CONDUCT.md Complete the CoC statement 2020-10-20 20:45:57 +03:00
config.h.in config: HAVE_PPOLL should be 0 by default instead of undefined 2022-10-14 13:36:19 +02:00
config_version.h.in Split config.h into separate headers to avoid extensive rebuild 2022-09-05 12:32:49 +01:00
configure.ac Bump version to 22.05.10.1 2023-02-01 00:14:09 +01:00
CONTRIBUTING.md Fix typo in CONTRIBUTING.md 2022-07-27 09:59:31 +02:00
coolkitconfig-mobile.xcu rename: remaining lool->cool changes 2021-11-18 14:14:11 +01:00
coolkitconfig.xcu.in Hide MediaPlaybackPanel on sidebar 2022-11-15 11:18:19 +01:00
coolwsd-generate-proof-key Make coolwsd-generate-proof-key prepared for a custom prefix. 2021-12-22 15:18:35 +01:00
coolwsd-systemplate-setup systemplate: include /lib/*/nss 2022-11-05 21:45:24 +00:00
coolwsd-welcome.xml Remove the old vex-based welcome dialog code 2022-04-04 10:53:07 +02:00
coolwsd.init.rhel6 rename: remaining lool->cool changes 2021-11-18 14:14:11 +01:00
coolwsd.service rename: remaining lool->cool changes 2021-11-18 14:14:11 +01:00
coolwsd.spec.in do not explicitly require libzstd package in CentOS 2022-11-08 11:27:30 +01:00
coolwsd.xml.in js: added routeToken as parameter in wopisrc 2023-01-31 15:32:30 +01:00
COPYING fix license headers 2020-10-01 11:56:43 +02:00
discovery.xml Editing of document templates does not work well currently 2022-03-15 14:05:12 +01:00
favicon.ico replace favicon.ico (Collabora Online logo) 2020-12-14 13:56:00 +01:00
g Use custom local branch name as explicit remote user branch name for PR 2021-07-16 08:53:58 +02:00
jsstress.in rename coolstress to jsstress 2021-11-16 11:16:45 +01:00
Makefile.am Do build also the browser dir in the (quick-and-dirty) Emscripten case 2023-01-16 18:43:21 +02:00
NEWS Apply the pre-branch rename script to re-organize the source. 2016-11-25 09:58:48 +00:00
PROBLEMS mutex include cleanup. 2022-08-31 21:31:31 +01:00
README.CONTRIBUTING.md Clarify, re: E-mail. 2020-10-26 19:03:53 +00:00
README.md Add Social media to readme 2023-01-16 11:02:01 +01:00
SECURITY.md Update SECURITY.md 2021-07-05 12:24:14 +02:00
sysconfig.coolwsd rename: remaining lool->cool changes 2021-11-18 14:14:11 +01:00
trace-event.sample2.json Try repeated async events with same name and id 2021-06-23 12:26:27 +03:00

Build Status Build Status

Build Status Build Status

Open in Gitpod

Collabora Online

Master: Pull request policy

irc Telegram Forum Website L10n Gitpod Ready-to-Code

Your own private Office in the Cloud

Get in touch 💬

Key features

  • View and edit text documents, spreadsheets, presentations & more
  • Collaborative editing features
  • Works in any modern browser no plugin needed
  • Open Source primarily under the MPLv2 license. Some parts are under other open source licences, see e.g. browser/LICENSE.

Website

For many more details, build instructions, downloads and more please visit https://collaboraonline.github.io/

Developer assistance

Please ask your questions on any of the bridged IRC/Matrix/Telegram rooms

Join the conversation on our Discourse server at https://forum.collaboraonline.com/

Watch the tinderbox status (if it's green) at https://cpci.cbg.collabora.co.uk:8080/job/Tinderbox%20for%20online%20master%20against%20co-22.05/

Development bits

This project has several components:

  • wsd/
    • The Web Services Daemon - which accepts external connections
  • kit/
    • The client which lives in its own chroot and renders documents
  • common/
    • Shared code between these processes
  • browser/
    • The client side JavaScript component
  • test/
    • C++ based unit tests
  • cypress_test/
    • JavaScript based integration tests

Please consult the README files in the component's directory for more details:

iOS and Android apps

See the corresponding READMEs:

GitPod

Head over to https://collaboraonline.github.io/post/build-code/ select gitpod from the dropdown and follow the steps.

Interesting things to keep in mind:

  • Make sure your browser is not blocking windows/tabs from opening from the gitpod workspace URL (maybe add *.gitpod.io to your browser's whitelist)
    • The GitPod tasks will run automatically and further instructions will be printed out right in the terminal
    • VNC tab will open automatically if not just click in the left icon Remote explorer and click 6080. You will see a tab completly black, that's normal.
    • As mentioned in those instructions if you are not using the VS Code desktop and if you are only relying on your browser please:
      • Do not try to click the URL from the make run out put instead copy that URL and execute firefox [paste URL here]
      • Head over to the tab where the VNC is opened (black page), you will see Firefox opening there, maximize and have fun.
      • You can also run cypress tests via GitPod but you will need to use Firefox, for that just prepend CYPRESS_BROWSER="firefox" to the desired command. Example: CYPRESS_BROWSER="firefox" make check for every test or CYPRESS_BROWSER="firefox" make check-desktop spec=impress/scrolling_spec.js for one specific test on desktop

Enjoy!