diff --git a/components/style/gecko/url.rs b/components/style/gecko/url.rs index e5f1b32e04c9..a0bf3ff08293 100644 --- a/components/style/gecko/url.rs +++ b/components/style/gecko/url.rs @@ -19,8 +19,10 @@ use nsstring::nsCString; use servo_arc::Arc; use std::collections::HashMap; use std::fmt::{self, Write}; +use std::mem::ManuallyDrop; use std::sync::RwLock; use style_traits::{CssWriter, ParseError, ToCss}; +use to_shmem::{SharedMemoryBuilder, ToShmem}; /// A CSS url() value for gecko. #[css(function = "url")] @@ -138,6 +140,15 @@ pub enum URLValueSource { CORSMode(CORSMode), } +impl ToShmem for URLValueSource { + fn to_shmem(&self, _builder: &mut SharedMemoryBuilder) -> ManuallyDrop { + ManuallyDrop::new(match self { + URLValueSource::URLValue(r) => URLValueSource::CORSMode(r.mCORSMode), + URLValueSource::CORSMode(c) => URLValueSource::CORSMode(*c), + }) + } +} + /// A specified non-image `url()` value. #[derive(Clone, Debug, SpecifiedValueInfo, ToCss)] pub struct SpecifiedUrl {