Commit graph

10798 commits

Author SHA1 Message Date
Mike Blumenkrantz
2a55a91b9a force cef browser resize check on initial load
ensure that the output render size matches the desired size
2015-05-28 16:04:06 -04:00
bors-servo
c97c0a9f94 Auto merge of #6065 - mmatyas:canvas_antialias, r=jdm
This patch turns on antialiasing for the canvas, and updates the painting code to use the updated Azure DrawOptions defined in servo/rust-azure#158.

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/6065)
<!-- Reviewable:end -->
2015-05-28 14:59:36 -05:00
bors-servo
952e953237 Auto merge of #6208 - Ms2ger:warning, r=larsbergstrom
<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/6208)
<!-- Reviewable:end -->
2015-05-28 12:45:13 -05:00
Ms2ger
ee65647ee1 Avoid a build warning in the glutin port without the window feature enabled. 2015-05-28 19:35:42 +02:00
Mátyás Mustoha
f4c0bd3b80 Turn off default antialiasing for most DrawOptions. 2015-05-28 18:42:16 +02:00
bors-servo
1d9b5ced38 Auto merge of #6200 - nnethercote:sort-memory-sub-trees, r=pcwalton
This puts the larger sub-trees first. E.g. this:
```
|       1.04 MiB -- url(http://en.wikipedia.org/wiki/Main_Page)
|          0.26 MiB -- display-list
|          0.78 MiB -- paint-task
|             0.78 MiB -- buffer-map
```
becomes this:
```
|       1.04 MiB -- url(http://en.wikipedia.org/wiki/Main_Page)
|          0.78 MiB -- paint-task
|             0.78 MiB -- buffer-map
|          0.26 MiB -- display-list
```
This matches how Firefox's about:memory works.

Now that this is done for all sub-trees, the ad hoc sorting done for
Linux segments is no longer necessary, and has been removed.

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/6200)
<!-- Reviewable:end -->
2015-05-28 11:11:27 -05:00
bors-servo
dddd222d29 Auto merge of #6202 - nnethercote:freetype-fixes, r=jack
Because #6198 wasn't quite right.

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/6202)
<!-- Reviewable:end -->
2015-05-28 09:04:08 -05:00
bors-servo
df74ed136c Auto merge of #6206 - nox:typeerror-for-unions, r=Manishearth
<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/6206)
<!-- Reviewable:end -->
2015-05-28 06:24:00 -05:00
Anthony Ramine
2c6d2d3abe Make throw_not_in_union() throw a TypeError (fixes #6194) 2015-05-28 13:03:28 +02:00
bors-servo
2b52006b1c Auto merge of #5981 - Jinwoo-Song:nodeiterator, r=Manishearth
Implement NodeIterator's basic functionality. (Fixes #1235)  But the cases for node removals are not implemented yet. 

r? @jdm 
cc @yichoi

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/5981)
<!-- Reviewable:end -->
2015-05-28 05:14:08 -05:00
Jinwoo Song
db25be7bf6 Update NodeIterator code to apply review comments. 2015-05-28 18:37:27 +09:00
Mátyás Mustoha
322fd5ad9d Add disable-canvas-aa option to test runner. 2015-05-28 11:10:58 +02:00
Mátyás Mustoha
adef44183d Enable antialiasing for the canvas. 2015-05-28 11:10:57 +02:00
Nicholas Nethercote
e8fc406520 Reduce unsafe-ness in FontContextHandle::new().
Because `box + boxed::into_raw() + boxed::from_raw` is nicer than
`libc::malloc() + mem::transmute() + ptr::write() + libc::free()`.
2015-05-27 21:50:09 -07:00
Nicholas Nethercote
16ba32521b Don't leak the struct_FT_MemoryRec_.
We libc::malloc() a struct_FT_MemoryRec_ and pass it to FreeType. We
need to libc::free() it as well when FreeType is done with it.
2015-05-27 21:22:11 -07:00
bors-servo
af81db5479 Auto merge of #6198 - Jinwoo-Song:freetype, r=metajack
It is recommended to use FT_Done_Library with FT_New_Library
from freetype document.

Fixes #6191.

r? @jdm @nnethercote 
cc @yichoi

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/6198)
<!-- Reviewable:end -->
2015-05-27 21:06:12 -05:00
Nicholas Nethercote
640e68bbbd Recursively sort memory report sub-trees.
This puts the larger sub-trees first. E.g. this:
```
|       1.04 MiB -- url(http://en.wikipedia.org/wiki/Main_Page)
|          0.26 MiB -- display-list
|          0.78 MiB -- paint-task       # new output line
|             0.78 MiB -- buffer-map    # new output line
```
becomes this:
```
|       1.04 MiB -- url(http://en.wikipedia.org/wiki/Main_Page)
|          0.78 MiB -- paint-task       # new output line
|             0.78 MiB -- buffer-map    # new output line
|          0.26 MiB -- display-list
```
This matches how Firefox's about:memory works.

Now that this is done for all sub-trees, the ad hoc sorting done for
Linux segments is no longer necessary, and has been removed.
2015-05-27 18:57:13 -07:00
Nicholas Nethercote
a21f6c407c Measure paint task buffer maps in the memory profiler.
Example output from the memory profiler:

```
|       1.04 MiB -- url(http://en.wikipedia.org/wiki/Main_Page)
|          0.26 MiB -- display-list
|          0.78 MiB -- paint-task       # new output line
|             0.78 MiB -- buffer-map    # new output line
```

The buffer maps aren't huge, but they're worth measuring, and it's good
to get the memory profiler plumbing into PaintTask.
2015-05-27 18:27:18 -07:00
Jinwoo Song
557bb11bde Use FT_Done_Library instead of FT_Done_Freetype
It is recommended to use FT_Done_Library with FT_New_Library
from freetype document.

Fixes #6191.
2015-05-28 10:17:06 +09:00
bors-servo
2ce7b78907 Auto merge of #6197 - jgraham:css_expected_update, r=larsbergstrom
<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/6197)
<!-- Reviewable:end -->
2015-05-27 17:59:58 -05:00
James Graham
1f25a2972a Update CSS tests expected data to revision 31d63cc79bd4c929ed582229e936d7b389f3e6ab 2015-05-27 22:42:17 +01:00
bors-servo
b1a773a15b Auto merge of #6196 - mbrubeck:metadata, r=SimonSapin
#6088. r? @SimonSapin

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/6196)
<!-- Reviewable:end -->
2015-05-27 14:57:41 -05:00
bors-servo
94ebfe81e4 Auto merge of #6175 - zmike:embedding-REVENGE_OF_CARGO, r=larsbergstrom
Adds a bunch more embedding interfaces/callbacks/functionality

@larsbergstrom

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/6175)
<!-- Reviewable:end -->
2015-05-27 14:17:32 -05:00
Mike Blumenkrantz
8c278d30a6 fix glutin headless compile errors 2015-05-27 14:45:59 -04:00
Mike Blumenkrantz
ca1f49aaa3 spawn a task for cef async browser creation to kick the main loop awake
without this, the initial url loading message will never be sent to the
constellation, preventing the engine from ever doing anything
2015-05-27 14:45:59 -04:00
Mike Blumenkrantz
81eb426b04 when creating a cef browser, setup the url to load but don't load it
cef apps will expect to enter their main loops before this happens due to
various callbacks being hit, so it's necessary to punt this loading off until
a later time
2015-05-27 14:45:58 -04:00
Mike Blumenkrantz
b1ae5e7523 make Opts.url an Option<> type, only emit initial url load if url exists
this is a necessary change for embedded apps to prevent an initial about:blank
page load from overwriting whatever the app was actually trying to load
2015-05-27 14:45:57 -04:00
Mike Blumenkrantz
fcf449517d handle case of deleted pipeline when preparing to send load_end constellation msg 2015-05-27 14:45:56 -04:00
Mike Blumenkrantz
45116dca71 break out cef app wakeup code into separate pub function 2015-05-27 14:45:55 -04:00
Mike Blumenkrantz
64ff2c4a54 handle early LoadURL messages without panicking by sending initial url load
fixes #6126
2015-05-27 14:45:54 -04:00
Mike Blumenkrantz
aef3218169 Revert "temp re-set default url for cef while I figure out wtf is going on"
This reverts commit 8330eabac1.
2015-05-27 14:45:54 -04:00
Mike Blumenkrantz
90169e8f3b force resize after sending cef_browser::on_after_created() callback
this fixes rendering of the first frame to be at the size of the browser
instead of the size of the initial window_info
2015-05-27 14:45:53 -04:00
Mike Blumenkrantz
14a6390f03 add embedding method for load_handler::on_load_error
still needs error text messages I guess
2015-05-27 14:45:52 -04:00
Mike Blumenkrantz
8e78febaac make cef_errorcode_t a typedef for net::NetError 2015-05-27 14:45:51 -04:00
Mike Blumenkrantz
68fc51205f add error enum for chromium net errors, create window method for error propagation 2015-05-27 14:45:50 -04:00
Mike Blumenkrantz
3f8d8a3cc9 add back/forward/loading members to ServoCefBrowser with related browser methods 2015-05-27 14:45:49 -04:00
Mike Blumenkrantz
0d46a3b89a add navigation state data to LoadComplete messages, finish cef load state cbs 2015-05-27 14:45:48 -04:00
Mike Blumenkrantz
3481c752cd add CompositorMsg::LoadStart, implement cef_load_handler::on_loading_state_change()
only adds the loading:true callback this time...
2015-05-27 14:45:47 -04:00
Mike Blumenkrantz
cd9dab7b5b implement cef_load_handler::on_load_start() 2015-05-27 14:45:46 -04:00
Mike Blumenkrantz
1e4ceb0a1f more accurately handle key modifiers in cef 2015-05-27 14:45:46 -04:00
Mike Blumenkrantz
28aed52a4b improve cef keyboard handling
this is a rough approximation of the handling of various keycodes/syms
within chromium. it needs work, but for my system it works okay
2015-05-27 14:45:45 -04:00
Mike Blumenkrantz
efc75ef40e ignore KEYEVENT_RAWKEYDOWN in cef browser events
I'm not sure exactly what this is supposed to do and there are no docs.
from what I've observed, nothing happens on this event
2015-05-27 14:45:44 -04:00
Mike Blumenkrantz
a809d6b911 remove unused cef imports 2015-05-27 14:45:43 -04:00
Mike Blumenkrantz
02606fada4 implement on_address_change handler for cef port 2015-05-27 14:45:42 -04:00
Mike Blumenkrantz
92d44fb36e send ChangeUrl message from constellation on init 2015-05-27 14:45:41 -04:00
Mike Blumenkrantz
cf388cd909 call compositor.window.set_page_url() on WindowEvent::LoadUrl 2015-05-27 14:45:41 -04:00
Mike Blumenkrantz
caa8172560 implement cef browser title setting callback 2015-05-27 14:45:40 -04:00
Mike Blumenkrantz
af1dce5a2e add new browser process interface method for main loop integration
regular CEF requires the user to either run the cef main loop or
poll on a function to drain events. now the engine will trigger a callback
in some application thread which will notify it that there is work
to be done by the browser
2015-05-27 14:45:39 -04:00
Mike Blumenkrantz
83e605d2fb add no_mangle to servo_test() embedding function 2015-05-27 14:45:38 -04:00
Mike Blumenkrantz
d7ad5d6ea2 add cef method for notifying the main loop of work available 2015-05-27 14:45:37 -04:00