aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOJ Kwon <kwon.ohjoong@gmail.com>2018-03-16 14:14:31 -0700
committerOJ Kwon <kwon.ohjoong@gmail.com>2018-03-19 15:47:22 -0700
commit0671fcb5c7d2a8a0a3178937a55f5b31d452db9c (patch)
tree467b867d21cc52cd40df6224783361dcc7850b28
parent6b16e712e79b3d97863745c291c3d4e1873db4af (diff)
downloadservo-0671fcb5c7d2a8a0a3178937a55f5b31d452db9c.tar.gz
servo-0671fcb5c7d2a8a0a3178937a55f5b31d452db9c.zip
feat(capture_webrender): write webrender revision into text
-rw-r--r--components/compositing/compositor.rs22
-rw-r--r--components/compositing/lib.rs1
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<Window: WindowMethods> IOCompositor<Window> {
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 {