From 0671fcb5c7d2a8a0a3178937a55f5b31d452db9c Mon Sep 17 00:00:00 2001 From: OJ Kwon Date: Fri, 16 Mar 2018 14:14:31 -0700 Subject: [PATCH] feat(capture_webrender): write webrender revision into text --- components/compositing/compositor.rs | 22 ++++++++++++++++++++-- components/compositing/lib.rs | 1 + 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/components/compositing/compositor.rs b/components/compositing/compositor.rs index 2b409b7ae3d..4f1575e3b49 100644 --- a/components/compositing/compositor.rs +++ b/components/compositing/compositor.rs @@ -24,7 +24,8 @@ use servo_config::opts; use servo_geometry::{DeviceIndependentPixel, DeviceUintLength}; use std::collections::HashMap; use std::env; -use std::fs::File; +use std::fs::{File, create_dir_all}; +use std::io::Write; use std::rc::Rc; use std::sync::mpsc::Sender; use std::time::{Duration, Instant}; @@ -36,6 +37,7 @@ use touch::{TouchHandler, TouchAction}; use webrender; use webrender_api::{self, DeviceIntPoint, DevicePoint, DeviceUintRect, DeviceUintSize, HitTestFlags, HitTestResult}; use webrender_api::{LayoutVector2D, ScrollEventPhase, ScrollLocation}; +use webrender_revision::REVISION; use windowing::{self, MouseWindowEvent, WebRenderDebugOption, WindowMethods}; #[derive(Debug, PartialEq)] @@ -1540,9 +1542,25 @@ impl IOCompositor { Ok(current_dir) => { let capture_id = now().to_timespec().sec.to_string(); let capture_path = current_dir.join("capture_webrender").join(capture_id); + let revision_file_path = capture_path.join("wr.txt"); + + if let Err(err) = create_dir_all(&capture_path) { + println!("Unable to create path '{:?}' for capture: {:?}", capture_path, err); + return + } + self.webrender_api.save_capture(capture_path, webrender_api::CaptureBits::all()); + + match File::create(revision_file_path) { + Ok(mut file) => { + if let Err(err) = write!(&mut file, "{}", REVISION) { + println!("Unable to write webrender revision: {:?}", err) + } + } + Err(err) => println!("Capture triggered, creating webrender revision info skipped: {:?}", err) + } }, - Err(err) => println!("could not locate path to save captures: {:?}", err) + Err(err) => println!("Unable to locate path to save captures: {:?}", err) } } } diff --git a/components/compositing/lib.rs b/components/compositing/lib.rs index e1a870f9695..98f1a99a406 100644 --- a/components/compositing/lib.rs +++ b/components/compositing/lib.rs @@ -39,6 +39,7 @@ use style_traits::CSSPixel; mod compositor; pub mod compositor_thread; mod touch; +mod webrender_revision; pub mod windowing; pub struct SendableFrameTree {