Commit graph

317 commits

Author SHA1 Message Date
Paul Rouget
d6b41ba67d remove useless arguments from prepare_for_composite 2018-10-30 07:51:38 +01:00
bors-servo
9a0404ac5f
Auto merge of #21881 - pyfisch:keyboard-types, r=paulrouget
Use keyboard-types crate

Have embedders send DOM keys to servo and use a strongly typed KeyboardEvent
from the W3C UI Events spec. All keyboard handling now uses the new types.

Introduce a ShortcutMatcher to recognize key bindings. Shortcuts are now
recognized in a uniform way.

Updated the winit port.
Updated webdriver integration.

part of #20331

What this PR does:

* allow the use non-ASCII keyboards for text input
* decouple keyboard event "key" from "code" (key meaning vs location)

What this PR does not do:

* completely improve keyboard events send from winit and webdriver
* add support for CompositionEvent or IME

Notes:

* The winit embedder does not send keyup events for printable keys (this is a regression)
* keyboard-types is on crates.io because I believe it to be useful outside of servo. If you prefer I can add a copy in this repo.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/21881)
<!-- Reviewable:end -->
2018-10-17 05:36:08 -04:00
Josh Matthews
171469c27c Update webrender to 923ee495bd9b0fda8a4a94c5a6cf42e2f0548731. 2018-10-09 18:23:19 -04:00
Pyfisch
0ccaa7e1a9 Use keyboard-types crate
Have embedders send DOM keys to servo and use a strongly typed KeyboardEvent
from the W3C UI Events spec. All keyboard handling now uses the new types.

Introduce a ShortcutMatcher to recognize key bindings. Shortcuts are now
recognized in a uniform way.

Updated the winit port.
Updated webdriver integration.

part of #20331
2018-10-07 22:39:00 +02:00
bors-servo
ed86bc7ec6
Auto merge of #21688 - paulrouget:rm-clipboard, r=jdm
Let the clipboard crate handle the lack of clipboard support

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [ ] These changes fix #__ (github issue number if applicable).

<!-- Either: -->
- [ ] There are tests for these changes OR
- [ ] These changes do not require tests because _____

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/21688)
<!-- Reviewable:end -->
2018-09-13 03:08:53 -04:00
Paul Rouget
ec6cc56299 Let the clipboard crate handle the lack of clipboard support 2018-09-12 11:24:55 +02:00
Simon Sapin
2a996fbc8f Replace mpsc with crossbeam/servo channel, update ipc-channel
Co-authored-by: Gregory Terzian <gterzian@users.noreply.github.com>
2018-09-12 13:33:32 +08:00
Gregory Terzian
b977b4994c add servo_channel crate 2018-09-12 11:25:45 +08:00
chansuke
f2c9c3dc43 Format component servo 2018-09-11 00:47:01 +09:00
Gregory Terzian
e784f5a9f7 Refactor embedder NewBrowser flow 2018-08-11 01:13:11 +02:00
bors-servo
1bd34e7c55
Auto merge of #21250 - paulrouget:fixkeys, r=jdm
Refactor winit key handling

This should improve keys input on Linux and Windows.
Should fix #17146 and fix #21161

Tested Mac, Windows and Linux. Basic typing works, combo work, text navigation works. I hit some strange issues where sometimes the text would be displayed late, but I believe it is unrelated to this PR.

If we land that now, we will hit a regression on Mac, we need a winit update that includes https://github.com/tomaka/winit/pull/610.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/21250)
<!-- Reviewable:end -->
2018-07-30 13:02:41 -04:00
Felix Rabe
cbae7c6131
Fix copy paste typo 2018-07-30 10:04:22 +02:00
Paul Rouget
3c7bb87e6d Refactor winit key handling 2018-07-26 14:39:52 +02:00
Gregory Terzian
4234b1252a move top_level_browsing_context_id out of embedder msg 2018-05-23 21:46:05 +08:00
Gregory Terzian
d438240772 move msg to embedder_traits, use in script, handle send error in embedder 2018-05-23 21:45:57 +08:00
OJ Kwon
2fab94785b
refactor(filemanager): uses embedderproxy directly 2018-04-27 12:23:25 -07:00
OJ Kwon
7cec47b3fa
refactor(filemanager): use filemanagermsg to request embedder 2018-04-27 12:22:39 -07:00
OJ Kwon
1c465bcd66
refactor(resourcethread): expose constellationmsg channel 2018-04-27 12:21:16 -07:00
Paul Rouget
9fb5795f37 delegate resource reading to embedder 2018-04-27 15:34:52 +08:00
OJ Kwon
61b4a891bb
refactor(bluetooth): uses embedderproxy directly 2018-04-18 11:39:33 -07:00
OJ Kwon
410cf63a8e
refactor(bluetooth): factory fn returns constellation channel 2018-04-18 11:39:32 -07:00
OJ Kwon
c141090d61
feat(constellation): expose msg for bluetooth thread 2018-04-18 11:39:31 -07:00
Bastien Orivel
04d1e12806 Fix the env_logger update
When building an env_logger, we need to pass it the environment,
otherwise it just takes some defaults and doesn't log anything.
2018-04-03 12:03:41 +02:00
modal-d17
af445a357d Measure cache memory usage (#19251):
Made the memory cache data structure derive MallocSizeOf, along with
manual size_of() implementations in malloc_size_of.

Added a Measurable struct that acts as a container for fields size_of() can be called for.

Added a new IpcReceiver used for listening to messages from the memory profiler,
and used run_with_memory reporting to register a memory reporter in the thread.
Now when a message from the memory profiler arrives, report includes sizes of public and private http caches.

Updated test file.
2018-04-01 13:30:57 -04:00
Bastien Orivel
0918ac8cc7 Bump env_logger to 0.5 and log to 0.4 in every servo crate 2018-03-28 19:50:58 +02:00
Glenn Watson
30bb1ccbef Update WR (accelerated webgl fix on mac, line decoration optimizations). 2018-03-23 07:58:31 +10:00
Paul Rouget
abea15d419 Use the --device-pixel-ratio in opt instead of /components/servo/ 2018-03-22 08:07:43 +01:00
Paul Rouget
1cdba8843d split window code and browser code in two different files 2018-03-22 08:07:32 +01:00
Paul Rouget
5e33dcd29d forward EmbedderMsg to embedder 2018-03-22 07:56:51 +01:00
Paul Rouget
10abe03948 Reduce the number of calls to the embedder by grouping the screen and window coordinates into one structure 2018-03-22 07:56:50 +01:00
bors-servo
fc90e613d8
Auto merge of #20071 - paulrouget:typedsize, r=glennw
Use typed coordinates more

Requires https://github.com/servo/servo/pull/19895

We use Size2D and Point2D across compositing, constellation and script, loosing the type of pixels we use (DevicePixel, DeviceIndepententPixel or CSSPixel) along the way, which might lead to bugs like `window.outerHeight` not taking into account the page zoom (using DeviceIndepententPixel instead of CSSPixel).

This should make the situation a bit better.

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [ ] These changes fix #__ (github issue number if applicable).

<!-- Either: -->
- [ ] There are tests for these changes OR
- [x] These changes do not require tests because we can't zoom in a test

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/20071)
<!-- Reviewable:end -->
2018-03-16 17:18:24 -04:00
OJ Kwon
7b0beedf3d
feat(windowevent): expose CaptureWebRender event 2018-03-16 10:19:23 -07:00
Paul Rouget
ac4614d6ce Use typed coordinates.
We use Size2D and Point2D across compositing, constellation and script,
losing the type of pixels we use (DevicePixel, DeviceIndepententPixel
or CSSPixel) along the way, which might lead to bugs like
window.outerHeight not taking into account the page zoom (using
DeviceIndepententPixel instead of CSSPixel).
2018-03-16 14:34:29 +08:00
Emilio Cobos Álvarez
21df4014db
constellation: Make setting up the WebGL state fallible.
This fixes a regression caused by the glutin update.

We now are creating EGL contexts in Linux Wayland, instead of X context, so the
GLContextFactory assumption of one GL back-end per platform is broken.

This just works around it, for now, but in general I think not relying on
available WebGL state is a good thing, and we do that already for WebVR anyway.
2018-03-09 23:27:29 +01:00
Paul Rouget
ee25413c0f report panic to embedder 2018-02-13 09:40:08 +01:00
Paul Rouget
e7c754fb64 remove forcetouch support 2018-02-11 08:02:39 +01:00
Dzmitry Malyshau
8922280b91 WR update to 4595561c49939cb21be9554c1b85c244508bde73 2017-11-23 14:51:11 -05:00
Dzmitry Malyshau
ba214bcec5 WR multi-document support 2017-11-22 00:43:34 +01:00
Shing Lyu
c120234f0e Enable screen.availHeight/availWidth/Height/Width 2017-11-13 21:32:10 +01:00
Paul Rouget
8a219e8a81 do not pass new size to Resize event 2017-11-07 10:27:24 +01:00
Glenn Watson
1da9dc99b5 Update WR (render notifier API changes). 2017-10-24 09:22:21 +10:00
Josh Matthews
99b5eac393 Update webrender for latest RenderNotifier changes. 2017-10-23 11:03:57 +10:00
Glenn Watson
6ec5fad7cb Update WR (hit test relative point, query feature) 2017-10-17 13:42:35 +10:00
Imanol Fernandez
8ae0739bab Implement DOM to texture 2017-10-16 20:56:53 +02:00
Paul Rouget
8f04b71f3b remove workaround 2017-10-04 05:34:06 +02:00
Imanol Fernandez
324e56b3d1 Improve Webrender<->WebGL synchronization 2017-09-20 11:48:11 +02:00
Glenn Watson
b015e93dc5 Update WR (font instance API).
WR now has a concept of font templates and font instances. This
makes the WR font interfaces closer to Cairo and Gecko, and also
makes some future performance optimizations possible.

A font template is the font family, and data backing the font.
A font instance is a reference to a font template and per-instance
options, such as font size, anti-aliasing settings etc.

To update Servo in a minimally invasive way, I added a new font
cache call, that creates a font instance. This means that when
a font is created, and doesn't exist in the cache there are now
two calls to the font cache thread. We could refactor the font
cache to make this work in one call, which we should do in the
future. However, refactoring the font cache is a large chunk of
work by itself. The extra call is only when a font doesn't already
exist in the font context cache, so it should have minimal
performance impact.
2017-08-31 16:10:30 +10:00
Gregory Terzian
6bca3402a6 implement clone for embedder and compositor proxies 2017-08-28 18:39:31 +08:00
Gregory Terzian
01c24e017d move embedder related messages, and window event handling, out of compositor 2017-08-28 18:39:10 +08:00
Glenn Watson
78f73b6d56 Update WR (debugger, renderer API changes). 2017-08-28 12:08:24 +10:00