New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reacting to environment changes #21280

Merged
merged 1 commit into from Sep 12, 2018

Conversation

Projects
None yet
7 participants
@paavininanda
Contributor

paavininanda commented Jul 30, 2018


  • ./mach build -d does not report any errors
  • ./mach test-tidy does not report any errors
  • These changes fix a subset of #11416
  • These changes do not require tests because they will be added when the complete responsive images is complete

This change is Reviewable

@highfive

This comment has been minimized.

highfive commented Jul 30, 2018

Heads up! This PR modifies the following files:

  • @asajeffrey: components/script/dom/htmlimageelement.rs
  • @KiChjang: components/script/dom/htmlimageelement.rs
@highfive

This comment has been minimized.

highfive commented Jul 30, 2018

warning Warning warning

  • These commits modify script code, but no tests are modified. Please consider adding a test!
@paavininanda

This comment has been minimized.

Contributor

paavininanda commented Jul 30, 2018

r? @jdm

@highfive highfive assigned jdm and unassigned gw3583 Jul 30, 2018

@jdm

Good start! The general framework is here; now we need to focus on some missing details.

return
}
}
let area_elements = self.areas();

This comment has been minimized.

@jdm

jdm Jul 30, 2018

Member

Let's revert the changes to this function.

@@ -871,6 +871,166 @@ impl HTMLImageElement {
ScriptThread::await_stable_state(Microtask::ImageElement(task));
}
/// <https://html.spec.whatwg.org/multipage/#img-environment-changes>
fn react_to_environment_changes(&self) {

This comment has been minimized.

@jdm

jdm Jul 30, 2018

Member

This isn't used anywhere yet, so let's add some integration:

  1. add a Vec<Dom<HTMLImageElement>> member to Document; this will be a list of responsive images that exist in the document
  2. Add methods to document to register and unregister responsive images by manipulating the vector
  3. Add method to Document that iterates over the vector and invokes react_to_environment_changes
  4. Use the new registration APIs from HTMLImageElement's bind_to_tree and unbind_from_tree methods (when binding, if is_in_doc is true then the element should be registered, when unbinding the element should be unregistered)
  5. call the new Document method from Window.evaluate_media_queries_and_report_changes
ScriptThread::await_stable_state(Microtask::ImageElement(task));
}
/// Step 3-12 of https://html.spec.whatwg.org/multipage/#img-environment-changes

This comment has been minimized.

@jdm

jdm Jul 30, 2018

Member

What about step 2?

This comment has been minimized.

@paavininanda

paavininanda Jul 31, 2018

Contributor

Didn't know how to handle multipart/x-mixed-replace, couldn't find it anywhere in the already implemented code.

This comment has been minimized.

@jdm

jdm Jul 31, 2018

Member

Step 2 is a list of condititions that should be checked, and the function should return immediately if any of them are true.

This comment has been minimized.

@nupurbaghel

nupurbaghel Jul 31, 2018

Contributor

We have added checks for all conditions except multipart/x-mixed-replace. Multipart is a mime::TopLevel but how do we check for x-mixed-replace ?

This comment has been minimized.

@jdm

jdm Jul 31, 2018

Member

The Ext Sublevel enum variant can contain any string value.

This comment has been minimized.

@paavininanda

paavininanda Aug 1, 2018

Contributor

Step 2 is there at EnvironmentChangesTask

let elem = self.upcast::<Element>();
let document = document_from_node(elem);
let base_url = document.base_url();
match self.select_image_source() {

This comment has been minimized.

@jdm

jdm Jul 30, 2018

Member

We can skip some work here by doing:

// Steps 3-4
let (selected_source, selected_pixel_density) = match self.select_image_source() {
    Some(selected) => selected,
    None => return,
};
}
// Step 6
if let Ok(img_url) = base_url.join(&String::from(src.clone())) {

This comment has been minimized.

@jdm

jdm Jul 30, 2018

Member

For cases where we return if an operation didn't succeed, it's more readable to do:

let img_url = match base_url.join(&src) {
    Ok(url) => url,
    Err(_) => return,
};
let this = this.root();
// Step 15.1
if relevant_mutation {
let mut _pending_request =

This comment has been minimized.

@jdm

jdm Jul 30, 2018

Member

I believe we can use abort_request for this instead.

// Step 15.2
*this.last_selected_source.borrow_mut() = Some(DOMString::from_string(new_selected_source));
let mut current_request = this.current_request.borrow_mut();
current_request.current_pixel_density = selected_pixel_density;

This comment has been minimized.

@jdm

jdm Jul 30, 2018

Member

I believe this needs to use the pending request, since it will be upgraded to the current request in 15.5.

current_request.current_pixel_density = selected_pixel_density;
// Step 15.3
this.current_request.borrow_mut().state = State::CompletelyAvailable;

This comment has been minimized.

@jdm

jdm Jul 30, 2018

Member

I think this needs to use the pending request.

// Already a part of the list of available images due to Step 14
// Step 15.5
current_request = this.pending_request.borrow_mut();

This comment has been minimized.

@jdm

jdm Jul 30, 2018

Member

This doesn't actually overwrite the contents of current_request. We need *current_request for that.

);
}
return;

This comment has been minimized.

@jdm

jdm Jul 30, 2018

Member

This return is redundant.

@paavininanda paavininanda force-pushed the paavininanda:Update_the_image_data branch from a65f904 to 11c5ec3 Aug 1, 2018

@jdm

Closer! Once the code in document.rs is correctly registering and unregistering image elements, running the tests should produce different results. Until then, none of this new code is being executed.

}
pub fn register_responsive_images(&self) {
for image in self.responsive_images.iter() {

This comment has been minimized.

@jdm

jdm Aug 1, 2018

Member

I don't understand what this method is attempting to do - the APIs I suggested for registering and unregistering would take an &HTMLImageElement argument and modify the responsive_images field to either append or remove it, and these new methods would be called from HTMLImageElement's bind_to_tree and unbind_from_tree methods.

pub fn responsive_images(&self) {
for image in self.responsive_images.iter() {
(*image).react_to_environment_changes();

This comment has been minimized.

@jdm

jdm Aug 1, 2018

Member

nit: no need for (*) here.

This comment has been minimized.

@paavininanda

paavininanda Aug 2, 2018

Contributor

This is being done to remove the Dom binding.

This comment has been minimized.

@jdm

jdm Aug 2, 2018

Member

Right, but it shouldn't be necessary. The Rust compiler auto-dereferences for us.

This comment has been minimized.

@paavininanda

paavininanda Aug 2, 2018

Contributor

Awesome

@@ -2221,6 +2223,30 @@ impl Document {
let counter = self.throw_on_dynamic_markup_insertion_counter.get();
self.throw_on_dynamic_markup_insertion_counter.set(counter - 1);
}
pub fn responsive_images(&self) {

This comment has been minimized.

@jdm

jdm Aug 1, 2018

Member

Let's call this react_to_environment_changes.

@@ -120,7 +120,7 @@ enum ImageRequestPhase {
Pending,
Current
}
#[derive(JSTraceable, MallocSizeOf)]
#[derive(Clone, JSTraceable, MallocSizeOf)]

This comment has been minimized.

@jdm

jdm Aug 1, 2018

Member

I suspect we can find another solution instead of cloning, which would allow us to remove this and the one for LoadBlocker that was added.

let src = match selected_source {
Some(src) => src,
_ => return,
let (selected_source, selected_pixel_density) = match self.select_image_source() {

This comment has been minimized.

@jdm

jdm Aug 1, 2018

Member

Let's add a // Steps 3-4 comment.

@@ -2669,7 +2669,7 @@ pub struct UnbindContext<'a> {
impl<'a> UnbindContext<'a> {
/// Create a new `UnbindContext` value.
fn new(parent: &'a Node,
pub fn new(parent: &'a Node,

This comment has been minimized.

@jdm

jdm Aug 1, 2018

Member

This change isn't necessary.

// TODO: Handle multipart/x-mixed-replace
// Step 2 of https://html.spec.whatwg.org/multipage/#img-environment-changes,
let element = elem.upcast::<Element>();
let has_src = element.has_attribute(&local_name!("srcset"));

This comment has been minimized.

@jdm

jdm Aug 1, 2018

Member

This check also needs to include the parent element, per https://html.spec.whatwg.org/multipage/images.html#use-srcset-or-picture . It would be nice to create a helper function that we could use in severalother places in the code.

let window = window_from_node(self);
let image_cache = window.image_cache();
let response =
image_cache.find_image_or_metadata(img_url.clone().into(),

This comment has been minimized.

@jdm

jdm Aug 1, 2018

Member

Since we already perform this check in the caller, we should avoid duplicating it here. We can move all of the match arms into the caller, along with add_cache_listener_for_element, and then remove fetch_image_for_environment_change.

@@ -375,6 +437,22 @@ impl HTMLImageElement {
window.add_pending_reflow();
}
fn process_image_response_for_environment_change(&self, image: ImageResponse) {
let element = self.upcast::<Element>();
let is_multipart_x_mixed_replace = HTMLImageElement::check_mutipart_x_mixed_replace(element);

This comment has been minimized.

@jdm

jdm Aug 1, 2018

Member

This check will need to happen as part of the process_response method, by obtaining the mime type of the Metadata object that is available there.

This comment has been minimized.

@paavininanda

paavininanda Aug 2, 2018

Contributor

We were trying to check for the mime type as follows -

if let Some(metadata) = metadata {
            if let Some(mime) = metadata.content_type {
                let mime_type = String::from("x-mixed-replace");
                match mime.into_inner() {
                    ContentType::Mime(TopLevel::Multipart, SubLevel::Ext(s), _) => {
                        if s == mime_type {
                            self.abort_request(State::Unavailable, ImageRequestPhase::Pending);
                        }
                    },
                    _ => ()
                }
            }
        }

ContentType has to be imported which is not possible because common module is private. Also we are unsure what to do in case of abort since we are inside ImageContext scope?

This comment has been minimized.

@paavininanda

paavininanda Aug 2, 2018

Contributor

We are able to find the mime type correctly. But still stuck on how to abort here ?

This comment has been minimized.

@jdm

jdm Aug 2, 2018

Member

The best way to abort is to add a field to ImageContext called aborted, set it to true, and return early from all of the handlers if aborted is true.

This comment has been minimized.

@jdm

jdm Aug 2, 2018

Member

You can import ContentType from the hyper::header module: https://doc.servo.org/hyper/header/index.html

self.abort_request(State::Unavailable, ImageRequestPhase::Pending);
}
match (image, self.image_request.get()) {

This comment has been minimized.

@jdm

jdm Aug 1, 2018

Member

We should just be able to match on image here. We will need to modify the contents of self.pending_request in order to store the image data and metadata in it when we they are available (ImageResponse::Loaded, ImageResponse::PlaceholderLoaded, ImageResponse::MetadataLoaded). When we have a fully loaded image, we should invoke finish_reacting_to_environment_changes.

This comment has been minimized.

@paavininanda

paavininanda Aug 2, 2018

Contributor

In case of None, we still need to abort ?

This comment has been minimized.

@jdm

jdm Aug 2, 2018

Member

Yes.

@paavininanda paavininanda force-pushed the paavininanda:Update_the_image_data branch from 3098a4c to 7943397 Aug 2, 2018

@nupurbaghel

This comment has been minimized.

Contributor

nupurbaghel commented Aug 2, 2018

We have updated all the suggested changes and ready for next review :)

@paavininanda

This comment has been minimized.

Contributor

paavininanda commented Aug 3, 2018

We are having 16 Pass, 20 Fail, 8 Timeout now.

@jdm

This comment has been minimized.

Member

jdm commented Aug 3, 2018

It would be worth figuring out which subtests fail or time out and why that occurs.

@jdm

This is in very good shape! It's much more readable now and easier to follow when comparing it to the specification. Most of my comments are about improving the readability; the implementation looks good!

@@ -2221,6 +2223,21 @@ impl Document {
let counter = self.throw_on_dynamic_markup_insertion_counter.get();
self.throw_on_dynamic_markup_insertion_counter.set(counter - 1);
}
pub fn react_to_environment_changes(&self) {
for image in self.responsive_images.borrow_mut().iter() {

This comment has been minimized.

@jdm

jdm Aug 3, 2018

Member

This can use .borrow() instead.

}
pub fn unregister_responsive_image(&self, img: &HTMLImageElement) {
let index = self.responsive_images.borrow_mut().iter().position(|x| **x == *img).unwrap();

This comment has been minimized.

@jdm

jdm Aug 3, 2018

Member

Instead of unwrapping, let's use if let to only call remove() when we find a matching value. We can use borrow instead of borrow_mut here, too.

@@ -178,6 +181,19 @@ impl FetchResponseListener for ImageContext {
}
});
if let Some(metadata) = metadata.as_ref() {

This comment has been minimized.

@jdm

jdm Aug 3, 2018

Member

Let's add a comment to be clear that this is implementing part of the check in a particular step of the "reacting to the environment changes" algorithm (and which step that is).

if let Some(ref content_type) = metadata.content_type {
match content_type.clone().into_inner().0 {
Mime(TopLevel::Multipart, SubLevel::Ext(s), _) => {
if s == String::from("x-mixed-replace") {

This comment has been minimized.

@jdm

jdm Aug 3, 2018

Member

We should be able to use s == "x-mixed-replace" here instead.

@@ -375,6 +396,31 @@ impl HTMLImageElement {
window.add_pending_reflow();
}
fn process_image_response_for_environment_change(&self, image: ImageResponse, src: DOMString, generation: u32,
selected_pixel_density: f64) {

This comment has been minimized.

@jdm

jdm Aug 3, 2018

Member

Let's format this as:

fn process_image_response_for_environment_change(
    &self,
    image: ImageResponse,
    src: DOMString,
    generation: u32,
    selected_pixel_density: f64)
) {
// Step 15.1
if relevant_mutation {
this.abort_request(State::Unavailable, ImageRequestPhase::Pending);

This comment has been minimized.

@jdm

jdm Aug 3, 2018

Member

We need to return after aborting the request.

_ => false
};
// TODO Handle image/x-mixed-replace
if document.is_active() && has_src && !has_pending_request {

This comment has been minimized.

@jdm

jdm Aug 3, 2018

Member

We should remove these checks now, since the exist inside react_to_environment_changes_sync_steps.

s.bind_to_tree(tree_in_doc);
}
let document = document_from_node(self);
document.register_responsive_image(self);

This comment has been minimized.

@jdm

jdm Aug 3, 2018

Member

We should only call register_responsive_image when tree_in_doc is true.

task!(process_image_response_for_environment_change: move || {
let element = element.root();
// Steps 3-4
let (selected_source, selected_pixel_density) = match element.select_image_source() {

This comment has been minimized.

@jdm

jdm Aug 3, 2018

Member

Instead of calling this, we should pass the selected source and density as arguments to add_cache_listener_for_element so we can use them inside this task.

This comment has been minimized.

@paavininanda

paavininanda Aug 3, 2018

Contributor

This gives this error https://pastebin.com/yuwdVhTT

/// Step 2-12 of https://html.spec.whatwg.org/multipage/#img-environment-changes
fn react_to_environment_changes_sync_steps(&self, generation: u32) {
fn add_cache_listener_for_element(image_cache: Arc<ImageCache>,

This comment has been minimized.

@jdm

jdm Aug 3, 2018

Member

Let's add a TODO comment about reducing the duplicating between this code and the code for regular image fetching. We can file a followup issue to address that.

@paavininanda paavininanda force-pushed the paavininanda:Update_the_image_data branch from f2daca2 to bfcee08 Aug 3, 2018

@paavininanda paavininanda force-pushed the paavininanda:Update_the_image_data branch from bfcee08 to 570cb75 Aug 3, 2018

@bors-servo

This comment has been minimized.

Contributor

bors-servo commented Sep 11, 2018

💔 Test failed - linux-rel-css

@jdm

This comment has been minimized.

Member

jdm commented Sep 11, 2018

@bors-servo

This comment has been minimized.

Contributor

bors-servo commented Sep 11, 2018

@bors-servo

This comment has been minimized.

Contributor

bors-servo commented Sep 11, 2018

💔 Test failed - linux-rel-css

@KiChjang

This comment has been minimized.

Member

KiChjang commented Sep 12, 2018

More passing tests!

{"status": "PASS", "group": "default", "message": null, "stack": null, "subtest": "<img srcset=\"/images/green-1x1.png?e36a 50w, /images/green-16x16.png?e36a 51w\" sizes=\"min(1px, 100px)\"> ref sizes=\"1px\" (standards mode)", "test": "/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-standards-mode.html", "line": 74455, "action": "test_result", "expected": "FAIL"}
{"status": "PASS", "group": "default", "message": null, "stack": null, "subtest": "<img srcset=\"/images/green-1x1.png?e36b 50w, /images/green-16x16.png?e36b 51w\" sizes=\"min(-100px, 1px)\"> ref sizes=\"1px\" (standards mode)", "test": "/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-standards-mode.html", "line": 74456, "action": "test_result", "expected": "FAIL"}
{"status": "PASS", "group": "default", "message": null, "stack": null, "subtest": "<img srcset=\"/images/green-1x1.png?e37a 50w, /images/green-16x16.png?e37a 51w\" sizes=\"(min-width:0) min(1px, 100px)\"> ref sizes=\"1px\" (standards mode)", "test": "/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-standards-mode.html", "line": 74458, "action": "test_result", "expected": "FAIL"}
{"status": "PASS", "group": "default", "message": null, "stack": null, "subtest": "<img srcset=\"/images/green-1x1.png?e37b 50w, /images/green-16x16.png?e37b 51w\" sizes=\"(min-width:0) max(-100px, 1px)\"> ref sizes=\"1px\" (standards mode)", "test": "/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-standards-mode.html", "line": 74459, "action": "test_result", "expected": "FAIL"}
{"status": "PASS", "group": "default", "message": null, "stack": null, "subtest": "<img srcset=\"/images/green-1x1.png?e38 50w, /images/green-16x16.png?e38 51w\" sizes=\"(min-width:calc(0)) 1px\"> ref sizes=\"1px\" (standards mode)", "test": "/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-standards-mode.html", "line": 74460, "action": "test_result", "expected": "FAIL"}
{"status": "PASS", "group": "default", "message": null, "stack": null, "subtest": "<img srcset=\"/images/green-1x1.png?e38a 50w, /images/green-16x16.png?e38a 51w\" sizes=\"(min-width:min(0, 200vw)) 1px\"> ref sizes=\"1px\" (standards mode)", "test": "/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-standards-mode.html", "line": 74461, "action": "test_result", "expected": "FAIL"}
{"status": "PASS", "group": "default", "message": null, "stack": null, "subtest": "<img srcset=\"/images/green-1x1.png?e38b 50w, /images/green-16x16.png?e38b 51w\" sizes=\"(min-width:max(-200vw, 0)) 1px\"> ref sizes=\"1px\" (standards mode)", "test": "/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-standards-mode.html", "line": 74462, "action": "test_result", "expected": "FAIL"}
{"status": "PASS", "group": "default", "message": null, "stack": null, "subtest": "<img srcset=\"/images/green-1x1.png?e58 50w, /images/green-16x16.png?e58 51w\" sizes=\"(min-width:0) or (unknown-mf-name) 1px\"> ref sizes=\"1px\" (standards mode)", "test": "/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-standards-mode.html", "line": 74482, "action": "test_result", "expected": "FAIL"}
{"status": "PASS", "group": "default", "message": null, "stack": null, "subtest": "<img srcset=\"/images/green-1x1.png?e59 50w, /images/green-16x16.png?e59 51w\" sizes=\"(min-width:0) or (min-width:unknown-mf-value) 1px\"> ref sizes=\"1px\" (standards mode)", "test": "/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-standards-mode.html", "line": 74483, "action": "test_result", "expected": "FAIL"}
{"status": "PASS", "group": "default", "message": null, "stack": null, "subtest": "<img srcset=\"/images/green-1x1.png?e60 50w, /images/green-16x16.png?e60 51w\" sizes=\"(min-width:0) or (min-width:-1px) 1px\"> ref sizes=\"1px\" (standards mode)", "test": "/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-standards-mode.html", "line": 74484, "action": "test_result", "expected": "FAIL"}
{"status": "PASS", "group": "default", "message": null, "stack": null, "subtest": "<img srcset=\"/images/green-1x1.png?e61 50w, /images/green-16x16.png?e61 51w\" sizes=\"(min-width:0) or (unknown &quot;general-enclosed&quot;) 1px\"> ref sizes=\"1px\" (standards mode)", "test": "/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-standards-mode.html", "line": 74485, "action": "test_result", "expected": "FAIL"}
{"status": "PASS", "group": "default", "message": null, "stack": null, "subtest": "<img srcset=\"/images/green-1x1.png?e62 50w, /images/green-16x16.png?e62 51w\" sizes=\"(min-width:0) or unknown-general-enclosed(foo) 1px\"> ref sizes=\"1px\" (standards mode)", "test": "/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-standards-mode.html", "line": 74486, "action": "test_result", "expected": "FAIL"}
{"status": "PASS", "group": "default", "message": null, "stack": null, "subtest": "<img srcset=\"/images/green-1x1.png?e106 50w, /images/green-16x16.png?e106 51w\" sizes=\"(min-width:0) or (unknown-general-enclosed !) 1px\"> ref sizes=\"1px\" (standards mode)", "test": "/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-standards-mode.html", "line": 74530, "action": "test_result", "expected": "FAIL"}
{"status": "PASS", "group": "default", "message": null, "stack": null, "subtest": "<img srcset=\"/images/green-1x1.png?f48a 50w, /images/green-16x16.png?f48a 51w\" sizes=\"min(1px, 200vw\"> ref sizes=\"1px\" (standards mode)", "test": "/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-standards-mode.html", "line": 74535, "action": "test_result", "expected": "FAIL"}
{"status": "PASS", "group": "default", "message": null, "stack": null, "subtest": "<img srcset=\"/images/green-1x1.png?f48b 50w, /images/green-16x16.png?f48b 51w\" sizes=\"max(-200vw, 1px\"> ref sizes=\"1px\" (standards mode)", "test": "/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-standards-mode.html", "line": 74536, "action": "test_result", "expected": "FAIL"}
{"status": "PASS", "group": "default", "message": null, "stack": null, "subtest": "<img srcset=\"/images/green-1x1.png?f49a 50w, /images/green-16x16.png?f49a 51w\" sizes=\"(min-width:0) min(1px, 200vw\"> ref sizes=\"1px\" (standards mode)", "test": "/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-standards-mode.html", "line": 74538, "action": "test_result", "expected": "FAIL"}
{"status": "PASS", "group": "default", "message": null, "stack": null, "subtest": "<img srcset=\"/images/green-1x1.png?f49b 50w, /images/green-16x16.png?f49b 51w\" sizes=\"(min-width:0) max(-200vw, 1px\"> ref sizes=\"1px\" (standards mode)", "test": "/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-standards-mode.html", "line": 74539, "action": "test_result", "expected": "FAIL"}
@jdm

This comment has been minimized.

Member

jdm commented Sep 12, 2018

We'll need to add that test name to the title of the intermittent issue.

@jdm

This comment has been minimized.

Member

jdm commented Sep 12, 2018

@bors-servo

This comment has been minimized.

Contributor

bors-servo commented Sep 12, 2018

⌛️ Testing commit 2de300d with merge 16a3406...

bors-servo added a commit that referenced this pull request Sep 12, 2018

Auto merge of #21280 - paavininanda:Update_the_image_data, r=jdm
Reacting to environment changes

<!-- Please describe your changes on the following line: -->

---
<!-- 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
- [x] These changes fix a subset of #11416

<!-- Either: -->
- [x] These changes do not require tests because they will be added when the complete responsive images is complete

<!-- 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/21280)
<!-- Reviewable:end -->
@bors-servo

This comment has been minimized.

Contributor

bors-servo commented Sep 12, 2018

💔 Test failed - linux-rel-css

@jdm

This comment has been minimized.

Member

jdm commented Sep 12, 2018

@bors-servo

This comment has been minimized.

Contributor

bors-servo commented Sep 12, 2018

⌛️ Testing commit 2de300d with merge 9a83ab6...

bors-servo added a commit that referenced this pull request Sep 12, 2018

Auto merge of #21280 - paavininanda:Update_the_image_data, r=jdm
Reacting to environment changes

<!-- Please describe your changes on the following line: -->

---
<!-- 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
- [x] These changes fix a subset of #11416

<!-- Either: -->
- [x] These changes do not require tests because they will be added when the complete responsive images is complete

<!-- 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/21280)
<!-- Reviewable:end -->
@bors-servo

This comment has been minimized.

Contributor

bors-servo commented Sep 12, 2018

💔 Test failed - mac-rel-css1

@jdm

This comment has been minimized.

Member

jdm commented Sep 12, 2018

@bors-servo retry

@bors-servo

This comment has been minimized.

Contributor

bors-servo commented Sep 12, 2018

@bors-servo

This comment has been minimized.

Contributor

bors-servo commented Sep 12, 2018

@bors-servo bors-servo merged commit 2de300d into servo:master Sep 12, 2018

3 checks passed

continuous-integration/appveyor/pr AppVeyor build succeeded
Details
continuous-integration/travis-ci/pr The Travis CI build passed
Details
homu Test successful
Details

@bors-servo bors-servo referenced this pull request Sep 12, 2018

Merged

Update hyper to 0.12 #21644

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment