diff --git a/components/compositing/compositor.rs b/components/compositing/compositor.rs index 49b92f8e171..6d00a31a944 100644 --- a/components/compositing/compositor.rs +++ b/components/compositing/compositor.rs @@ -342,13 +342,15 @@ fn initialize_png(width: usize, height: usize) -> RenderTargetInfo { struct RenderNotifier { compositor_proxy: Box, + constellation_chan: Sender, } impl RenderNotifier { fn new(compositor_proxy: Box, - _: Sender) -> RenderNotifier { + constellation_chan: Sender) -> RenderNotifier { RenderNotifier { compositor_proxy: compositor_proxy, + constellation_chan: constellation_chan, } } } @@ -363,8 +365,16 @@ impl webrender_traits::RenderNotifier for RenderNotifier { } fn pipeline_size_changed(&mut self, - _: webrender_traits::PipelineId, - _: Option) { + pipeline_id: webrender_traits::PipelineId, + size: Option) { + let pipeline_id = pipeline_id.from_webrender(); + + if let Some(size) = size { + let msg = ConstellationMsg::FrameSize(pipeline_id, size.to_untyped()); + if let Err(e) = self.constellation_chan.send(msg) { + warn!("Compositor resize to constellation failed ({}).", e); + } + } } } diff --git a/components/config/opts.rs b/components/config/opts.rs index 4abcf1f8421..df2bb2e041e 100644 --- a/components/config/opts.rs +++ b/components/config/opts.rs @@ -573,6 +573,8 @@ pub fn from_cmdline_args(args: &[String]) -> ArgumentParsingResult { let (app_name, args) = args.split_first().unwrap(); let mut opts = Options::new(); + opts.optflag("c", "cpu", "CPU painting"); + opts.optflag("g", "gpu", "GPU painting"); opts.optopt("o", "output", "Output file", "output.png"); opts.optopt("s", "size", "Size of tiles", "512"); opts.optopt("", "device-pixel-ratio", "Device pixels per px", ""); @@ -618,6 +620,7 @@ pub fn from_cmdline_args(args: &[String]) -> ArgumentParsingResult { opts.optmulti("", "pref", "A preference to set to enable", "dom.mozbrowser.enabled"); opts.optflag("b", "no-native-titlebar", "Do not use native titlebar"); + opts.optflag("w", "webrender", "Use webrender backend"); opts.optopt("G", "graphics", "Select graphics backend (gl or es2)", "gl"); opts.optopt("", "config-dir", "config directory following xdg spec on linux platform", ""); diff --git a/components/constellation/constellation.rs b/components/constellation/constellation.rs index 132bf40e1ac..e3aefdeaa46 100644 --- a/components/constellation/constellation.rs +++ b/components/constellation/constellation.rs @@ -817,6 +817,12 @@ impl Constellation debug!("constellation exiting"); self.handle_exit(); } + // The compositor discovered the size of a subframe. This needs to be reflected by all + // frame trees in the navigation context containing the subframe. + FromCompositorMsg::FrameSize(pipeline_id, size) => { + debug!("constellation got frame size message"); + self.handle_frame_size_msg(pipeline_id, &TypedSize2D::from_untyped(&size)); + } FromCompositorMsg::GetFrame(pipeline_id, resp_chan) => { debug!("constellation got get root pipeline message"); self.handle_get_frame(pipeline_id, resp_chan); @@ -1083,12 +1089,6 @@ impl Constellation FromLayoutMsg::ChangeRunningAnimationsState(pipeline_id, animation_state) => { self.handle_change_running_animations_state(pipeline_id, animation_state) } - // Layout sends new sizes for all subframes. This needs to be reflected by all - // frame trees in the navigation context containing the subframe. - FromLayoutMsg::FrameSizes(iframe_sizes) => { - debug!("constellation got frame size message"); - self.handle_frame_size_msg(iframe_sizes); - } FromLayoutMsg::SetCursor(cursor) => { self.handle_set_cursor_msg(cursor) } @@ -1327,30 +1327,30 @@ impl Constellation } fn handle_frame_size_msg(&mut self, - iframe_sizes: Vec<(PipelineId, TypedSize2D)>) { - for (pipeline_id, size) in iframe_sizes { - let result = { - let pipeline = match self.pipelines.get_mut(&pipeline_id) { - Some(pipeline) => pipeline, - None => continue, - }; + pipeline_id: PipelineId, + size: &TypedSize2D) { + let msg = ConstellationControlMsg::Resize(pipeline_id, WindowSizeData { + visible_viewport: *size, + initial_viewport: *size * ScaleFactor::new(1.0), + device_pixel_ratio: self.window_size.device_pixel_ratio, + }, WindowSizeType::Initial); - if pipeline.size == Some(size) { - continue; + // Store the new rect inside the pipeline + let result = { + // Find the pipeline that corresponds to this rectangle. It's possible that this + // pipeline may have already exited before we process this message, so just + // early exit if that occurs. + match self.pipelines.get_mut(&pipeline_id) { + Some(pipeline) => { + pipeline.size = Some(*size); + pipeline.event_loop.send(msg) } - - pipeline.size = Some(size); - let msg = ConstellationControlMsg::Resize(pipeline_id, WindowSizeData { - visible_viewport: size, - initial_viewport: size * ScaleFactor::new(1.0), - device_pixel_ratio: self.window_size.device_pixel_ratio, - }, WindowSizeType::Initial); - - pipeline.event_loop.send(msg) - }; - if let Err(e) = result { - self.handle_send_error(pipeline_id, e); + None => return, } + }; + + if let Err(e) = result { + self.handle_send_error(pipeline_id, e); } } diff --git a/components/layout/display_list_builder.rs b/components/layout/display_list_builder.rs index 107e6cad360..fa5126471d3 100644 --- a/components/layout/display_list_builder.rs +++ b/components/layout/display_list_builder.rs @@ -14,7 +14,7 @@ use app_units::{AU_PER_PX, Au}; use block::{BlockFlow, BlockStackingContextType}; use canvas_traits::{CanvasData, CanvasMsg, FromLayoutMsg}; use context::SharedLayoutContext; -use euclid::{Point2D, Rect, SideOffsets2D, Size2D, TypedSize2D}; +use euclid::{Point2D, Rect, SideOffsets2D, Size2D}; use flex::FlexFlow; use flow::{BaseFlow, Flow, IS_ABSOLUTELY_POSITIONED}; use flow_ref::FlowRef; @@ -32,7 +32,6 @@ use inline::{FIRST_FRAGMENT_OF_ELEMENT, InlineFlow, LAST_FRAGMENT_OF_ELEMENT}; use ipc_channel::ipc; use list_item::ListItemFlow; use model::{self, MaybeAuto}; -use msg::constellation_msg::PipelineId; use net_traits::image::base::PixelFormat; use net_traits::image_cache_thread::UsePlaceholder; use range::Range; @@ -57,7 +56,6 @@ use style::servo::restyle_damage::REPAINT; use style::values::{RGBA, computed}; use style::values::computed::{AngleOrCorner, Gradient, GradientKind, LengthOrPercentage, LengthOrPercentageOrAuto}; use style::values::specified::{HorizontalDirection, VerticalDirection}; -use style_traits::PagePx; use style_traits::cursor::Cursor; use table_cell::CollapsedBordersForCell; use webrender_traits::{ColorF, GradientStop, ScrollPolicy}; @@ -107,10 +105,6 @@ pub struct DisplayListBuildState<'a> { /// The current scroll root id, used to keep track of state when /// recursively building and processing the display list. pub current_scroll_root_id: ScrollRootId, - - /// Vector containing iframe sizes, used to inform the constellation about - /// new iframe sizes - pub iframe_sizes: Vec<(PipelineId, TypedSize2D)>, } impl<'a> DisplayListBuildState<'a> { @@ -124,7 +118,6 @@ impl<'a> DisplayListBuildState<'a> { processing_scroll_root_element: false, current_stacking_context_id: StackingContextId::root(), current_scroll_root_id: ScrollRootId::root(), - iframe_sizes: Vec::new(), } } @@ -1450,10 +1443,6 @@ impl FragmentDisplayListBuilding for Fragment { iframe: fragment_info.pipeline_id, }); - let size = Size2D::new(item.bounds().size.width.to_f32_px(), - item.bounds().size.height.to_f32_px()); - state.iframe_sizes.push((fragment_info.pipeline_id, TypedSize2D::from_untyped(&size))); - state.add_display_item(item); } } diff --git a/components/layout_thread/lib.rs b/components/layout_thread/lib.rs index cf6ff557133..19c86f64fff 100644 --- a/components/layout_thread/lib.rs +++ b/components/layout_thread/lib.rs @@ -933,17 +933,6 @@ impl LayoutThread { let origin = Rect::new(Point2D::new(Au(0), Au(0)), root_size); build_state.root_stacking_context.bounds = origin; build_state.root_stacking_context.overflow = origin; - - if !build_state.iframe_sizes.is_empty() { - // build_state.iframe_sizes is only used here, so its okay to replace - // it with an empty vector - let iframe_sizes = std::mem::replace(&mut build_state.iframe_sizes, vec![]); - let msg = ConstellationMsg::FrameSizes(iframe_sizes); - if let Err(e) = self.constellation_chan.send(msg) { - warn!("Layout resize to constellation failed ({}).", e); - } - } - rw_data.display_list = Some(Arc::new(build_state.to_display_list())); } (ReflowGoal::ForScriptQuery, false) => {} diff --git a/components/script_traits/lib.rs b/components/script_traits/lib.rs index 295000380ca..c0131158326 100644 --- a/components/script_traits/lib.rs +++ b/components/script_traits/lib.rs @@ -696,6 +696,8 @@ pub enum WebDriverCommandMsg { pub enum ConstellationMsg { /// Exit the constellation. Exit, + /// Inform the constellation of the size of the viewport. + FrameSize(PipelineId, Size2D), /// Request that the constellation send the FrameId corresponding to the document /// with the provided pipeline id GetFrame(PipelineId, IpcSender>), diff --git a/components/script_traits/script_msg.rs b/components/script_traits/script_msg.rs index d35e23a7bb9..fc29563cbbd 100644 --- a/components/script_traits/script_msg.rs +++ b/components/script_traits/script_msg.rs @@ -15,7 +15,7 @@ use WorkerScriptLoadOrigin; use canvas_traits::CanvasMsg; use devtools_traits::{ScriptToDevtoolsControlMsg, WorkerId}; use euclid::point::Point2D; -use euclid::size::{Size2D, TypedSize2D}; +use euclid::size::Size2D; use gfx_traits::ScrollRootId; use ipc_channel::ipc::IpcSender; use msg::constellation_msg::{FrameId, PipelineId, TraversalDirection}; @@ -24,7 +24,6 @@ use net_traits::CoreResourceMsg; use net_traits::storage_thread::StorageType; use offscreen_gl_context::{GLContextAttributes, GLLimits}; use servo_url::ServoUrl; -use style_traits::PagePx; use style_traits::cursor::Cursor; use style_traits::viewport::ViewportConstraints; @@ -33,8 +32,6 @@ use style_traits::viewport::ViewportConstraints; pub enum LayoutMsg { /// Indicates whether this pipeline is currently running animations. ChangeRunningAnimationsState(PipelineId, AnimationState), - /// Inform the constellation of the size of the pipeline's viewport. - FrameSizes(Vec<(PipelineId, TypedSize2D)>), /// Requests that the constellation inform the compositor of the a cursor change. SetCursor(Cursor), /// Notifies the constellation that the viewport has been constrained in some manner diff --git a/tests/heartbeats/characterize.py b/tests/heartbeats/characterize.py index 22f2028e388..948f5b9de43 100644 --- a/tests/heartbeats/characterize.py +++ b/tests/heartbeats/characterize.py @@ -210,6 +210,9 @@ def main(): parser.add_argument("-d", "--debug", action='store_true', help="Use debug build instead of release build") + parser.add_argument("-w", "--webrender", + action='store_true', + help="Use webrender backend") parser.add_argument("-l", "--max_layout_threads", help="Specify the maximum number of threads for layout, for example \"-l 5\"") parser.add_argument("-o", "--output", @@ -230,6 +233,8 @@ def main(): benchmark = args.benchmark if args.debug: build_target = "debug" + if args.webrender: + renderer = "-w" if args.max_layout_threads: max_layout_threads = int(args.max_layout_threads) if args.output: diff --git a/tests/heartbeats/characterize_android.py b/tests/heartbeats/characterize_android.py index 0b9b0807fe5..aae26ac2cbb 100644 --- a/tests/heartbeats/characterize_android.py +++ b/tests/heartbeats/characterize_android.py @@ -85,6 +85,9 @@ def main(): parser.add_argument("-b", "--benchmark", default=benchmark, help="Gets the benchmark, for example \"-b http://www.example.com\"") + parser.add_argument("-w", "--webrender", + action='store_true', + help="Use webrender backend") parser.add_argument("-l", "--layout_threads", help="Specify the number of threads for layout, for example \"-l 5\"") parser.add_argument("-o", "--output", @@ -96,6 +99,8 @@ def main(): args = parser.parse_args() if args.benchmark: benchmark = args.benchmark + if args.webrender: + renderer = "-w" if args.layout_threads: layout_threads = int(args.layout_threads) if args.output: diff --git a/tests/wpt/harness/wptrunner/browsers/servo.py b/tests/wpt/harness/wptrunner/browsers/servo.py index 64f572d331a..2eeb5aaa158 100644 --- a/tests/wpt/harness/wptrunner/browsers/servo.py +++ b/tests/wpt/harness/wptrunner/browsers/servo.py @@ -10,20 +10,17 @@ from ..executors.executorservo import ServoTestharnessExecutor, ServoRefTestExec here = os.path.join(os.path.split(__file__)[0]) -__wptrunner__ = { - "product": "servo", - "check_args": "check_args", - "browser": "ServoBrowser", - "executor": { - "testharness": "ServoTestharnessExecutor", - "reftest": "ServoRefTestExecutor", - "wdspec": "ServoWdspecExecutor", - }, - "browser_kwargs": "browser_kwargs", - "executor_kwargs": "executor_kwargs", - "env_options": "env_options", - "update_properties": "update_properties", -} +__wptrunner__ = {"product": "servo", + "check_args": "check_args", + "browser": "ServoBrowser", + "executor": {"testharness": "ServoTestharnessExecutor", + "reftest": "ServoRefTestExecutor", + "wdspec": "ServoWdspecExecutor"}, + "browser_kwargs": "browser_kwargs", + "executor_kwargs": "executor_kwargs", + "env_options": "env_options", + "run_info_extras": "run_info_extras", + "update_properties": "update_properties"} def check_args(**kwargs): @@ -31,12 +28,11 @@ def check_args(**kwargs): def browser_kwargs(**kwargs): - return { - "binary": kwargs["binary"], - "debug_info": kwargs["debug_info"], - "binary_args": kwargs["binary_args"], - "user_stylesheets": kwargs.get("user_stylesheets"), - } + return {"binary": kwargs["binary"], + "debug_info": kwargs["debug_info"], + "binary_args": kwargs["binary_args"], + "user_stylesheets": kwargs.get("user_stylesheets"), + "render_backend": kwargs.get("servo_backend")} def executor_kwargs(test_type, server_config, cache_manager, run_info_data, @@ -55,23 +51,31 @@ def env_options(): "supports_debugger": True} +def run_info_extras(**kwargs): + return {"backend": kwargs["servo_backend"]} + + def update_properties(): - return ["debug", "os", "version", "processor", "bits"], None + return ["debug", "os", "version", "processor", "bits", "backend"], None + + +def render_arg(render_backend): + return {"cpu": "--cpu", "webrender": "-w"}[render_backend] class ServoBrowser(NullBrowser): def __init__(self, logger, binary, debug_info=None, binary_args=None, - user_stylesheets=None): + user_stylesheets=None, render_backend="webrender"): NullBrowser.__init__(self, logger) self.binary = binary self.debug_info = debug_info self.binary_args = binary_args or [] self.user_stylesheets = user_stylesheets or [] + self.render_backend = render_backend def executor_browser(self): - return ExecutorBrowser, { - "binary": self.binary, - "debug_info": self.debug_info, - "binary_args": self.binary_args, - "user_stylesheets": self.user_stylesheets, - } + return ExecutorBrowser, {"binary": self.binary, + "debug_info": self.debug_info, + "binary_args": self.binary_args, + "user_stylesheets": self.user_stylesheets, + "render_backend": self.render_backend} diff --git a/tests/wpt/harness/wptrunner/browsers/servodriver.py b/tests/wpt/harness/wptrunner/browsers/servodriver.py index 4f4a7867168..ab4dc7956b9 100644 --- a/tests/wpt/harness/wptrunner/browsers/servodriver.py +++ b/tests/wpt/harness/wptrunner/browsers/servodriver.py @@ -9,25 +9,23 @@ import tempfile from mozprocess import ProcessHandler from .base import Browser, require_arg, get_free_port, browser_command, ExecutorBrowser +from .servo import render_arg from ..executors import executor_kwargs as base_executor_kwargs from ..executors.executorservodriver import (ServoWebDriverTestharnessExecutor, ServoWebDriverRefTestExecutor) here = os.path.join(os.path.split(__file__)[0]) -__wptrunner__ = { - "product": "servodriver", - "check_args": "check_args", - "browser": "ServoWebDriverBrowser", - "executor": { - "testharness": "ServoWebDriverTestharnessExecutor", - "reftest": "ServoWebDriverRefTestExecutor", - }, - "browser_kwargs": "browser_kwargs", - "executor_kwargs": "executor_kwargs", - "env_options": "env_options", - "update_properties": "update_properties", -} +__wptrunner__ = {"product": "servodriver", + "check_args": "check_args", + "browser": "ServoWebDriverBrowser", + "executor": {"testharness": "ServoWebDriverTestharnessExecutor", + "reftest": "ServoWebDriverRefTestExecutor"}, + "browser_kwargs": "browser_kwargs", + "executor_kwargs": "executor_kwargs", + "env_options": "env_options", + "run_info_extras": "run_info_extras", + "update_properties": "update_properties"} hosts_text = """127.0.0.1 web-platform.test 127.0.0.1 www.web-platform.test @@ -43,11 +41,10 @@ def check_args(**kwargs): def browser_kwargs(**kwargs): - return { - "binary": kwargs["binary"], - "debug_info": kwargs["debug_info"], - "user_stylesheets": kwargs.get("user_stylesheets"), - } + return {"binary": kwargs["binary"], + "debug_info": kwargs["debug_info"], + "user_stylesheets": kwargs.get("user_stylesheets"), + "render_backend": kwargs.get("servo_backend")} def executor_kwargs(test_type, server_config, cache_manager, run_info_data, **kwargs): @@ -64,8 +61,12 @@ def env_options(): "supports_debugger": True} +def run_info_extras(**kwargs): + return {"backend": kwargs["servo_backend"]} + + def update_properties(): - return ["debug", "os", "version", "processor", "bits"], None + return ["debug", "os", "version", "processor", "bits", "backend"], None def make_hosts_file(): @@ -79,7 +80,7 @@ class ServoWebDriverBrowser(Browser): used_ports = set() def __init__(self, logger, binary, debug_info=None, webdriver_host="127.0.0.1", - user_stylesheets=None): + user_stylesheets=None, render_backend="webrender"): Browser.__init__(self, logger) self.binary = binary self.webdriver_host = webdriver_host @@ -89,6 +90,7 @@ class ServoWebDriverBrowser(Browser): self.hosts_path = make_hosts_file() self.command = None self.user_stylesheets = user_stylesheets if user_stylesheets else [] + self.render_backend = render_backend def start(self): self.webdriver_port = get_free_port(4444, exclude=self.used_ports) @@ -98,15 +100,11 @@ class ServoWebDriverBrowser(Browser): env["HOST_FILE"] = self.hosts_path env["RUST_BACKTRACE"] = "1" - debug_args, command = browser_command( - self.binary, - [ - "--hard-fail", - "--webdriver", str(self.webdriver_port), - "about:blank", - ], - self.debug_info - ) + debug_args, command = browser_command(self.binary, + [render_arg(self.render_backend), "--hard-fail", + "--webdriver", str(self.webdriver_port), + "about:blank"], + self.debug_info) for stylesheet in self.user_stylesheets: command += ["--user-stylesheet", stylesheet] diff --git a/tests/wpt/harness/wptrunner/executors/executorservo.py b/tests/wpt/harness/wptrunner/executors/executorservo.py index 99374f6f4a3..b627223a7df 100644 --- a/tests/wpt/harness/wptrunner/executors/executorservo.py +++ b/tests/wpt/harness/wptrunner/executors/executorservo.py @@ -30,10 +30,15 @@ from ..webdriver_server import ServoDriverServer from .executormarionette import WdspecRun pytestrunner = None +render_arg = None webdriver = None extra_timeout = 5 # seconds +def do_delayed_imports(): + global render_arg + from ..browsers.servo import render_arg + hosts_text = """127.0.0.1 web-platform.test 127.0.0.1 www.web-platform.test 127.0.0.1 www1.web-platform.test @@ -75,10 +80,8 @@ class ServoTestharnessExecutor(ProcessTestExecutor): self.result_data = None self.result_flag = threading.Event() - args = [ - "--hard-fail", "-u", "Servo/wptrunner", - "-Z", "replace-surrogates", "-z", self.test_url(test), - ] + args = [render_arg(self.browser.render_backend), "--hard-fail", "-u", "Servo/wptrunner", + "-Z", "replace-surrogates", "-z", self.test_url(test)] for stylesheet in self.browser.user_stylesheets: args += ["--user-stylesheet", stylesheet] for pref, value in test.environment.get('prefs', {}).iteritems(): @@ -210,12 +213,9 @@ class ServoRefTestExecutor(ProcessTestExecutor): with TempFilename(self.tempdir) as output_path: debug_args, command = browser_command( self.binary, - [ - "--hard-fail", "--exit", - "-u", "Servo/wptrunner", - "-Z", "disable-text-aa,load-webfonts-synchronously,replace-surrogates", - "--output=%s" % output_path, full_url - ] + self.browser.binary_args, + [render_arg(self.browser.render_backend), "--hard-fail", "--exit", + "-u", "Servo/wptrunner", "-Z", "disable-text-aa,load-webfonts-synchronously,replace-surrogates", + "--output=%s" % output_path, full_url] + self.browser.binary_args, self.debug_info) for stylesheet in self.browser.user_stylesheets: @@ -295,7 +295,7 @@ class ServoWdspecProtocol(Protocol): def setup(self, runner): try: - self.server = ServoDriverServer(self.logger, binary=self.browser.binary, binary_args=self.browser.binary_args) + self.server = ServoDriverServer(self.logger, binary=self.browser.binary, binary_args=self.browser.binary_args, render_backend=self.browser.render_backend) self.server.start(block=False) self.logger.info( "WebDriver HTTP server listening at %s" % self.server.url) diff --git a/tests/wpt/harness/wptrunner/webdriver_server.py b/tests/wpt/harness/wptrunner/webdriver_server.py index 65c996d36d9..3b2b095a4a5 100644 --- a/tests/wpt/harness/wptrunner/webdriver_server.py +++ b/tests/wpt/harness/wptrunner/webdriver_server.py @@ -165,11 +165,12 @@ class GeckoDriverServer(WebDriverServer): class ServoDriverServer(WebDriverServer): - def __init__(self, logger, binary="servo", binary_args=None, host="127.0.0.1", port=None): + def __init__(self, logger, binary="servo", binary_args=None, host="127.0.0.1", port=None, render_backend=None): env = os.environ.copy() env["RUST_BACKTRACE"] = "1" WebDriverServer.__init__(self, logger, binary, host=host, port=port, env=env) self.binary_args = binary_args + self.render_backend = render_backend def make_command(self): command = [self.binary, @@ -178,6 +179,10 @@ class ServoDriverServer(WebDriverServer): "--headless"] if self.binary_args: command += self.binary_args + if self.render_backend == "cpu": + command += ["--cpu"] + elif self.render_backend == "webrender": + command += ["--webrender"] return command diff --git a/tests/wpt/harness/wptrunner/wptcommandline.py b/tests/wpt/harness/wptrunner/wptcommandline.py index 6b2c078730c..38e7b8f5363 100644 --- a/tests/wpt/harness/wptrunner/wptcommandline.py +++ b/tests/wpt/harness/wptrunner/wptcommandline.py @@ -178,6 +178,10 @@ scheme host and port.""") servo_group.add_argument("--user-stylesheet", default=[], action="append", dest="user_stylesheets", help="Inject a user CSS stylesheet into every test.") + servo_group.add_argument("--servo-backend", + default="webrender", choices=["cpu", "webrender"], + help="Rendering backend to use with Servo.") + parser.add_argument("test_list", nargs="*", help="List of URLs for tests to run, or paths including tests to run. " diff --git a/tests/wpt/metadata/webgl/conformance-1.0.3/conformance/canvas/to-data-url-test.html.ini b/tests/wpt/metadata/webgl/conformance-1.0.3/conformance/canvas/to-data-url-test.html.ini index c57a75b9b7f..11c670ec1ab 100644 --- a/tests/wpt/metadata/webgl/conformance-1.0.3/conformance/canvas/to-data-url-test.html.ini +++ b/tests/wpt/metadata/webgl/conformance-1.0.3/conformance/canvas/to-data-url-test.html.ini @@ -3,3 +3,4 @@ expected: if os == "linux": TIMEOUT if os == "mac": CRASH + if not debug and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64) and (backend == "cpu"): CRASH diff --git a/tests/wpt/metadata/webgl/conformance-1.0.3/conformance/context/constants-and-properties.html.ini b/tests/wpt/metadata/webgl/conformance-1.0.3/conformance/context/constants-and-properties.html.ini index 8d71d201fe5..678d0b3b207 100644 --- a/tests/wpt/metadata/webgl/conformance-1.0.3/conformance/context/constants-and-properties.html.ini +++ b/tests/wpt/metadata/webgl/conformance-1.0.3/conformance/context/constants-and-properties.html.ini @@ -2,3 +2,4 @@ type: testharness expected: if os == "mac": CRASH + if not debug and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64) and (backend == "cpu"): CRASH diff --git a/tests/wpt/metadata/webgl/conformance-1.0.3/conformance/context/context-attribute-preserve-drawing-buffer.html.ini b/tests/wpt/metadata/webgl/conformance-1.0.3/conformance/context/context-attribute-preserve-drawing-buffer.html.ini index 665db3d3854..4ffd392fe67 100644 --- a/tests/wpt/metadata/webgl/conformance-1.0.3/conformance/context/context-attribute-preserve-drawing-buffer.html.ini +++ b/tests/wpt/metadata/webgl/conformance-1.0.3/conformance/context/context-attribute-preserve-drawing-buffer.html.ini @@ -3,3 +3,4 @@ expected: if os == "linux": TIMEOUT if os == "mac": CRASH + if not debug and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64) and (backend == "cpu"): CRASH diff --git a/tests/wpt/metadata/webgl/conformance-1.0.3/conformance/context/context-creation-and-destruction.html.ini b/tests/wpt/metadata/webgl/conformance-1.0.3/conformance/context/context-creation-and-destruction.html.ini index 8ea5e0cb173..1b7cd37a3da 100644 --- a/tests/wpt/metadata/webgl/conformance-1.0.3/conformance/context/context-creation-and-destruction.html.ini +++ b/tests/wpt/metadata/webgl/conformance-1.0.3/conformance/context/context-creation-and-destruction.html.ini @@ -3,3 +3,4 @@ expected: if os == "linux": TIMEOUT if os == "mac": CRASH + if not debug and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64) and (backend == "cpu"): CRASH diff --git a/tests/wpt/metadata/webgl/conformance-1.0.3/conformance/context/context-creation.html.ini b/tests/wpt/metadata/webgl/conformance-1.0.3/conformance/context/context-creation.html.ini index 5c14b32b61a..8e4ce10380d 100644 --- a/tests/wpt/metadata/webgl/conformance-1.0.3/conformance/context/context-creation.html.ini +++ b/tests/wpt/metadata/webgl/conformance-1.0.3/conformance/context/context-creation.html.ini @@ -3,3 +3,4 @@ expected: if os == "linux": TIMEOUT if os == "mac": CRASH + if not debug and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64) and (backend == "cpu"): CRASH diff --git a/tests/wpt/metadata/webgl/conformance-1.0.3/conformance/context/context-hidden-alpha.html.ini b/tests/wpt/metadata/webgl/conformance-1.0.3/conformance/context/context-hidden-alpha.html.ini index 37267c86521..594c48aaffb 100644 --- a/tests/wpt/metadata/webgl/conformance-1.0.3/conformance/context/context-hidden-alpha.html.ini +++ b/tests/wpt/metadata/webgl/conformance-1.0.3/conformance/context/context-hidden-alpha.html.ini @@ -2,3 +2,4 @@ type: testharness expected: if os == "mac": CRASH + if not debug and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64) and (backend == "cpu"): CRASH diff --git a/tests/wpt/metadata/webgl/conformance-1.0.3/conformance/context/context-lost-restored.html.ini b/tests/wpt/metadata/webgl/conformance-1.0.3/conformance/context/context-lost-restored.html.ini index a1421962f10..adda8b8b6a1 100644 --- a/tests/wpt/metadata/webgl/conformance-1.0.3/conformance/context/context-lost-restored.html.ini +++ b/tests/wpt/metadata/webgl/conformance-1.0.3/conformance/context/context-lost-restored.html.ini @@ -2,3 +2,4 @@ type: testharness expected: if os == "mac": CRASH + if not debug and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64) and (backend == "cpu"): CRASH diff --git a/tests/wpt/metadata/webgl/conformance-1.0.3/conformance/context/context-release-upon-reload.html.ini b/tests/wpt/metadata/webgl/conformance-1.0.3/conformance/context/context-release-upon-reload.html.ini index dba75970ad4..477e59cb772 100644 --- a/tests/wpt/metadata/webgl/conformance-1.0.3/conformance/context/context-release-upon-reload.html.ini +++ b/tests/wpt/metadata/webgl/conformance-1.0.3/conformance/context/context-release-upon-reload.html.ini @@ -3,3 +3,4 @@ expected: if os == "linux": TIMEOUT if os == "mac": CRASH + if not debug and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64) and (backend == "cpu"): CRASH diff --git a/tests/wpt/metadata/webgl/conformance-1.0.3/conformance/context/context-release-with-workers.html.ini b/tests/wpt/metadata/webgl/conformance-1.0.3/conformance/context/context-release-with-workers.html.ini index 5296158d3e4..f177cdceb1a 100644 --- a/tests/wpt/metadata/webgl/conformance-1.0.3/conformance/context/context-release-with-workers.html.ini +++ b/tests/wpt/metadata/webgl/conformance-1.0.3/conformance/context/context-release-with-workers.html.ini @@ -3,3 +3,4 @@ expected: if os == "linux": TIMEOUT if os == "mac": CRASH + if not debug and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64) and (backend == "cpu"): CRASH diff --git a/tests/wpt/metadata/webgl/conformance-1.0.3/conformance/context/context-type-test.html.ini b/tests/wpt/metadata/webgl/conformance-1.0.3/conformance/context/context-type-test.html.ini index d6be69e656d..43e33a30281 100644 --- a/tests/wpt/metadata/webgl/conformance-1.0.3/conformance/context/context-type-test.html.ini +++ b/tests/wpt/metadata/webgl/conformance-1.0.3/conformance/context/context-type-test.html.ini @@ -2,3 +2,4 @@ type: testharness expected: if os == "mac": CRASH + if not debug and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64) and (backend == "cpu"): CRASH diff --git a/tests/wpt/metadata/webgl/conformance-1.0.3/conformance/extensions/angle-instanced-arrays-out-of-bounds.html.ini b/tests/wpt/metadata/webgl/conformance-1.0.3/conformance/extensions/angle-instanced-arrays-out-of-bounds.html.ini index ccfd211cbad..f5c3b343f16 100644 --- a/tests/wpt/metadata/webgl/conformance-1.0.3/conformance/extensions/angle-instanced-arrays-out-of-bounds.html.ini +++ b/tests/wpt/metadata/webgl/conformance-1.0.3/conformance/extensions/angle-instanced-arrays-out-of-bounds.html.ini @@ -2,3 +2,4 @@ type: testharness expected: if os == "mac": CRASH + if not debug and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64) and (backend == "cpu"): CRASH diff --git a/tests/wpt/metadata/webgl/conformance-1.0.3/conformance/extensions/angle-instanced-arrays.html.ini b/tests/wpt/metadata/webgl/conformance-1.0.3/conformance/extensions/angle-instanced-arrays.html.ini index 21e7799d9a5..8593a9e88b8 100644 --- a/tests/wpt/metadata/webgl/conformance-1.0.3/conformance/extensions/angle-instanced-arrays.html.ini +++ b/tests/wpt/metadata/webgl/conformance-1.0.3/conformance/extensions/angle-instanced-arrays.html.ini @@ -2,3 +2,4 @@ type: testharness expected: if os == "mac": CRASH + if not debug and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64) and (backend == "cpu"): CRASH