Commit Graph

509 Commits

Author SHA1 Message Date
Toothbrush
046dc31058 servo: Merge #8550 - Fixes #8546 (from toothbrush7777777:patch-1); r=frewsxcv
Fixes issue #8546.

Source-Repo: https://github.com/servo/servo
Source-Revision: 4b0330937ab1f99e47c2ce312150a6dd44068380
2015-11-16 23:14:58 +05:00
Keith Yeung
d31d4aba8f servo: Merge #8478 - Split chan and receiver_port into script and compositor flavors (from KiChjang:constellation-two-receivers); r=Ms2ger
Partial #8356. Currently this doesn't build because of a lint denying me to user unsafe code, which unfortunately the select! macro falls under. Not sure what to do there.

Source-Repo: https://github.com/servo/servo
Source-Revision: 231bf425f26a1c2aa993e3adfed1e3cfae0da027
2015-11-13 14:05:08 +05:00
Patrick Walton
b0cfd94d48 servo: Merge #8492 - script: Make timer events e10s-safe (from jdm:e10s-timer-events); r=jdm
Closes #8235.

Source-Repo: https://github.com/servo/servo
Source-Revision: 9eaa8e7b1f2e462f62b73477c30183c836a18399
2015-11-13 04:49:48 +05:00
Raphael Nestler
e38f72de5e servo: Merge #8432 - Refactor some loop{} to while let{} (from rnestler:refactor_loops); r=frewsxcv
I searched for some similar cases like in #8384 and tried to refactor them as well.
@frewsxcv Care to review?

Source-Repo: https://github.com/servo/servo
Source-Revision: aa62cc74d35b4535bb52972dc21a2deccadb6906
2015-11-10 04:03:23 +05:00
Matt Brubeck
63878f138f servo: Merge #8383 - Simplify multi-touch state machine code (from mbrubeck:touch-refactor); r=glennw
This is a minor refactoring of the touch tracking in compositor, to simplify the code and prepare for more gesture handling (like pinch to zoom). r? @glennw

Source-Repo: https://github.com/servo/servo
Source-Revision: 97791dd317893c3b1c203c5d248846ff4fd9daba
2015-11-09 04:21:21 +05:00
Raphael Nestler
299d866614 servo: Merge #8393 - Use while let{} instead of loop{match{}} (from rnestler:fix_8384); r=frewsxcv
This fixes #8384

Source-Repo: https://github.com/servo/servo
Source-Revision: 1979d0a2e63fb7bb52d560b697b045a8743c0d96
2015-11-08 01:16:21 +05:00
Ms2ger
aa500ac691 servo: Merge #8355 - Cleanup exit messages and related code (from Ms2ger:Exit); r=nox
Source-Repo: https://github.com/servo/servo
Source-Revision: 9a465c58429547b59b8a6e1258eaaea46bf7e5a2
2015-11-07 22:04:45 +05:00
Ulysse Carion
8a6b3297af servo: Merge #8388 - Use Result::ok in CompositorReceiver (from ucarion:ucarion-8386); r=frewsxcv
Fixes #8386

Source-Repo: https://github.com/servo/servo
Source-Revision: de2d14c971e21e8d8107b8ae5669408bee06f87b
2015-11-07 10:37:21 +05:00
Corey Farwell
9ca3eee524 servo: Merge #8385 - Use more iterators in compositing component (from frewsxcv:compositing-iterators); r=Manishearth
Source-Repo: https://github.com/servo/servo
Source-Revision: 3510cec3e511fb1dacf7b68e5a08bb64b221fc43
2015-11-07 10:03:32 +05:00
Josh Matthews
a71aba6954 servo: Merge #8326 - Send mouse move events to the the previous layer when directing event… (from jdm:iframehover); r=glennw
…s to a new one for the first time. Resolves #7865.

Source-Repo: https://github.com/servo/servo
Source-Revision: 4067960ba5d309ec6c4c6aef6e7aa231aca0e5d5
2015-11-06 05:54:59 +05:00
Josh Matthews
edbc3b7917 servo: Merge #8314 - Investigations for #7787 (from jdm:timeoutinvestigations); r=metajack
I'm just going to keep throwing stuff at try, because running directly on the builders isn't yielding results.

Source-Repo: https://github.com/servo/servo
Source-Revision: c78da15abbffd223290300b6b985d65cd6f03d08
2015-11-05 03:38:30 +05:00
Martin Robinson
8d58841fdd servo: Merge #8322 - Properly resize iframe root layers (from mrobinson:iframe-resizing); r=pcwalton
When a layer containing an iframe changes, we also need to resize the
root layer of the subpage. This ensures that content from the child
layer tree is masked to the new size.

Fixes #8301.

Source-Repo: https://github.com/servo/servo
Source-Revision: dc159d055c5e4931648a7046492ec5c63ab922aa
2015-11-05 01:53:43 +05:00
Matt Brubeck
f40955a353 servo: Merge #8232 - Correct event dispatching for multiple simultaneous touch points (from mbrubeck:glutin-touch); r=glennw
Instead of just converting the mouse into a single "touch" input, Servo can now listen for multi-touch events from Glutin, maintain a list of active touch points, and dispatch events for all of them.

r? @glennw (for the compositor changes) and @jdm (for the DOM changes)

Source-Repo: https://github.com/servo/servo
Source-Revision: 3fdaa6e3f32f6996c416e75119177b98d404adb2
2015-11-03 22:15:21 +05:00
Eli Friedman
65aa165b80 servo: Merge #8257 - Attempt to fix webfont-related intermittent test failures (from eefriedman:reorder-webfont-check); r=mbrubeck
I'm not completely sure the race condition outlined in this patch is
actually the race condition causing failures... but it's a possibility.

(I plan to run this through try a couple of times to see if it actually helps.)

Source-Repo: https://github.com/servo/servo
Source-Revision: cff9a5456915403cc9559b14f1353adf3f8504f6
2015-10-31 03:13:54 +05:00
Manish Goregaokar
c98dcc6db4 servo: Merge #8241 - Update euclid to 0.3 (from Manishearth:euclid_up); r=mbrubeck
Source-Repo: https://github.com/servo/servo
Source-Revision: 0d699a2b4419632e31b35352c518e2ef5ffcc9a3
2015-10-28 21:31:15 +05:00
Matt Brubeck
62a3d94aaf servo: Merge #7204 - Very basic touch events and touch scrolling (from mbrubeck:touchevent); r=jdm
This implements just enough of [Touch Events](http://w3c.github.io/touch-events/) to enable scrolling on Android without regressing basic single-touch interaction like clicking on links.

Dragging a page will scroll it, unless the page calls `preventDefault` on the "touchstart" event.

Does **not** yet support pinch zooming or other multi-touch gestures or events.

Includes a `-Z convert-mouse-to-touch` command line flag for testing on non-touch platforms.  This is also enabled by default on Android because Glutin currently translates touch input to mouse events on Android.

Source-Repo: https://github.com/servo/servo
Source-Revision: dcd207f9bf15c9ecf5d043385ba93277e69201f6
2015-10-22 15:54:01 -06:00
nxnfufunezn
fe2958cb3a servo: Merge #8149 - Fixes #8102 Removed unwrap on result of send call (from nxnfufunezn:compositor_panics-8102); r=jdm
@jdm

Source-Repo: https://github.com/servo/servo
Source-Revision: 04c574967f46a65c8b6a151d29e5fede6f7fcfaf
2015-10-22 06:53:09 -06:00
benshu
0eaffe935d servo: Merge #7450 - Ordering guarantees for timers (from benschulz:constellation-timer); r=jdm
This is an rough solution to the issue described in #3396. XHRs still do their own thing and an overall clean up is in order. Before I do that, though, I'd really like someone to sign off on the overall idea.

There's one major difference to what jdm layed out #3396: The timers remain with the window/worker and only the earliest expiring one is coordinated with the dedicated timer thread.
That means both the timer thread and the window/worker have to keep track of which timer expires next, which feels a bit wonky. However, the upshot is that there's no need for communication with the timer thread when a pipeline is frozen, thawed or dropped.

Most relvant parts are
 - the [`TimerScheduler`](6f5f661958 (diff-74137a6f50ab38e7a1e4d16920a66ce7R73)), which is the new per-constellation timer task and
 - the [`ActiveTimers`](6f5f661958 (diff-86707d952414a2860b78bcf6c1db8e2eR34)) which is what's left on the window/worker side.

Source-Repo: https://github.com/servo/servo
Source-Revision: 2de5407cdabef67ed03b2ad4edf4a22541d77875
2015-10-21 09:07:30 -06:00
Paul Rouget
9fa5a2d4c4 servo: Merge #8119 - update image to 0.4.0 (from paulrouget:updateImage); r=Manishearth
Source-Repo: https://github.com/servo/servo
Source-Revision: 7fb3c51bbbbc708b1472cb79751349adff8b9501
2015-10-21 00:47:27 -06:00
Adam Szopa
b2986ec771 servo: Merge #8099 - Remove explicit lifetimes which can be elided (from Darktori:master); r=mbrubeck
Fixes https://github.com/servo/servo/issues/8069

Source-Repo: https://github.com/servo/servo
Source-Revision: 941c06eb99533c6c1d55b4ad3b51804badf48a23
2015-10-20 17:30:57 -06:00
Martin Robinson
2ef3e42e12 servo: Merge #7950 - Integrate iframes into the display list (from mrobinson:layerize-iframes); r=pcwalton
Instead of always promoting iframes to StackingContexts, integrate them
into the display list. This prevents stacking bugs when
non-stacking-context elements should be drawn on top of iframes.

To accomplish this, we add another step to ordering layer creation,
where LayeredItems in the DisplayList are added to layers described by
the LayerInfo structures collected at the end of the DisplayList.
Unlayered items that follow these layered items are added to
synthesized layers.

Another result of this change is that iframe layers can be positioned
directly at the location of the iframe fragment, eliminating the need
for the SubpageLayerInfo struct entirely.

Iframes are the first type of content treated this way, but this change
opens up the possibility to properly order canvas and all other layered
content that does not create a stacking context.

Source-Repo: https://github.com/servo/servo
Source-Revision: 11d23a41b31c2b2846d1e9c6b40e87ba7e2a095f
2015-10-20 16:01:38 -06:00
Glenn Watson
be908fc0ac servo: Merge #8089 - Fix iframes flickering on mouse move (from glennw:iframe-flicker); r=pcwalton
Fixes #7867 (and probably several other iframe bugs).

When collecting layers for children of a pipeline, pass through the current
subpage pipeline recursively. This prevents descendant layers (such as scroll
layers) from being collected and re-created on the subsequent paint.

Source-Repo: https://github.com/servo/servo
Source-Revision: 3f4ce134198e398fa94d1e754364b220037e6b49
2015-10-19 17:54:12 -06:00
Glenn Watson
ec6aeca836 servo: Merge #8009 - Remove webdriver use of SubpageId (from glennw:webdriver-subpage); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: ac733746094c2ab1c3e5a3326095032206e5fb86
2015-10-14 18:05:17 -06:00
meh
25a0a0463b servo: Merge #7552 - Add viewport configuration support to the compositor (from meh:viewport); r=glennw
This allows me to do stuff like this.

![this](https://cloud.githubusercontent.com/assets/40204/9701150/58d593ae-541d-11e5-9f57-8d379f5c9ceb.png)

Those are two compositors rendered on the same OpenGL context, I need this so I can split windows and render them without getting mad with textures and framebuffers, it will also allow me to render the proper parts of the chrome as different web pages without involving dozens of framebuffers and textures.

If I recall correctly I did talk to @glennw about this on IRC some time ago.

This pull request requires https://github.com/servo/gleam/pull/39 to be merged first tho.

Source-Repo: https://github.com/servo/servo
Source-Revision: 8db8a86ab1e943b5102a05d6d31800579fdb7875
2015-10-14 10:29:45 -06:00
Matt Brubeck
70a47eb053 servo: Merge #7933 - Replace libpng and stb_image with PistonDevelopers/image (from mbrubeck:piston-image); r=glennw
Fixes #3368. r? @glennw

Source-Repo: https://github.com/servo/servo
Source-Revision: 0f597d389052500d9b76b9f9f89e873e6f809ab1
2015-10-12 15:06:31 -06:00
Glenn Watson
e8bfc6de7a servo: Merge #7921 - Update RemoveIFrame to use pipeline id rather than subpage (from glennw:subpage-fixes-2); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 5ffeb3b95bfc90079622fa65fa7f6dc4fff25350
2015-10-12 07:49:26 -06:00
Martin Robinson
4d97b3c216 servo: Merge #7913 - Simplify and unify compositor shutdown code paths (from mrobinson:compositor-shutdown); r=pcwalton
Unify all compositor shutdown code paths into two methods, one which
starts the shutdown and the other that finishes it. This simplifies the
way the compositor shuts down and prevents "leaking" pixmaps when
exiting in uncommon ways.

Source-Repo: https://github.com/servo/servo
Source-Revision: 26dd1233103eb75c2e94fcc2ba34c18fa4432afc
2015-10-07 21:28:39 -06:00
Glenn Watson
04c72d8ebd servo: Merge #7899 - Remove constellation round trip for subpage mapping in compositor (from glennw:subpage-fixes-1); r=pcwalton
This makes use of the new functionality that allows iframes to generate their own pipeline IDs in order to remove any knowledge of subpage ids from the compositor.

(This is the first of several commits removing subpage from parts of servo).

Source-Repo: https://github.com/servo/servo
Source-Revision: 1d617f332edd0036ca4cbc3890f1f44f57597906
2015-10-07 18:36:35 -06:00
James Graham
0c72e90936 servo: Merge #7875 - Move code to exit servo after writing a screenshot out of composite_specific_target (from jgraham:composite_no_exit); r=glennw
The structure of this function was confusing, so move some parts out into the
caller where they seem like a more natural fit and add documentation of the
functions

Source-Repo: https://github.com/servo/servo
Source-Revision: e7f73fdfd822fc2f0d3c239a428c739232bdfd12
2015-10-07 17:50:23 -06:00
Eli Friedman
e93891d687 servo: Merge #7912 - Make sure to correctly destroy old layers in collect_old_layers_for_pipeline (from eefriedman:compositor-layer); r=mrobinson
The previous code would skip calling clear_all_tiles(), which led to a
panic in rust-layers. ("You should have disposed of the pixmap properly
with destroy()! This pixmap will leak!")

Ran into this messing around with pdf.js; no minimized testcase.
Maybe related to #7895.

r? @pcwalton

Source-Repo: https://github.com/servo/servo
Source-Revision: 217c7da41304142ffaf7c02a3eb888b0f150c59d
2015-10-07 12:56:13 -06:00
Martin Robinson
5304cbe9d8 servo: Merge #7879 - Improve layer tree debugging output (from mrobinson:layer-tree-dump); r=glennw
Add an option to dump the layer tree, which activates the previously
unused layer tree debugging code. Also improve the output using the
PrintTree struct.

Previous output:
```
Layer tree:
Layer 7f63b45b2010: RefCell { value: CompositorData { pipeline_id: PipelineId(0), id: 0-FragmentBody, wants_scroll_events: WantsScrollEvents, scroll_policy: Scrollable, requested_epoch: Epoch(4), painted_epoch: Epoch(0), scroll_offset: (Length(0, PhantomData),Length(0, PhantomData)), subpage_info: None } } @ Rect(Length(800, PhantomData)×Length(600, PhantomData) at (Length(0, PhantomData),Length(0, PhantomData))) masks to bounds: true establishes 3D context: true
  Layer 7f63b45b2290: RefCell { value: CompositorData { pipeline_id: PipelineId(0), id: 140065919922672-FragmentBody, wants_scroll_events: DoesntWantScrollEvents, scroll_policy: Scrollable, requested_epoch: Epoch(5), painted_epoch: Epoch(0), scroll_offset: (Length(0, PhantomData),Length(0, PhantomData)), subpage_info: None } } @ Rect(Length(800, PhantomData)×Length(650, PhantomData) at (Length(0, PhantomData),Length(0, PhantomData))) masks to bounds: false establishes 3D context: true
    Layer 7f63b45b3410: RefCell { value: CompositorData { pipeline_id: PipelineId(0), id: 140065919923248-FragmentBody, wants_scroll_events: DoesntWantScrollEvents, scroll_policy: FixedPosition, requested_epoch: Epoch(5), painted_epoch: Epoch(0), scroll_offset: (Length(0, PhantomData),Length(0, PhantomData)), subpage_info: None } } @ Rect(Length(50, PhantomData)×Length(50, PhantomData) at (Length(18, PhantomData),Length(10, PhantomData))) masks to bounds: false establishes 3D context: false
    Layer 7f63b45b3190: RefCell { value: CompositorData { pipeline_id: PipelineId(0), id: 140065919923872-FragmentBody, wants_scroll_events: DoesntWantScrollEvents, scroll_policy: FixedPosition, requested_epoch: Epoch(5), painted_epoch: Epoch(0), scroll_offset: (Length(0, PhantomData),Length(0, PhantomData)), subpage_info: None } } @ Rect(Length(50, PhantomData)×Length(50, PhantomData) at (Length(93, PhantomData),Length(10, PhantomData))) masks to bounds: false establishes 3D context: false
    Layer 7f63b45b2f10: RefCell { value: CompositorData { pipeline_id: PipelineId(0), id: 140065919924496-FragmentBody, wants_scroll_events: DoesntWantScrollEvents, scroll_policy: Scrollable, requested_epoch: Epoch(5), painted_epoch: Epoch(0), scroll_offset: (Length(0, PhantomData),Length(0, PhantomData)), subpage_info: Some((PipelineId(0), SubpageId(0))) } } @ Rect(Length(50, PhantomData)×Length(50, PhantomData) at (Length(168, PhantomData),Length(10, PhantomData))) masks to bounds: false establishes 3D context: false
      Layer 7f63b45b3b90: RefCell { value: CompositorData { pipeline_id: PipelineId(1), id: 0-FragmentBody, wants_scroll_events: WantsScrollEvents, scroll_policy: Scrollable, requested_epoch: Epoch(3), painted_epoch: Epoch(0), scroll_offset: (Length(0, PhantomData),Length(0, PhantomData)), subpage_info: Some((PipelineId(0), SubpageId(0))) } } @ Rect(Length(50, PhantomData)×Length(50, PhantomData) at (Length(0, PhantomData),Length(0, PhantomData))) masks to bounds: true establishes 3D context: true
        Layer 7f63b45b3e10: RefCell { value: CompositorData { pipeline_id: PipelineId(1), id: 140065901048256-FragmentBody, wants_scroll_events: DoesntWantScrollEvents, scroll_policy: Scrollable, requested_epoch: Epoch(4), painted_epoch: Epoch(0), scroll_offset: (Length(0, PhantomData),Length(0, PhantomData)), subpage_info: None } } @ Rect(Length(50, PhantomData)×Length(58, PhantomData) at (Length(0, PhantomData),Length(0, PhantomData))) masks to bounds: false establishes 3D context: true
    Layer 7f63b45b2c90: RefCell { value: CompositorData { pipeline_id: PipelineId(0), id: 140065919925168-FragmentBody, wants_scroll_events: DoesntWantScrollEvents, scroll_policy: Scrollable, requested_epoch: Epoch(5), painted_epoch: Epoch(0), scroll_offset: (Length(0, PhantomData),Length(0, PhantomData)), subpage_info: Some((PipelineId(0), SubpageId(1))) } } @ Rect(Length(50, PhantomData)×Length(50, PhantomData) at (Length(243, PhantomData),Length(10, PhantomData))) masks to bounds: false establishes 3D context: false
      Layer 7f63b45b2790: RefCell { value: CompositorData { pipeline_id: PipelineId(2), id: 0-FragmentBody, wants_scroll_events: WantsScrollEvents, scroll_policy: Scrollable, requested_epoch: Epoch(3), painted_epoch: Epoch(0), scroll_offset: (Length(0, PhantomData),Length(0, PhantomData)), subpage_info: Some((PipelineId(0), SubpageId(1))) } } @ Rect(Length(50, PhantomData)×Length(50, PhantomData) at (Length(0, PhantomData),Length(0, PhantomData))) masks to bounds: true establishes 3D context: true
        Layer 7f63b45b2510: RefCell { value: CompositorData { pipeline_id: PipelineId(2), id: 140065880076736-FragmentBody, wants_scroll_events: DoesntWantScrollEvents, scroll_policy: Scrollable, requested_epoch: Epoch(5), painted_epoch: Epoch(4), scroll_offset: (Length(0, PhantomData),Length(0, PhantomData)), subpage_info: None } } @ Rect(Length(50, PhantomData)×Length(58, PhantomData) at (Length(0, PhantomData),Length(0, PhantomData))) masks to bounds: false establishes 3D context: true
    Layer 7f63b45b3910: RefCell { value: CompositorData { pipeline_id: PipelineId(0), id: 140065919925168-FragmentBody-companion, wants_scroll_events: DoesntWantScrollEvents, scroll_policy: Scrollable, requested_epoch: Epoch(5), painted_epoch: Epoch(0), scroll_offset: (Length(0, PhantomData),Length(0, PhantomData)), subpage_info: None } } @ Rect(Length(800, PhantomData)×Length(650, PhantomData) at (Length(0, PhantomData),Length(0, PhantomData))) masks to bounds: false establishes 3D context: false
    Layer 7f63b45b2a10: RefCell { value: CompositorData { pipeline_id: PipelineId(0), id: 140065919924064-FragmentBody, wants_scroll_events: DoesntWantScrollEvents, scroll_policy: Scrollable, requested_epoch: Epoch(5), painted_epoch: Epoch(0), scroll_offset: (Length(0, PhantomData),Length(0, PhantomData)), subpage_info: None } } @ Rect(Length(50, PhantomData)×Length(50, PhantomData) at (Length(103, PhantomData),Length(30, PhantomData))) masks to bounds: false establishes 3D context: false
    Layer 7f63b45b3690: RefCell { value: CompositorData { pipeline_id: PipelineId(0), id: 140065919924064-FragmentBody-companion, wants_scroll_events: DoesntWantScrollEvents, scroll_policy: Scrollable, requested_epoch: Epoch(5), painted_epoch: Epoch(0), scroll_offset: (Length(0, PhantomData),Length(0, PhantomData)), subpage_info: None } } @ Rect(Length(800, PhantomData)×Length(650, PhantomData) at (Length(0, PhantomData),Length(0, PhantomData))) masks to bounds: false establishes 3D context: false
```

New output:
```
┌ Layer tree
│  ├─ Root Layer (pipeline=0) (0-FragmentBody) (800,600 at 0,0) (masks children) (3D context)
│  │  ├─ Layer (140279059771888-FragmentBody) (800,650 at 0,0) (3D context)
│  │  │  ├─ Layer (140279059772464-FragmentBody) (50,50 at 18,10) (fixed)
│  │  │  ├─ Layer (140279059773088-FragmentBody) (50,50 at 93,10) (fixed)
│  │  │  ├─ Layer (140279059773712-FragmentBody) (50,50 at 168,10)
│  │  │  │  ├─ Root Layer (pipeline=1) (0-FragmentBody) (50,50 at 0,0) (masks children) (3D context)
│  │  │  │  │  └─ Layer (140278833279472-FragmentBody) (50,58 at 0,0) (3D context)
│  │  │  ├─ Layer (140279059774384-FragmentBody) (50,50 at 243,10)
│  │  │  │  ├─ Root Layer (pipeline=2) (0-FragmentBody) (50,50 at 0,0) (masks children) (3D context)
│  │  │  │  │  └─ Layer (140279013634496-FragmentBody) (50,58 at 0,0) (3D context)
│  │  │  ├─ Layer (140279059774384-FragmentBody-companion) (800,650 at 0,0)
│  │  │  ├─ Layer (140279059773280-FragmentBody) (50,50 at 103,30)
│  │  │  └─ Layer (140279059773280-FragmentBody-companion) (800,650 at 0,0)
```

Source-Repo: https://github.com/servo/servo
Source-Revision: 507beda4c71bd6769c912eff14bb479be3dec005
2015-10-06 17:20:50 -06:00
Glenn Watson
346d7ca09a servo: Merge #7807 - Make it possible for iframes to create their own pipeline ID (from glennw:pid); r=jdm
This doesn't change any functionality, but it's the first step towards removing SubpageId.

Adding this change now will allow us to gradually change over code referencing subpage id rather than in one massive PR.

Introduces a namespace for pipeline ID generation - there is a namespace for the constellation thread, and one per script thread.

Source-Repo: https://github.com/servo/servo
Source-Revision: 098bdb5f22500a6e856b085a1140090f63ef8645
2015-10-06 01:08:32 -06:00
Glenn Watson
7adf35f9bd servo: Merge #7811 - Update servo to use published app units crate (from glennw:use-crates-au); r=larsbergstrom
Source-Repo: https://github.com/servo/servo
Source-Revision: 0860be4c28ebaee36a0df4de3510d917b0e08cb7
2015-09-30 22:21:36 -06:00
Matt Brubeck
1ab19670c4 servo: Merge #7808 - Start the constellation with the correct pixel ratio (from mbrubeck:headless-dpr); r=mrobinson
This may mitigate race conditions like #7730. r? @mrobinson

Source-Repo: https://github.com/servo/servo
Source-Revision: 9b37de965c9e7b2b906685e2f0ee915f1c901fb5
2015-09-30 20:58:10 -06:00
Matt Brubeck
37e9b0386d servo: Merge #7805 - Use same default window size in headless and non-headless compositor (from mbrubeck:headless-dpr); r=mrobinson
Attempts to fix #7730. r? @mrobinson

Source-Repo: https://github.com/servo/servo
Source-Revision: 7be4fdb57745a3cc42da6650b8b7b234bf8c93b6
2015-09-30 17:08:18 -06:00
Glenn Watson
5c835e208c servo: Merge #7795 - Split Au type into separate crate, with minimal dependencies (from glennw:app-units-crate); r=SimonSapin
Source-Repo: https://github.com/servo/servo
Source-Revision: 35888e5a1d48511ec54ddf8c58f1c7b0c47c5d3c
2015-09-30 15:19:33 -06:00
Patrick Walton
990677d856 servo: Merge #7423 - layout: Make the compositor rather than layout determine the position of each iframe (from pcwalton:iframe-stacking-context-position); r=glennw
The old code that attempted to do this during layout wasn't able to work
for multiple reasons: it couldn't know where the iframe was going to be
on the page (because of nested iframes), and at the time it was building
the display list for a fragment it couldn't know where that fragment was
going to be in page coordinates.

This patch rewrites that code so that only the size of an iframe is
determined during layout, and the position is determined by the
compositor. Layout layerizes iframes and marks the iframe layers with
the appropriate subpage ID so that the compositor can place them
correctly.

Closes #7377.

Source-Repo: https://github.com/servo/servo
Source-Revision: a0cb657fe80859dd8862361631268479d1045432
2015-09-29 19:26:49 -06:00
Patrick Walton
81d4743199 servo: Merge #7596 - layout: Load Web fonts asynchronously (from pcwalton:async-web-font-loading); r=mbrubeck
Improves page load times significantly.

Closes #7343.

Source-Repo: https://github.com/servo/servo
Source-Revision: 7933b484300131d3de79edbcf399288b22010616
2015-09-28 12:11:50 -06:00
Jaydeep
c2aab73f0a servo: Merge #7643 - Check for Extra pointer dereferencing (from jdramani:extra_ptr_dref); r=jdm
Solves issue #7640

Source-Repo: https://github.com/servo/servo
Source-Revision: 9523283c14f417014ca6d4fa8179c873bbb8f21f
2015-09-27 08:19:30 -06:00
James Graham
dd365da65b servo: Merge #7651 - Implement resettable and String-valued prefs (from jgraham:prefs_reset); r=Ms2ger
Source-Repo: https://github.com/servo/servo
Source-Revision: e04c2c78ee43ad81f2794d908a13744b6b976443
2015-09-25 08:18:06 -06:00
Ravi Shankar
62e8ea2732 servo: Merge #7698 - sorted the declarations in various files (from Wafflespeanut:sorting); r=frewsxcv
This is a direct extract from my abandoned PR for a lint (#7546), along with some rather clumsy modifications (only on `components/script/dom/mod.rs` and `components/style/lib.rs`), because I had to sort some of the files again to make peace with tidy, which hasn't been educated about sorting yet!

Source-Repo: https://github.com/servo/servo
Source-Revision: a7208869f2903e36f9b2f540b55b50283d7df466
2015-09-23 15:02:56 -06:00
Maciej Skrzypkowski
ca1a6a9ae5 servo: Merge #7707 - Add plugins for compositing and net crates #7699 (from mskrzypkows:compositing_net_plugins); r=jdm
Changed to_string calls to to_owned calls
where was a need.

Source-Repo: https://github.com/servo/servo
Source-Revision: d588ce8d8503bf0b340abfb13e2bd6a228cab900
2015-09-22 07:58:55 -06:00
Brandon Fairchild
704178a0dd servo: Merge #7662 - Check for multiple import blocks separated by whitespace (from nerith:import); r=frewsxcv
Fixes #7381.

Source-Repo: https://github.com/servo/servo
Source-Revision: a0d3c9223f09757124b1520c4f17e94fa8bbe249
2015-09-19 13:34:51 -06:00
Hugo Thiessard
3b07c13b97 servo: Merge #7680 - fixes #7390 : tidy now check the order of mod declarations even whith attribute (from Mylainos:Issue-#7390); r=metajack
Source-Repo: https://github.com/servo/servo
Source-Revision: d1b85de762c0193276010a019f931526c34c04ce
2015-09-18 14:44:48 -06:00
Matt Brubeck
a2f2bc7b84 servo: Merge #7669 - Set default limits on page zoom and pinch zoom (from mbrubeck:zoom); r=glennw
Currently these both clamp to 100% in one direction and are unbounded in the other direction.  This sets default zoom constraints of 10% to 800%.  r? @glennw

Source-Repo: https://github.com/servo/servo
Source-Revision: eae3eaf97474febb2c50a7a4d392594cbc8d2da2
2015-09-18 06:36:27 -06:00
Anthony Ramine
682b1218c7 servo: Merge #7645 - Introduce structs for compositing and script task constructors' arguments (from nox:omtc-types); r=Ms2ger
Extracted from @pcwalton's #4271.

Source-Repo: https://github.com/servo/servo
Source-Revision: 2879da54f943c9379b0c86461a87e20911bc0a0f
2015-09-16 10:41:10 -06:00
Jinwoo Song
b152f531c7 servo: Merge #7605 - Implement "transform: skew()" (from nox:skew); r=mbrubeck
Thanks to @Jinwoo-Song for the original commit, which I just rebased and cleaned up. Fixes #6237.

Source-Repo: https://github.com/servo/servo
Source-Revision: 6a12f00d6d392651bae10365b4c806f36d704b21
2015-09-16 06:31:48 -06:00
Mathieu Rheaume
824a99496b servo: Merge #7559 - Remove 'get_*' on getters as per RFC 0344 on canevas, compositing, devtools, gfx, layout, net, profile, servo and webdriver_server (from ddrmanxbxfr:RFC-0344-Work); r=nox
Hi guys,

I just gave a big pass of RFC-0344 as per issue #6224 .

Pretty much renamed all the get_* fn that were used to fetch values.

I hope I didn't rename too much.

As said in the issue discussion, I didn't touch at the scripts folder so we keep the unsafe ones pretty explicit.

I've ran the whole pass of test, everything seems to be still working right :).

Please give feedback on this PR.

Thanks for looking into it.

Source-Repo: https://github.com/servo/servo
Source-Revision: b05f4aa3aa3085e65cb75433ae37bf272216d033
2015-09-12 18:29:56 -06:00
Bryan Bell
9ae81d421b servo: Merge #7602 - Improve err msg when failing to output png (from bjwbell:improve_err_msg_when_writing_png); r=pcwalton
Before on at least Linux the following failure is hard to root cause:

    [~/servo] ./target/debug/servo -o tmp.png ./tests/html/lipsum.html
    thread '<main>' panicked at 'assertion failed: res.is_ok()', .../compositor.rs:1508
    thread '<main>' panicked at 'You should have disposed of the
    pixmap...', .../rust-layers/.../surface.rs:166

Now:

    [~/servo] ./target/debug/servo -o tmp.png ./tests/html/lipsum.html
    thread '<main>' panicked at 'Error writing png: Permission
    denied (os error 13)', .../compositor.rs:1508
    thread '<main>' panicked at 'You should have disposed of the pixmap
    properly with destroy()! This pixmap will leak!', .../rust-layers/.../surface.rs:166

r? @mbrubeck

Source-Repo: https://github.com/servo/servo
Source-Revision: eb556c1ce6ed52e2a71743a088860ac0e0df3e89
2015-09-10 23:55:41 -06:00
Connor Imes
111dfb64c8 servo: Merge #7547 - Combine script profiling with profile crates. Fixes #7514 (from connorimes:move_script_profiling); r=jdm
The script crate had its own built-in profiling which was basically doing the same thing as the profile crate.  This wraps the internal profiling around the main profile functionality.  Script-related tasks are now added to the ProfilerCategory enum.

Source-Repo: https://github.com/servo/servo
Source-Revision: ca36779a7e8298918b21ae243a43a71b1520119b
2015-09-08 09:32:56 -06:00