forked from mirrors/gecko-dev
		
	 3fa74a14ad
			
		
	
	
		3fa74a14ad
		
	
	
	
	
		
			
			…so with proper alignment. --- <!-- 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 #16486 (github issue number if applicable). <!-- Either: --> - [X] There are tests for these changes OR - [ ] These changes do not require tests because _____ <!-- 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. --> Source-Repo: https://github.com/servo/servo Source-Revision: 195100f3cac99b979e25157eb437e63bd3262e6f --HG-- extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear extra : subtree_revision : 1f340388b3b70f620cbfba6d216955d3ef23b7cb
		
			
				
	
	
		
			49 lines
		
	
	
	
		
			1.9 KiB
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
	
		
			1.9 KiB
		
	
	
	
		
			Rust
		
	
	
	
	
	
| /* This Source Code Form is subject to the terms of the Mozilla Public
 | |
|  * License, v. 2.0. If a copy of the MPL was not distributed with this
 | |
|  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 | |
| 
 | |
| use cssparser::{Parser, SourcePosition};
 | |
| use ipc_channel::ipc::IpcSender;
 | |
| use log;
 | |
| use msg::constellation_msg::PipelineId;
 | |
| use script_traits::ConstellationControlMsg;
 | |
| use servo_url::ServoUrl;
 | |
| use std::sync::{Mutex, Arc};
 | |
| use style::error_reporting::ParseErrorReporter;
 | |
| 
 | |
| #[derive(HeapSizeOf, Clone)]
 | |
| pub struct CSSErrorReporter {
 | |
|     pub pipelineid: PipelineId,
 | |
|     // Arc+Mutex combo is necessary to make this struct Sync,
 | |
|     // which is necessary to fulfill the bounds required by the
 | |
|     // uses of the ParseErrorReporter trait.
 | |
|     #[ignore_heap_size_of = "Arc is defined in libstd"]
 | |
|     pub script_chan: Arc<Mutex<IpcSender<ConstellationControlMsg>>>,
 | |
| }
 | |
| 
 | |
| impl ParseErrorReporter for CSSErrorReporter {
 | |
|     fn report_error(&self,
 | |
|                     input: &mut Parser,
 | |
|                     position: SourcePosition,
 | |
|                     message: &str,
 | |
|                     url: &ServoUrl,
 | |
|                     line_number_offset: u64) {
 | |
|         let location = input.source_location(position);
 | |
|         let line_offset = location.line + line_number_offset as usize;
 | |
|         if log_enabled!(log::LogLevel::Info) {
 | |
|             info!("Url:\t{}\n{}:{} {}",
 | |
|                   url.as_str(),
 | |
|                   line_offset,
 | |
|                   location.column,
 | |
|                   message)
 | |
|         }
 | |
| 
 | |
|         //TODO: report a real filename
 | |
|         let _ = self.script_chan.lock().unwrap().send(
 | |
|             ConstellationControlMsg::ReportCSSError(self.pipelineid,
 | |
|                                                     "".to_owned(),
 | |
|                                                     location.line,
 | |
|                                                     location.column,
 | |
|                                                     message.to_owned()));
 | |
|     }
 | |
| }
 |