Commit Graph

509 Commits

Author SHA1 Message Date
James Graham
e7e76a7cd7 servo: Merge #7545 - Update prefs API to return an Option<bool> (from jgraham:get_pref_option); r=jdm
This allows for situations where there is no reasonable default
to apply for the pref value e.g. when we are just listing values

Source-Repo: https://github.com/servo/servo
Source-Revision: 9d4217990060b3d2c93a4b39fe391985f01a5979
2015-09-04 11:02:12 -06:00
João Oliveira
4fce32deec servo: Merge #7508 - Add style_traits crate to improve crate separation, (from jxs:master); r=SimonSapin
closes #7353

Source-Repo: https://github.com/servo/servo
Source-Revision: cc1eb3f741554b3f1711cd1938d1c16b6b7d2879
2015-09-04 06:46:11 -06:00
farodin91
1184807bca servo: Merge #7500 - Implement viewport functions for window #1718 (from farodin91:viewport); r=jdm
@jdm r?
closes #6875

Source-Repo: https://github.com/servo/servo
Source-Revision: a844c0b0e8ca26e3bd76a42616e406fad8f7e5a5
2015-09-01 21:31:25 -06:00
erneyja
21488105b6 servo: Merge #7468 - Making test-tidy check that = have space after them (from JoshTheGoldfish:Issue7460); r=jdm
For issue #7460. Need to ensure compatibility with #7390.

Source-Repo: https://github.com/servo/servo
Source-Revision: 15de679f115f06a8ce33625d77e820b049730d4b
2015-09-01 08:33:02 -06:00
Glenn Watson
06cea329f1 servo: Merge #7417 - Fix requestAnimationFrame in headless mode. Fixes #7296 (from glennw:headless-raf); r=pcwalton
Source-Repo: https://github.com/servo/servo
Source-Revision: 064b72ac97197e7d1c6cbfd14a4546822c662332
2015-08-28 11:26:09 -06:00
Josh Matthews
43d2451ac6 servo: Merge #7391 - Replace catch-all experimental flag with fine-grained boolean prefere… (from jdm:prefs); r=Ms2ger
…nces initialized from a JSON document.

Source-Repo: https://github.com/servo/servo
Source-Revision: 72125f070d7faa0f3a927cf8150fabfb382648e7
2015-08-28 10:08:32 -06:00
Johann Tuffe
25ce9ab4be servo: Merge #7265 - Add alphabetical order check for use statements (from tafia:tidy-use); r=Ms2ger
close #7112

Source-Repo: https://github.com/servo/servo
Source-Revision: a5fbb2f2a6fa79755f975feff2435abb6a5dd0e9
2015-08-20 07:43:56 -06:00
João Oliveira
5ce909571e servo: Merge #7257 - Replace uses of for foo in bar.iter(), (from jxs:master); r=Ms2ger
and `for foo in bar.iter_mut(), and for foo in bar.into_iter()
(continuation of #7197)

Source-Repo: https://github.com/servo/servo
Source-Revision: 0d6d6a05009606dfbbfc9765d7dc2c745c18f6a5
2015-08-18 02:46:46 -06:00
Josh Matthews
d1f1ba555f servo: Merge #7203 - Add automated style nit checks to test-tidy (from jdm:style); r=Ms2ger
Expands on the work by @wilmoz and cleans up the existing errors. Closes #7180. Closes #7111.

Source-Repo: https://github.com/servo/servo
Source-Revision: e74825f9fde8e222f4ba9bb24b2c2a3864c73e5f
2015-08-16 08:37:40 -06:00
vectorijk
1f4731f5b3 servo: Merge #7191 - remove ScriptListener (from vectorijk:removeScriptListener); r=Ms2ger
Fix issue #7175 and for code review

Source-Repo: https://github.com/servo/servo
Source-Revision: 5ab9aa5013801a8ac2b9527a6079c62cc56ff81b
2015-08-16 03:23:27 -06:00
João Oliveira
5bbd3b623e servo: Merge #7225 - Replace uses of for foo in bar.iter() and for foo in bar.iter_mut() (from jxs:master); r=nox
closes #7197

Source-Repo: https://github.com/servo/servo
Source-Revision: a1b3f477aa541fda4d1b6ccb02c3e56143f4d217
2015-08-15 03:03:21 -06:00
João Oliveira
728883c59d servo: Merge #7208 - replace .len() == 0 with is_empty() (from jxs:master); r=Ms2ger
closes #7198

Source-Repo: https://github.com/servo/servo
Source-Revision: 85022a4c347dca3f5d28cec3010f7e9410217df4
2015-08-14 00:51:59 -06:00
Ms2ger
14218eecdb servo: Merge #7189 - Deny unsafe code in compositing (from Ms2ger:unsafe-compositing); r=larsbergstrom
Source-Repo: https://github.com/servo/servo
Source-Revision: 7f0e62b6fbc8ae03ac77750ee4568e66b794f108
2015-08-13 07:14:22 -06:00
Ms2ger
e6a90c8dc4 servo: Merge #7187 - Use Iterator::any in collect_old_layers (from Ms2ger:use-any); r=SimonSapin
Source-Repo: https://github.com/servo/servo
Source-Revision: 9fda72d60fcc2db5c4af37b58621071305858018
2015-08-13 02:55:10 -06:00
Glenn Watson
7a8eb40bf4 servo: Merge #7182 - Ensure compositor layers are collected when removed from layout (from glennw:collect-old-layers); r=pcwalton
Needed for #6643 and #7134.

Source-Repo: https://github.com/servo/servo
Source-Revision: 1542a879a544ca4d32256748b1819567a5c3b6fa
2015-08-12 18:15:40 -06:00
Ms2ger
3d6204b63a servo: Merge #7171 - Remove ScriptControlChan (from Ms2ger:ScriptControlChan); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 3ad49fc689ceb6067cd6dea1aa0d004321704b8e
2015-08-12 08:28:29 -06:00
Ms2ger
0753b75c6c servo: Merge #7170 - Avoid unwrap calls in handle_navigate_msg (from Ms2ger:unwrap-constellation); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 54300a9c73f7c8289604ab9a957419577e10c1ac
2015-08-12 07:29:47 -06:00
Patrick Walton
03469bd0d3 servo: Merge #7090 - layout: Implement basic overflow: scroll functionality (from pcwalton:overflow-scroll); r=glennw
Known issues:

* Display list optimization can sometimes optimize out elements that
  should be shown. This affects the Enyo demo.

* The `overflow: scroll` container doesn't clip the inner layer properly
  when borders, border radius, etc. are present.

* `overflow-x: scroll` and `overflow-y: scroll` don't work individually;
  elements are scrolled all at once.

Note that multiple layers per stacking context aren't needed for the Enyo demo; rather the issue is that the height of the main area is being calculated incorrectly. (It looks like JS is measuring the height and poking in an explicit value that is too tall.)

r? @glennw

Source-Repo: https://github.com/servo/servo
Source-Revision: b05b02e11fb849e1f0153d009d8fcf0501ace8dc
2015-08-10 22:29:40 -06:00
Glenn Watson
b40e42bbba servo: Merge #7141 - Update rust-layers to get 2d transform + clipping support (from glennw:2d-clipping-update); r=pcwalton
Source-Repo: https://github.com/servo/servo
Source-Revision: 5af93e9ca3500a75f845614f17323d258ee72d71
2015-08-10 20:23:42 -06:00
Connor Imes
fe8633741d servo: Merge #7009 - Remove typedefs DevtoolsControlChan and DevtoolsControlPort (from connorimes:remove-confusing-typedefs); r=Ms2ger
Source-Repo: https://github.com/servo/servo
Source-Revision: a5c7508fabb36f9f5bc14e84b5f481cf7036e5f7
2015-08-07 14:41:37 -06:00
James Graham
7de96c0710 servo: Merge #6415 - Add DOMLoad message to constellation that is sent after the DOM Load event is dispatched (from jgraham:dom_load); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 361d94d23ebf2897a240763d28fbb77b3d831b34
2015-08-07 11:30:33 -06:00
Connor Imes
d79eb1502e servo: Merge #7053 - Move net_error_list from net to net_traits. Fixes #7050 (from connorimes:move-net-error-list); r=mbrubeck
Source-Repo: https://github.com/servo/servo
Source-Revision: 44c4bb00c1cb8645ee2fc303848a5136108e594f
2015-08-07 01:55:20 -06:00
Manish Goregaokar
c75548bdb3 servo: Merge #7054 - Rollup of 3 pull requests (from Manishearth:rollup); r=Manishearth
- Successful merges: #7028, #7034, #7039
- Failed merges:

Source-Repo: https://github.com/servo/servo
Source-Revision: 76b4bae6ee45317f2ca0aefbc48b89169d2450c8
2015-08-06 17:43:09 -06:00
James Graham
8a181b2713 servo: Merge #6416 - Use hosts-replaced URL only when loading resources (from jgraham:hosts_replaced); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 8602d01af2b2081ea1e9d600abdb1ea609a65038
2015-08-05 08:01:03 -06:00
Patrick Walton
cd66568bea servo: Merge #6586 - script: Make the resource task communication use IPC channels (from pcwalton:resource-task-ipc); r=jdm
This change makes Servo use serialized messages over IPC channels for resource loading. The goal is to make it easier to make Servo multiprocess in the future. This patch does not make Servo multiprocess now; there are many other channels that need to be changed to IPC before that can happen. It does introduce a dependency on https://github.com/serde-rs/serde and https://github.com/pcwalton/ipc-channel for the first time.

At the moment, `ipc-channel` uses JSON for serialization. This is because serde does not yet have official support for bincode. When serde gains support for bincode, I'll switch to that. For now, however, the JSON encoding and decoding will constitute a significant performance regression in resource loading.

To avoid having to send boxed `AsyncResponseTarget` trait objects across process boundaries, this series of commits changes `AsyncResponseTarget` to wrap a sender only. It is then the client's responsibility to spawn a thread to proxy calls from that sender to the consumer of the resource data. This only had to be done in a few places. In the future, we may want to collapse those threads into one per process to reduce overhead. (It is impossible to continue to use `AsyncResponseTarget` as a boxed trait object across processes, regardless of how much work is done on `ipc-channel`. Vtables are fundamentally incompatible with IPC across mutually untrusting processes.)

In general, I was pretty pleased with how this turned out. The main changes are adding serialization functionality to various objects that `serde` does not know how to serialize natively—the most complicated being Hyper objects—and reworking `AsyncResponseTarget`. The overall structure of the code is unchanged, and other than `AsyncResponseTarget` no functionality was lost in moving to serialization and IPC.

r? @jdm

Source-Repo: https://github.com/servo/servo
Source-Revision: 2eb122f394651232abd683fc576a5c4288bf277f
2015-07-31 16:06:36 -06:00
Patrick Walton
33045acedc servo: Merge #6795 - Send display lists over IPC in multiprocess mode (from pcwalton:display-list-e10s-fixes); r=glennw
This patch set introduces the `--multiprocess` (`-M`) switch. Right now, all it does it cause display lists to be serialized, but eventually it will cause actual processes to be spawned.

r? @metajack

Source-Repo: https://github.com/servo/servo
Source-Revision: c4480b5d0309acc7f154166b91992f73a85de57f
2015-07-31 09:43:40 -06:00
Patrick Walton
6713195500 servo: Merge #6863 - compositing: Don't count the root layer when checking to see when to take the screenshot (from pcwalton:null-layer-id); r=glennw
… as it isn't painted after first layout comes in.

r? @glennw

Source-Repo: https://github.com/servo/servo
Source-Revision: 1fc50c6ccf98f3df3f47f5910a456a1fb88b73db
2015-07-30 23:58:05 -06:00
Simon Sapin
4d66c3f079 servo: Merge #6850 - Upgrade to rustc 1.3.0-dev (87055a68c 2015-07-30) (from servo:rustup_2015-07-30); r=SimonSapin
This builds and passes unit tests.

Source-Repo: https://github.com/servo/servo
Source-Revision: 4837dd9a1c172a55bfad0a7ae67dc3b64753be9a
2015-07-30 14:46:13 -06:00
Bruno de Oliveira Abinader
e5a182f113 servo: Merge #6181 - Implement Msg::Status with serialized url upon mouseover (from brunoabinader:mouseover-status); r=larsbergstrom
Credits for Mike Blumenkrantz (@zmike), I just rebased against trunk and
fixed the url serialization.

Fixes #6178.

Source-Repo: https://github.com/servo/servo
Source-Revision: 82e476fd07564f2822a5af1f397751027ddf7258
2015-07-30 08:45:31 -06:00
Nicholas Nethercote
2471f9031d servo: Merge #6802 - Add a kind field to memory reports (from nnethercote:report-kind); r=jdm
This is used for two memory reporting improvements.

- It's used to distinguish "explicit" memory reports from others. This
  mirrors the same categorization that is used in Firefox, and gives a single
  tree that's the best place to look. It replaces the "pages" tree which
  was always intended to be a temporary stand-in for "explicit".

- It's used to computed "heap-unclassified" values for both the jemalloc
  and system heaps, both of which are placed into the "explicit" tree.

Example output:
```
|  114.99 MiB -- explicit
|      52.34 MiB -- jemalloc-heap-unclassified
|      46.14 MiB -- system-heap-unclassified
|      14.95 MiB -- url(file:///home/njn/moz/servo2/../servo-static-suite/wikipe
dia/Guardians%20of%20the%20Galaxy%20(film)%20-%20Wikipedia,%20the%20free%20encyc
lopedia.html)
|          7.32 MiB -- js
|             3.07 MiB -- malloc-heap
|             3.00 MiB -- gc-heap
|                2.49 MiB -- used
|                0.34 MiB -- decommitted
|                0.09 MiB -- unused
|                0.09 MiB -- admin
|             1.25 MiB -- non-heap
|          1.36 MiB -- layout-worker-3-local-context
|          1.34 MiB -- layout-worker-0-local-context
|          1.24 MiB -- layout-worker-1-local-context
|          1.24 MiB -- layout-worker-4-local-context
|          1.16 MiB -- layout-worker-2-local-context
|          0.89 MiB -- layout-worker-5-local-context
|          0.38 MiB -- layout-task
|             0.31 MiB -- display-list
|             0.07 MiB -- local-context
|       1.56 MiB -- compositor-task
|          0.78 MiB -- surface-map
|          0.78 MiB -- layer-tree
```
The heap-unclassified values dominate the "explicit" tree because reporter
coverage is still quite poor.

Source-Repo: https://github.com/servo/servo
Source-Revision: bff5e325a89ab6621a049ac55c1da66e901c776c
2015-07-29 19:42:00 -06:00
ecoal95
0f3f06a4f3 servo: Merge #6812 - webgl: Make context creation fallible. Fixes #6806 (from emilio:webgl-fail); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: b90fd5931dbba9cf26e3111132587ea285dbca05
2015-07-29 15:29:58 -06:00
Avi Weinstock
56489e610f servo: Merge #6654 - Add copy-to-clipboard feature under x11 (from aweinstock314:add-x11-copy-to-clipboard); r=jdm
The main work is in the the rust-clipboard library, this PR updates Cargo.lock and adds plumbing.

0337e48b3f

Source-Repo: https://github.com/servo/servo
Source-Revision: 28e163d6c44f1d85fbaea7f236da40972b6a63b1
2015-07-29 11:26:00 -06:00
Patrick Walton
49762ba8cf servo: Merge #6822 - compositing: Tick animations right away when content enables animations (from pcwalton:tick-animations-more-often); r=glennw
Otherwise, we have to wait for the next vsync. This was capping the
framerate of the particles demo at 30 FPS in most cases.

r? @glennw

Source-Repo: https://github.com/servo/servo
Source-Revision: 416931f4be43826d3b2a96905c22f626c88b603c
2015-07-29 08:40:42 -06:00
Patrick Walton
e83405fec0 servo: Merge #6745 - devtools: Convert the developer tools to run over IPC (from pcwalton:devtools-ipc); r=jdm
This was a large, invasive change.

r? @jdm

Source-Repo: https://github.com/servo/servo
Source-Revision: 4bc1db3fe85f2a1a04536f0f6045b53b1319f4bc
2015-07-27 11:09:38 -06:00
Patrick Walton
89b3b2b275 servo: Merge #6616 - script: Make most of 2D canvas and WebGL run over IPC (from pcwalton:canvas-webgl-ipc); r=jdm
To actually make the multiprocess communication work, we'll need to
reroute the task creation to the pipeline or the compositor. But this
works as a first step.

r? @jdm

Source-Repo: https://github.com/servo/servo
Source-Revision: 1764267379a00b96a1df89f3917299a0c6fd325c
2015-07-25 01:50:31 -06:00
Patrick Walton
9a5dbcbefe servo: Merge #6629 - profile: Make the time and memory profilers run over IPC (from pcwalton:profiler-ipc); r=jdm
Uses a couple of extra threads to work around the lack of cross-process
boxed trait objects.

r? @nnethercote

Source-Repo: https://github.com/servo/servo
Source-Revision: f778e0eecf7cd8a2b870d18c3c305ff10d6b1894
2015-07-24 18:55:05 -06:00
Martin Robinson
e630ca094c servo: Merge #6679 - Have BufferMap store NativeSurfaces and rename to SurfaceMap (from mrobinson:surface-cache); r=pcwalton
We currently store LayerBuffers, because previously NativeSurfaces did
not record their own size. Now we can store NativeSurfaces directly,
which saves a bit of space in the surface cache and allows us to create
LayerBuffers only in the PaintTask.

This also means that instead of sending cached LayerBuffers, the
compositor can just send cached NativeSurfaces to the PaintTask.

Source-Repo: https://github.com/servo/servo
Source-Revision: 590cb33bb7ae9f4713a7c2ee8bfe1076c180e392
2015-07-24 17:59:45 -06:00
Martin Robinson
eac53db9f8 servo: Merge #6640 - Add memory profiling for the compositor task (from mrobinson:memory-profiling-for-compositor); r=nnethercote
Currently only the BufferMap is recorded, but a later change will also
measure the memory usage of the compositor tree.

Source-Repo: https://github.com/servo/servo
Source-Revision: 3f69eadc0d55b2f065d59dae84baeac45a0bdc8e
2015-07-22 11:44:30 -06:00
Glenn Watson
3082aad970 servo: Merge #6666 - Restore exit after load command line flag (from glennw:exit-flag); r=larsbergstrom
Also updates glutin with a crash fix that was exposed by this patch.

Source-Repo: https://github.com/servo/servo
Source-Revision: 5ac80bff8e25be65e96daaf6b7403b11d23d561a
2015-07-20 15:37:33 -06:00
Bogdan Cuza
a7c587c432 servo: Merge #6648 - Make tidy check for "*" in toml files (from boghison:tidytoml); r=jdm
This checks every .toml file for an asterisk and prints an error if found.

Source-Repo: https://github.com/servo/servo
Source-Revision: 58e9bc6583b6ebbeb27e3b28a6b271ee48cd695a
2015-07-20 14:43:05 -06:00
James Graham
0db2c15184 servo: Merge #6392 - Implement support for Get URL and Refresh in WebDriver server (from jgraham:webdriver_get_url_refresh); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 93a0c29ad4531880b359b96cc5e086af2d30f71c
2015-07-19 15:03:36 -06:00
Patrick Walton
c301520dae servo: Merge #6593 - compositing: Make the constellation messages serializable (from pcwalton:constellation-ipc); r=jdm
Same idea as before. This depends on:

* https://github.com/servo/euclid/pull/94
* https://github.com/hyperium/hyper/pull/603

r? @jdm

Source-Repo: https://github.com/servo/servo
Source-Revision: 2f4bdc6ad631dc56b64622e3390943b59270b3ae
2015-07-18 07:43:24 -06:00
Nicholas Nethercote
b78e5a3368 servo: Merge #6572 - Wire up the JS engine's memory reporting (from nnethercote:js-reporting); r=jdm
SpiderMonkey provides an extremely fine-grained breakdown of memory
usage, but for Servo we aggregate the measurements into a small number
of coarse buckets, which seems appropriate for the current level of
detail provided by Servo's memory profiler. Sample output:
```
|      17.41 MiB -- url(file:///home/njn/moz/servo/../servo-static-suite/wikipedia/Guardians%20of%20the%20Galaxy%20(film)%20-%20Wikipedia,%20the%20free%20encyclopedia.html)
|          7.32 MiB -- js
|             3.07 MiB -- malloc-heap
|             3.00 MiB -- gc-heap
|                2.48 MiB -- used
|                0.34 MiB -- decommitted
|                0.09 MiB -- unused
|                0.09 MiB -- admin
|             1.25 MiB -- non-heap
```
Most of the changes are plumbing to get the script task communicating
with the memory profiler task.

Source-Repo: https://github.com/servo/servo
Source-Revision: 2b0bdbe1c195f2f6dd7671981999d622c505fbc5
2015-07-15 17:37:30 -06:00
Martin Robinson
2b8865b89f servo: Merge #6591 - Upgrade to rustc 1.3.0-dev (fddfd089b 2015-07-10) (from servo:rustup_2015-07-10); r=larsbergstrom
Depends on https://github.com/jgraham/webdriver-rust/pull/12.

Fixes #6020.

Source-Repo: https://github.com/servo/servo
Source-Revision: 9af229b83095f2f8cfe7b61003b85ddf781f4ea7
2015-07-14 13:40:22 -06:00
Patrick Walton
cc4801b4d2 servo: Merge #6618 - script: Split Pipeline::create into chrome process and content process parts (from pcwalton:content-process-code-shuffling); r=larsbergstrom
This will make it easier to adapt to IPC.

The trickiest part here was to make script tasks spawn new layout tasks
directly instead of having the pipeline do it for them. The latter
approach will not work in multiprocess mode, because layout and script
must run in the same address space and the pipeline cannot inject tasks
into another process.

r? @larsbergstrom

Source-Repo: https://github.com/servo/servo
Source-Revision: e06eaa0064f49bc215e3851f0a3686e1191b356a
2015-07-14 12:11:09 -06:00
Patrick Walton
cd4263a0d6 servo: Merge #6596 - compositing: Make ScriptListener and LayoutControlChan messages go over IPC (from pcwalton:layout-control-ipc); r=jdm
r? @jdm

Source-Repo: https://github.com/servo/servo
Source-Revision: 64751b8eef5b95de9ac3b9a382b4cb4408cb90c0
2015-07-14 08:46:07 -06:00
Martin Robinson
d88fa0b35e servo: Merge #6530 - Move LayerBuffer cache to the compositor (from mrobinson:move-cache); r=pcwalton
Now that NativeDisplay can be shared between the compositor and the
paint task, we can move the LayerBuffer cache to the compositor. This
allows surfaces to be potentially reused between different paint tasks
and will eventually allow OpenGL contexts to be preserved between
instances of GL rasterization.

Source-Repo: https://github.com/servo/servo
Source-Revision: 10b0d8c537c226400a617d28e8a060f9ca53d242
2015-07-08 03:14:21 -06:00
Matt Brubeck
6c5ac4a1a6 servo: Merge #6528 - Reduce dependencies of the util crate (from mbrubeck:util_deps); r=Ms2ger
Because almost all our main crates depend on util, we should keep its dependencies minimal to increase parallelism and reduce the amount of stuff rebuilt when upstream crates are changed.

Source-Repo: https://github.com/servo/servo
Source-Revision: fc1e427ff9bb0e9891053ec1eba292530ebbe91a
2015-07-01 07:54:15 -06:00
Martin Robinson
633ad595be servo: Merge #6525 - Update to latest rust-layers (from mrobinson:simplify-display); r=glennw
The compositing context, painting context and display metadata have all
been collapsed into a single NativeDisplay class.

Source-Repo: https://github.com/servo/servo
Source-Revision: 4674afe846df6720882da28cbd2c3087c17d0b22
2015-06-30 17:02:26 -06:00
Jesse Ruderman
12dff28fc2 servo: Merge #6495 - Add keyboard shortcuts to glutin browser (from jruderman:add_keyboard_shortcuts_2); r=metajack
Supersedes #6488. Changes since then:

* Fix a few places where we needed cfg(feature = "window") in order to compile without the feature.
* Zoom-in shortcut now works both with and without shift. (Uses a guard because I couldn't think of another way to do it without CTFE.)
* Back/forward shortcuts now correctly use Alt on non-Mac platforms.
* The back/forward shortcuts that use square brackets are now non-Windows, rather than Mac-only. This roughly matches XP_UNIX: http://hg.mozilla.org/mozilla-central/file/d4c4ce7f060c/browser/base/content/browser-sets.inc#l354

Source-Repo: https://github.com/servo/servo
Source-Revision: 420cf4c8dcbe4bba822bb6980b301416d9b5526e
2015-06-29 11:44:03 -06:00