No description
7f9de46688
Currently the current selection is always requested as HTML by the browser, and then we ask the browser to convert it to plain text. The problem is that e.g. Writer can produce much better plain text from its model, compared to the plain text by the browser, e.g. bullet characters for bullet points. Fix the problem by: - CanvasTileLayer.js, _onTextSelectionMsg(): requesting both HTML and plain text. Use ',' as a separator, as that's already established, e.g. the HTTP Accept header does that already - Switching the textselectioncontent protocol message from just HTML to JSON that contains both HTML and plain text. This is produced in ChildSession::getTextSelection() and parsed in CanvasTileLayer.js, _onMessage() - Clipboard.js, setTextSelectionHTML(): allowing setting both HTML and plain text. - ClientSession::postProcessCopyPayload(): knowing if the content to be processed is HTML-in-JSON or just HTML, do additional escaping in the JSON / textselectioncontent case, but leave the other clipboardcontent case unchanged. So far this only handles the simple case, the behavior for complex selections are left unchanged for now. The payload is also unchanged when a single format is requested, as many tests depend on test. Signed-off-by: Miklos Vajna <vmiklos@collabora.com> Change-Id: I2fe1378a8d50b7901ac9e808eb78858cd8ff8575 |
||
---|---|---|
.git-hooks | ||
.github | ||
.gitpod-files | ||
android | ||
browser | ||
common | ||
cypress_test | ||
debian | ||
docker | ||
etc | ||
fuzzer | ||
gtk | ||
indexing | ||
ios | ||
kit | ||
kubernetes/helm | ||
man | ||
net | ||
scripts | ||
test | ||
tools | ||
wasm | ||
wsd | ||
.cirrus.yml.disabled | ||
.clang-format | ||
.clang-tidy | ||
.editorconfig | ||
.gitignore | ||
.gitpod.dockerfile | ||
.gitpod.yml | ||
.mailmap | ||
AUTHORS | ||
autogen.sh | ||
browsersync-config.js | ||
ChangeLog | ||
CODE_OF_CONDUCT.md | ||
config.h.in | ||
config_version.h.in | ||
configure.ac | ||
CONTRIBUTING.md | ||
coolkitconfig-mobile.xcu | ||
coolkitconfig.xcu | ||
coolwsd-systemplate-setup | ||
coolwsd-welcome.xml | ||
coolwsd.service | ||
coolwsd.spec.in | ||
coolwsd.xml.in | ||
COPYING | ||
discovery.xml | ||
favicon.ico | ||
g | ||
jsstress.in | ||
Makefile.am | ||
NEWS | ||
PROBLEMS | ||
README.CONTRIBUTING.md | ||
README.FILENOTICES.md | ||
README.md | ||
SECURITY.md | ||
THIRDPARTYLICENSES | ||
trace-event.sample2.json |
Collabora Online
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 Matrix/Telegram rooms
- Matrix: #cool-dev:clicks.codes
- Telegram: CollaboraOnline
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
Further recommended reading with build details
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/#build-code-on-gitpod and follow the steps.