<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.expertiza.ncsu.edu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Gnaik2</id>
	<title>Expertiza_Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.expertiza.ncsu.edu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Gnaik2"/>
	<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=Special:Contributions/Gnaik2"/>
	<updated>2026-06-10T18:11:48Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015_M1501_Report_CSS_errors_to_the_devtools,_both_stored_and_live&amp;diff=100498</id>
		<title>CSC/ECE 517 Fall 2015 M1501 Report CSS errors to the devtools, both stored and live</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015_M1501_Report_CSS_errors_to_the_devtools,_both_stored_and_live&amp;diff=100498"/>
		<updated>2015-12-15T19:08:22Z</updated>

		<summary type="html">&lt;p&gt;Gnaik2: /* Design information */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&lt;br /&gt;
===Rust===&lt;br /&gt;
&lt;br /&gt;
[https://en.wikipedia.org/wiki/Rust_(programming_language) Rust] is a programming language developed by [http://en.wikipedia.org/wiki/Mozilla Mozilla]. It is used to design concurrent and safe systems. It is a systems programming language focused on three goals: safety, speed, and concurrency. It maintains these goals without having a garbage collector, making it a useful language for a number of use cases other languages aren’t good at: embedding in other languages, programs with specific space and time requirements, and writing low-level code, like device drivers and operating systems. &amp;lt;ref&amp;gt;http://doc.rust-lang.org/nightly/book&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Servo===&lt;br /&gt;
&lt;br /&gt;
[https://en.wikipedia.org/wiki/Servo_(layout_engine) Servo] is an experimental web browser layout engine. It is developed by Mozilla and written in Rust. It provides an [https://en.wikipedia.org/wiki/Application_programming_interface API] for hosting the engine within other software. The Servo browser currently provides developer tools to inspect [https://en.wikipedia.org/wiki/Document_Object_Model DOM], execute [https://en.wikipedia.org/wiki/JavaScript JavaScript] remotely.&lt;br /&gt;
&lt;br /&gt;
==Project Description&amp;lt;ref&amp;gt;https://github.com/servo/servo/wiki/CSS-parse-error-reporting&amp;lt;/ref&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
In this project we are adding capability to expose CSS parse errors, which are essentially syntax errors through developer tools in Servo. We are using Firefox remote developer tools, which is the capability to communicate with an arbitrary distant server that implements a protocol for exposing information about its web content.&lt;br /&gt;
&lt;br /&gt;
As part of the scope of this project we are using Firefox remote developer tools to inspect and debug the code in Servo. Servo, is an experimental web browser from Mozilla which is under development. This project contributes to the development of this web browser Servo.&lt;br /&gt;
&lt;br /&gt;
Servo implements a very basic developer tools server. This server currently supports executing JavaScript remotely and investigating the DOM (Document Object Model) tree in the document inspector. The scope of the project is to expand those capabilities by exposing CSS parsing errors.&lt;br /&gt;
&lt;br /&gt;
===Program Flow===&lt;br /&gt;
&lt;br /&gt;
'''Initial steps'''&lt;br /&gt;
&lt;br /&gt;
* Choose a website compatible with Servo and attach the remote developer tools to it. &lt;br /&gt;
* Introduce traits, methods and structure members as per the project requirement&lt;br /&gt;
* Generate CSS error messages&lt;br /&gt;
* Build servo again with the changes&lt;br /&gt;
&lt;br /&gt;
'''Subsequent steps'''&lt;br /&gt;
&lt;br /&gt;
* Generate messages which communicate the errors to the script thread. &lt;br /&gt;
* Process the messages and provide support for caching them and sending them to the devtools server if it exists. &lt;br /&gt;
* Provide the functionality to retrieve the cached CSS error messages whenever requested.&lt;br /&gt;
&lt;br /&gt;
==Environment Setup&amp;lt;ref&amp;gt;https://github.com/servo/servo&amp;lt;/ref&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===Pre-requisites===&lt;br /&gt;
&lt;br /&gt;
On Debian-based Linuxes:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install curl freeglut3-dev\&lt;br /&gt;
    libfreetype6-dev libgl1-mesa-dri libglib2.0-dev xorg-dev \&lt;br /&gt;
    gperf g++ cmake python-virtualenv python-pip \&lt;br /&gt;
    libssl-dev libbz2-dev libosmesa6-dev libxmu6 libxmu-dev libglu1-mesa-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Fedora:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dnf install curl freeglut-devel libtool gcc-c++ libXi-devel \&lt;br /&gt;
    freetype-devel mesa-libGL-devel glib2-devel libX11-devel libXrandr-devel gperf \&lt;br /&gt;
    fontconfig-devel cabextract ttmkfdir python python-virtualenv python-pip expat-devel \&lt;br /&gt;
    rpm-build openssl-devel cmake bzip2-devel libXcursor-devel libXmu-devel mesa-libOSMesa&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Cloning servo===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/servo/servo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Building Servo===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd servo&lt;br /&gt;
./mach build --dev&lt;br /&gt;
./mach run tests/html/about-mozilla.html&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Requirement Analysis (includes Changes Proposed) ==&lt;br /&gt;
&lt;br /&gt;
===Steps completed in the OSS project -===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Setting up ParserContext structure'''&lt;br /&gt;
* define a new trait called ParseErrorReporter in components/style_traits/lib.rs with an appropriate method to report an error&lt;br /&gt;
* add error_reporter member to ParserContext that uses this method&lt;br /&gt;
* make log_css_error in components/style/parser.rs take an &amp;amp;ParserContext argument and call this method&lt;br /&gt;
* extract the existing code from log_css_err into a new type that implements ParseErrorReporter in components/layout/layout_task.rs and pass instances of that type to any code that ends up creating a ParserContext value&lt;br /&gt;
* find all the affected dependencies in rest of the files calling methods and structures implemented from above steps&lt;br /&gt;
* at this point, Servo should compile and execute almost exactly as before, but where RUST_LOG=style used to expose CSS errors, now RUST_LOG=layout::layout_task will be required instead.&lt;br /&gt;
&lt;br /&gt;
'''UML Component diagram'''&lt;br /&gt;
&lt;br /&gt;
[[File: ERD_Data_Flow_ERD.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Steps to be followed for final project -===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Setting up notifications to devtools'''&lt;br /&gt;
* Add a PipelineId (from components/msg/constellation_msg.rs) member to ParserContext, to represent the source of parse errors that occur&lt;br /&gt;
* Define a new message type in ConstellationControlMsg which contains all of the information necessary to report a CSS error (including the pipeline ID), and make this new error reporter communicate with the script thread by sending messages over a Sender&amp;lt;ConstellationControlMsg&amp;gt; value that can be obtained from the code in layout_task.rs.&lt;br /&gt;
* Process the new message type in components/script/script_task.rs by -&lt;br /&gt;
  * caching each reported parse error in a vector in Document (components/script/dom/document.rs)&lt;br /&gt;
  * checking the devtools_wants_updates flag and sending it to the devtools server if it exists (notify_devtools for a model in script_task.rs)&lt;br /&gt;
* Retrieve any cached parse errors for a document on request in handle_get_cached_messages in components/scripts/devtools.rs&lt;br /&gt;
&lt;br /&gt;
'''UML Component diagram'''&lt;br /&gt;
&lt;br /&gt;
The following diagram is not exhaustive. The dependencies will be be revealed during the implementation.&lt;br /&gt;
&lt;br /&gt;
[[File: ERD_Data_Flow_ERD_b2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Appurtenant tasks -===&lt;br /&gt;
&lt;br /&gt;
* Since we are working on the main servo build, the changes we make to the build usually has a cascading affect on dependent libraries and files. We are also doing the tasks of resolving the issues caused by the dependencies. So, the scope of the requirements are larger than those specified above.&lt;br /&gt;
&lt;br /&gt;
==Design information==&lt;br /&gt;
&lt;br /&gt;
 MVC pattern is employed in the tool for CSS parse error reporting as shown below:&lt;br /&gt;
&lt;br /&gt;
[[File:MVC_pattern_CSS_error_reporter.JPG]]&lt;br /&gt;
&lt;br /&gt;
The HTML is the model which takes care of the actual data. It is the text that communicates information to the reader. CSS forms the view which sets the colors, fonts in the presentation. CSS adds visual style to the content. The same content can be presented in different ways using the content. The browser is the controller which manipulates the data through forms or Javascript. The browser combines the CSS and the HTML and renders it on the screen.&lt;br /&gt;
&lt;br /&gt;
==Testing the code==&lt;br /&gt;
&lt;br /&gt;
The correctness of the changes made are tested through 3 methodologies -&lt;br /&gt;
&lt;br /&gt;
===Build test===&lt;br /&gt;
&lt;br /&gt;
The following command on linux command line compiles and verifies if the code changes are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./mach build --dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Tidy code test===&lt;br /&gt;
&lt;br /&gt;
The following command on linux command line tests if the code though syntactically correct complies with the Mozilla's best practices of coding&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./mach test-tidy&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Logical test===&lt;br /&gt;
&lt;br /&gt;
After passing the above tests a pull request is made to the master branch of main servo build. The code changes will then be reviewed by our points of contact from Mozilla team. Mozilla team then verifies the correctness of the code and recommend changes if some improvements are needed.&lt;br /&gt;
&lt;br /&gt;
==Tasks completed for final project==&lt;br /&gt;
&lt;br /&gt;
===Step 1===&lt;br /&gt;
&lt;br /&gt;
Add a PipelineId (from components/msg/constellation_msg.rs) member to ParserContext, to represent the source of parse errors that occur&lt;br /&gt;
&lt;br /&gt;
* A new member in parser.rs was included as suggested above (along with changes in lib.rs and Cargo.toml in same folders as parser.rs in order include the struct into the file), but it was seen that the class-name PipelineId could not be used directly to instantiate a variable.&lt;br /&gt;
&lt;br /&gt;
* Hence, came a suggestion by Josh to define a function to return the PipelineId member in ParseErrorReporter trait and remove the PipelineId member from ParserContext. Also came a suggestion to use the existing ParseErrorReporter member error_reporter to return the PipelineId value from trait ParseErrorReporter. Following were the exact suggestions from Josh -&lt;br /&gt;
&lt;br /&gt;
  - Get rid of the new member in ParserContext&lt;br /&gt;
  - Add a new method to the ParseErrorReporter trait which returns a PipelineId value&lt;br /&gt;
  - Add a new PipelineId member to the CSSErrorReporter struct, and make the new method return that value in the ParseErrorReporter implementation for CSSErrorReporter&lt;br /&gt;
  - call the new method using the ParseErrorReporter member that already exists in ParserContext instead of using the PipelineId member originally described in the task&lt;br /&gt;
&lt;br /&gt;
* Now, to include this function in ParseErrorReporter which was defined in components/style_traits/lib.rs a crate for msg folder was declared inside this lib.rs and also include a use statement for msg::constellation_msg::PipelineId. We also had to include the path of the corresponding the msg folder in components/style_traits/Cargo.toml. But this caused the issue of cyclic dependency, since constellation_msg.rs already had included the folder components/style_traits into its lib.rs.&lt;br /&gt;
&lt;br /&gt;
  - Cyclic dependency : components/style_traits/lib.rs dependent on itself&lt;br /&gt;
&lt;br /&gt;
* When this problem was communicated to Josh, we were suggested us to move the definition of the trait ParseErrorReporter from components/style_traits/lib.rs to components/msg/lib.rs itself&lt;br /&gt;
&lt;br /&gt;
* This solved the previous error but threw an error is all places where ParseErrorReporter trait was used. This was because previously all functions were using &amp;quot;use style_traits::ParserErrorReporter&amp;quot; (and corresponding changes in lib.rs and Cargo.toml) to obtain the definition of ParseErrorReporter. This declaration had just been moved to another file in previous step. About 7 different files were visited and the include statements were changed to &amp;quot;use msg::ParserErrorReporter&amp;quot; (and also make the corresponding changes to their lib.rs and Cargo.toml).&lt;br /&gt;
&lt;br /&gt;
* After solving the previous error, another set of errors on pipelineid showed up. In fact,  there was another trait called StdoutErrorReporter which was analogous in definition to our ParseErrorReporter. Hence, all the changes made in ParseErrorReporter were also made in StdoutErrorReporter in order to maintain consistency.&lt;br /&gt;
&lt;br /&gt;
* After solving the previous error, another set of errors were met. Apparently, the Rust language was upgraded recently. As a result of which syntaxes of some functions calling member functions of StdoutErrorReporter had to be changed from:&lt;br /&gt;
&lt;br /&gt;
  '''let error_reporter = box StdoutErrorReporter;'''          to&lt;br /&gt;
  '''letbox error_reporter  = StdoutErrorReporter {'''&lt;br /&gt;
                           '''pipelineid: self.pipelineid,'''&lt;br /&gt;
                           '''};'''&lt;br /&gt;
&lt;br /&gt;
* Also, after solving the previous error, another set of errors where were found with the same dependency as previous step in a function call present in a file which was not part of project description. The lines higlighted below were throwing an error in selector_matching.rs and also in 2 other similar files:&lt;br /&gt;
&lt;br /&gt;
    lazy_static! {&lt;br /&gt;
    pub static ref USER_OR_USER_AGENT_STYLESHEETS: Vec&amp;lt;Stylesheet&amp;gt; = {&lt;br /&gt;
        let mut stylesheets = vec!();&lt;br /&gt;
        // FIXME: presentational-hints.css should be at author origin with zero specificity.&lt;br /&gt;
        //        (Does it make a difference?)&lt;br /&gt;
        for &amp;amp;filename in &amp;amp;[&amp;quot;user-agent.css&amp;quot;, &amp;quot;servo.css&amp;quot;, &amp;quot;presentational-hints.css&amp;quot;] {&lt;br /&gt;
            match read_resource_file(&amp;amp;[filename]) {&lt;br /&gt;
                Ok(res) =&amp;gt; {&lt;br /&gt;
                    let ua_stylesheet = Stylesheet::from_bytes(&lt;br /&gt;
                        &amp;amp;res,&lt;br /&gt;
                        Url::parse(&amp;amp;format!(&amp;quot;chrome:///{:?}&amp;quot;, filename)).unwrap(),&lt;br /&gt;
                        None,&lt;br /&gt;
                        None,&lt;br /&gt;
                        Origin::UserAgent,&lt;br /&gt;
                        '''''box StdoutErrorReporter''''');&lt;br /&gt;
                    stylesheets.push(ua_stylesheet);&lt;br /&gt;
                }&lt;br /&gt;
                Err(..) =&amp;gt; {&lt;br /&gt;
                    error!(&amp;quot;Failed to load UA stylesheet {}!&amp;quot;, filename);&lt;br /&gt;
                    process::exit(1);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        for &amp;amp;(ref contents, ref url) in &amp;amp;opts::get().user_stylesheets {&lt;br /&gt;
            stylesheets.push(Stylesheet::from_bytes(&lt;br /&gt;
                &amp;amp;contents, url.clone(), None, None, Origin::User, '''''box StdoutErrorReporter'''''));&lt;br /&gt;
        }&lt;br /&gt;
        stylesheets&lt;br /&gt;
     };&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
So, following statements were changed -&lt;br /&gt;
&lt;br /&gt;
    '''box StdoutErrorReporter'''                       to&lt;br /&gt;
    '''box StdoutErrorReporter { pipelineid: PipelineId::fake_root_pipeline_id() }'''&lt;br /&gt;
&lt;br /&gt;
* Similar changes had to be made to files like report.rs and window.rs containing the following statement:&lt;br /&gt;
&lt;br /&gt;
    '''let error_reporter = CSSErrorReporter;'''         to&lt;br /&gt;
    '''let error_reporter = CSSErrorReporter { pipelineid:  PipelineId::fake_root_pipeline_id() };'''        or&lt;br /&gt;
    '''let error_reporter = box CSSErrorReporter { pipelineid: self.pipelineid, } ;'''                       based on the context&lt;br /&gt;
&lt;br /&gt;
* Along with the changes mentioned above some more minor errors and dependencies were taken care. Final changes for step 1 is available in the following link of commit to the forked repository:&lt;br /&gt;
&lt;br /&gt;
      https://github.com/GauriGNaik/servo/commit/e5021c76d8239dacaff0771b043f648a97f71c42&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Changes after the code review'''&lt;br /&gt;
&lt;br /&gt;
* In layout_task.rs for the pipelineid, since an id was already available, the instantiation of pipelineid was changed from PipelineId::fake_root_pipeline_id() to id&lt;br /&gt;
&lt;br /&gt;
* In layout_task.rs, the position of use statement &amp;quot;use msg::ParseErrorReporter&amp;quot; was changed to fit the alphabetical order&lt;br /&gt;
&lt;br /&gt;
* In msg/lib.rs, the position of use statement &amp;quot;use cssparser::{Parser, SourcePosition}&amp;quot; was changed to fit the alphabetical order&lt;br /&gt;
&lt;br /&gt;
* In msg/lib.rs, the function call &amp;quot;return_pipeline&amp;quot; was changed to &amp;quot;pipeline&amp;quot; as per servo conventions&lt;br /&gt;
&lt;br /&gt;
* The change made in previous step, necessitates the function declaration in script/reporter.rs to be changed from return_pipeline to pipeline.&lt;br /&gt;
&lt;br /&gt;
* In dom/cssstyledeclaration.rs, the position of use statement &amp;quot;use msg::ParseErrorReporter&amp;quot; was changed to fit servo conventions on functionality&lt;br /&gt;
&lt;br /&gt;
* In layout/context.rs, the position of use statement &amp;quot;use msg::compositor_msg::LayerId&amp;quot; was changed to fit servo conventions on functionality&lt;br /&gt;
&lt;br /&gt;
* In layout/window.rs, the position of use statement &amp;quot;use msg::ParseErrorReporter&amp;quot; was changed to fit servo conventions on functionality&lt;br /&gt;
&lt;br /&gt;
* In dom/window.rs, for the pipelineid, since an id was already available, the instantiation of pipelineid was changed from PipelineId::fake_root_pipeline_id() to id&lt;br /&gt;
&lt;br /&gt;
* In selector_matching.rs also the function return_pipelineid had to be redeclared as pipeline&lt;br /&gt;
&lt;br /&gt;
* Some more changes to make the code tidy and follow the conventions were made at followinf files - parser.rs, selector_matching.rs and stylesheets.rs&lt;br /&gt;
&lt;br /&gt;
* The changes made after the first code review can be found in following link:&lt;br /&gt;
&lt;br /&gt;
      https://github.com/GauriGNaik/servo/commit/d756c17f4f91f9ef1cf4d9b5c750edc29b0a5071&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''UML Component diagram'''&lt;br /&gt;
&lt;br /&gt;
[[File: UML3 New Page.jpeg]]&lt;br /&gt;
&lt;br /&gt;
===Step 2===&lt;br /&gt;
&lt;br /&gt;
Define a new message type in ConstellationControlMsg which contains all of the information necessary to report a CSS error (including the pipeline ID), and make this new error reporter communicate with the script thread by sending messages over a Sender&amp;lt;ConstellationControlMsg&amp;gt; value that can be obtained from the code in layout_task.rs&lt;br /&gt;
&lt;br /&gt;
* A new type CSSErrorReporting was declared in script_task/lib.rs with necessary parameters&lt;br /&gt;
&lt;br /&gt;
* In script_task.rs, the method handle_css_error_reporting was defined, an empty stub&lt;br /&gt;
&lt;br /&gt;
* Also, in script_task.rs, in impl ScriptTask, the ConstellationControlMsg::CSSErrorReporting method was mapped to self.handle_css_error_reporting&lt;br /&gt;
&lt;br /&gt;
===Step 3 (a)===&lt;br /&gt;
&lt;br /&gt;
Process the new message type in components/script/script_task.rs by:&lt;br /&gt;
caching each reported parse error in a vector in Document (components/script/dom/document.rs)&lt;br /&gt;
&lt;br /&gt;
* In dom/document.rs, css_errors_store was included with all 5 parameters for the CSSErrorReporting function defined in the previous step&lt;br /&gt;
&lt;br /&gt;
* The previous step gave errors as some of the parameters were undefined, hence a new structure CSSError was declared in script_task.rs with all the 5 parameters declareas its members&lt;br /&gt;
&lt;br /&gt;
* In document.rs, the css_errors_store declaration was changed to include the structure defined above as css_errors_store: DOMRefCell&amp;lt;Vec&amp;lt;CSSError&amp;gt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* In order for above operation to run successfully, the structure has to be included in script_task.rs using &amp;quot;use script_task::CSSError&amp;quot; statement&lt;br /&gt;
&lt;br /&gt;
* For the above use statement to work, the dependency was declared in script_traits/Cargo.toml&lt;br /&gt;
&lt;br /&gt;
* The member css_errors_store was defined as css_errors_store: DOMRefCell::new(vec![]) in impl PartialEq&lt;br /&gt;
&lt;br /&gt;
* In order to perform caching of reported parse error, a function report_css_error was declared in impl PartialEq.&lt;br /&gt;
&lt;br /&gt;
* The statement self.css_errors_store.borrow_mut().push(css_error) was used inside the function above to perform the actual caching&lt;br /&gt;
&lt;br /&gt;
===Step 3 (b)===&lt;br /&gt;
&lt;br /&gt;
checking the devtools_wants_updates flag and sending it to the devtools server if it exists (see notify_devtools for a model in script_task.rs)&lt;br /&gt;
&lt;br /&gt;
* Initially, in window.rs a function was declared to get devtools_wants_updates flag and return it&lt;br /&gt;
&lt;br /&gt;
* This was used in handle_css_error_reporting function in script_task.rs&lt;br /&gt;
&lt;br /&gt;
* When enquired, with Josh if we were in the right direction, we were suggested to use a new message variant ReportCSSError in ScriptToDevtoolsControlMsg enum which already contained a CSSError object&lt;br /&gt;
&lt;br /&gt;
* When, the above suggestion was implemented we faced a cyclic dependency error as CSSError was declared in script_task.rs which was already depending on devtools_traits&lt;br /&gt;
&lt;br /&gt;
* When enquired, Josh suggested to move CSSError to devtools_traits.rs&lt;br /&gt;
&lt;br /&gt;
* But, we had already tried this and knew this wouldn't work as CSSError needs to implement JSTraceable which is there again in script::dom::binding....&lt;br /&gt;
&lt;br /&gt;
* When again enquired, Josh suggested to get around the problem by adding an entry to the list of no_jsmanaged_fields in script/dom/bindings/trace.JS&lt;br /&gt;
&lt;br /&gt;
* Then, an entry was added as follows:&lt;br /&gt;
 no_jsmanaged_fields!(JSTraceable); &lt;br /&gt;
&lt;br /&gt;
But it wasn't clear how we were to include JSTraceable in devtools_traits file. &lt;br /&gt;
&lt;br /&gt;
What 'use' statement should be used to use JSTraceable and not throw a cyclic dependency error&lt;br /&gt;
&lt;br /&gt;
* Then, as per Josh's suggestions and after some more conversations following changes were finally incorporated -&lt;br /&gt;
  the function handle_css_error_reporting in script_task.rs was defined to obtain a page for a given pipeline_id&lt;br /&gt;
&lt;br /&gt;
* a variable css_error was declared which collects the value returned by CSSError for a given pipeline_id, filename, line, column and msg&lt;br /&gt;
&lt;br /&gt;
* push this variable into document.report_css_error&lt;br /&gt;
&lt;br /&gt;
'''Dependencies'''&lt;br /&gt;
&lt;br /&gt;
* The above changes had a lot of dependencies which required following changes:&lt;br /&gt;
in script_traits/Cargo.toml, a statement was added to declare to account for dependency on cssparser&lt;br /&gt;
&lt;br /&gt;
* in servo/Cargo.lock, inclusion statements were used for dependencies on cssparser&lt;br /&gt;
&lt;br /&gt;
* in style/Cargo.toml, a statement was added to include dependencies on components/msg&lt;br /&gt;
&lt;br /&gt;
* in style/lib.rs a crate was included for msg folder&lt;br /&gt;
&lt;br /&gt;
* in media_queries.rs use statements were included for msg::ParseErrorReporter and msg::constellation_msg::PipelineId&lt;br /&gt;
&lt;br /&gt;
* a function CSSErrorReporterTest was declared including the member pipelineid&lt;br /&gt;
&lt;br /&gt;
* in impl ParseErrorReporter for CSSErrorReporterTest; the previous declaration on error_reporter was removed and the function pipeline was defined to return the current piepelineid&lt;br /&gt;
&lt;br /&gt;
* in function test_media_rule the definition of the member stylesheet was changed to accounting for syntax changes in Rust language due to its recent update&lt;br /&gt;
&lt;br /&gt;
* similar change as mentioned in previous step was performed for the member ss in the function media_query_test&lt;br /&gt;
&lt;br /&gt;
* in style/stylesheets.rs a use statement for msg::constellation_msg::PipelineId was added&lt;br /&gt;
&lt;br /&gt;
* the definition of the member stylesheet was changed accounting for syntax changes in Rust language due to its recent update&lt;br /&gt;
&lt;br /&gt;
* in style/viewport.rs, use statements for msg::ParseErrorReporter and msg::constellation_msg::PipelineId were added&lt;br /&gt;
&amp;quot;&lt;br /&gt;
* the definitions of the members error_reporter, styesheet and context was changed accounting for syntax changes in Rust language due to its recent update&lt;br /&gt;
&lt;br /&gt;
* The commits after step 1 till here can be found in the link below:&lt;br /&gt;
&lt;br /&gt;
     https://github.com/GauriGNaik/servo/commit/5b7281ac7a7416248de7871315ad79dcb3ac2804&lt;br /&gt;
&lt;br /&gt;
'''Changes after the code review'''&lt;br /&gt;
&lt;br /&gt;
* in script_task.rs, the declaration for the member pipeline_id was removed&lt;br /&gt;
&lt;br /&gt;
* few changes for alignment of the functions handle_css_error_reporting, onstellationControlMsg::CSSErrorReporting and the member css_error  were to be made&lt;br /&gt;
&lt;br /&gt;
* dependency statement on cssparser in Cargo.toml was removed&lt;br /&gt;
&lt;br /&gt;
* in script.traits/lib.rs, the crate declaration for crate cssparser was removed so was use statement for cssparser::SourceLocation.&lt;br /&gt;
&lt;br /&gt;
* The function call for CSSErrorReporting was changed to ReportCSSError&lt;br /&gt;
&lt;br /&gt;
* in servo/Cargo.lock, dependency statement on cssparser was removed&lt;br /&gt;
&lt;br /&gt;
* in style/media_queries, in the function pipeline, return statement was changed from &amp;quot;return self.pipelineid&amp;quot; to &amp;quot;return PipelineId::fake_root_pipeline_id()&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* in style/stylesheets.rs, use statement for msg::constellation_msg::PipelineId was removed&lt;br /&gt;
&lt;br /&gt;
* in style/viewport.rs, use statement for msg::constellation_msg::PipelineId was removed&lt;br /&gt;
&lt;br /&gt;
* The commits for changes done for code reviews on steps 2 and 3 can be found in the link below:&lt;br /&gt;
&lt;br /&gt;
    https://github.com/GauriGNaik/servo/commit/110e86619c5ae9a312c914ee68e6794df03ee924&lt;br /&gt;
&lt;br /&gt;
'''UML Component diagram'''&lt;br /&gt;
&lt;br /&gt;
[[File: UML2 New Page.jpeg]]&lt;br /&gt;
&lt;br /&gt;
===Step 4===&lt;br /&gt;
&lt;br /&gt;
Retrieve any cached parse errors for a document on request in handle_get_cached_messages in components/scripts/devtools.rs&lt;br /&gt;
&lt;br /&gt;
[Following are not the final changes. Still, we are facing a couple of errors. We wil resolve them soon]&lt;br /&gt;
&lt;br /&gt;
* in devtools/lib.rs, a macro DevtoolsControlMsg::FromScript was defined which instantiates a member console_message with struct variable ConsoleMessage with members message, logLevel, filename, lineNumber and columnNumber&lt;br /&gt;
&lt;br /&gt;
* in devtools_traits/lib.rs, a use statement &amp;quot;use util::mem::HeapSizeOf&amp;quot; was added&lt;br /&gt;
&lt;br /&gt;
* the definition of the struct CSSError was moved from script_task.rs to devtools_traits/lib.rs&lt;br /&gt;
&lt;br /&gt;
* in devtools_traits/lib.rs, inside enum DevtoolsControlMsg, a function ReportCSSError was declared with parameters PipelineId and CSSError&lt;br /&gt;
&lt;br /&gt;
* in bindings/trace.rs, a use statement was added to include &amp;quot;devtools_traits::CSSError&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* a declaration was also added for no_jsmanaged_fields!(CSSError) function&lt;br /&gt;
&lt;br /&gt;
* in document.rs, the use statement for script_task::CSSError was removed and use statement for devtools_traits::CSSError was added&lt;br /&gt;
&lt;br /&gt;
* in window.rs, a function return_devtools_flag was added to return the flag devtools_wants_updates&lt;br /&gt;
&lt;br /&gt;
* in script/script_task.rs, use statement for devtools_traits::CSSError was added&lt;br /&gt;
&lt;br /&gt;
* in function handle_css_error_reporting the datatype usize was changed to u32 as per new Rust conventions&lt;br /&gt;
&lt;br /&gt;
* The function document.report_css_error which was taking the parameter css_error was changed to include css_error.clone() as parameter&lt;br /&gt;
&lt;br /&gt;
* The function document.report_css_error was defined to send pipelineid and css_error on a devtools channel if devtools_wants_updates flag is set&lt;br /&gt;
&lt;br /&gt;
* in script_traits/lib.rs, in the function ReportCSSError, the datatype usize was change to u32&lt;br /&gt;
&lt;br /&gt;
* The commits for changes after the code review on step 3 till the changes mentioned in the previous steps can be found in the link below:&lt;br /&gt;
&lt;br /&gt;
    https://github.com/GauriGNaik/servo/commit/77e8721b27be8f75363aa82dd468b30ed2718e04&lt;br /&gt;
&lt;br /&gt;
'''UML Component diagram'''&lt;br /&gt;
&lt;br /&gt;
[[File: UML1 New Page.jpeg]]&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Mozilla Mozilla]&lt;br /&gt;
* [https://github.com/rust-lang/rust Rust]&lt;br /&gt;
* [https://github.com/servo/servo Servo]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Gnaik2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015_M1501_Report_CSS_errors_to_the_devtools,_both_stored_and_live&amp;diff=100497</id>
		<title>CSC/ECE 517 Fall 2015 M1501 Report CSS errors to the devtools, both stored and live</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015_M1501_Report_CSS_errors_to_the_devtools,_both_stored_and_live&amp;diff=100497"/>
		<updated>2015-12-15T19:04:19Z</updated>

		<summary type="html">&lt;p&gt;Gnaik2: /* Design information */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&lt;br /&gt;
===Rust===&lt;br /&gt;
&lt;br /&gt;
[https://en.wikipedia.org/wiki/Rust_(programming_language) Rust] is a programming language developed by [http://en.wikipedia.org/wiki/Mozilla Mozilla]. It is used to design concurrent and safe systems. It is a systems programming language focused on three goals: safety, speed, and concurrency. It maintains these goals without having a garbage collector, making it a useful language for a number of use cases other languages aren’t good at: embedding in other languages, programs with specific space and time requirements, and writing low-level code, like device drivers and operating systems. &amp;lt;ref&amp;gt;http://doc.rust-lang.org/nightly/book&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Servo===&lt;br /&gt;
&lt;br /&gt;
[https://en.wikipedia.org/wiki/Servo_(layout_engine) Servo] is an experimental web browser layout engine. It is developed by Mozilla and written in Rust. It provides an [https://en.wikipedia.org/wiki/Application_programming_interface API] for hosting the engine within other software. The Servo browser currently provides developer tools to inspect [https://en.wikipedia.org/wiki/Document_Object_Model DOM], execute [https://en.wikipedia.org/wiki/JavaScript JavaScript] remotely.&lt;br /&gt;
&lt;br /&gt;
==Project Description&amp;lt;ref&amp;gt;https://github.com/servo/servo/wiki/CSS-parse-error-reporting&amp;lt;/ref&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
In this project we are adding capability to expose CSS parse errors, which are essentially syntax errors through developer tools in Servo. We are using Firefox remote developer tools, which is the capability to communicate with an arbitrary distant server that implements a protocol for exposing information about its web content.&lt;br /&gt;
&lt;br /&gt;
As part of the scope of this project we are using Firefox remote developer tools to inspect and debug the code in Servo. Servo, is an experimental web browser from Mozilla which is under development. This project contributes to the development of this web browser Servo.&lt;br /&gt;
&lt;br /&gt;
Servo implements a very basic developer tools server. This server currently supports executing JavaScript remotely and investigating the DOM (Document Object Model) tree in the document inspector. The scope of the project is to expand those capabilities by exposing CSS parsing errors.&lt;br /&gt;
&lt;br /&gt;
===Program Flow===&lt;br /&gt;
&lt;br /&gt;
'''Initial steps'''&lt;br /&gt;
&lt;br /&gt;
* Choose a website compatible with Servo and attach the remote developer tools to it. &lt;br /&gt;
* Introduce traits, methods and structure members as per the project requirement&lt;br /&gt;
* Generate CSS error messages&lt;br /&gt;
* Build servo again with the changes&lt;br /&gt;
&lt;br /&gt;
'''Subsequent steps'''&lt;br /&gt;
&lt;br /&gt;
* Generate messages which communicate the errors to the script thread. &lt;br /&gt;
* Process the messages and provide support for caching them and sending them to the devtools server if it exists. &lt;br /&gt;
* Provide the functionality to retrieve the cached CSS error messages whenever requested.&lt;br /&gt;
&lt;br /&gt;
==Environment Setup&amp;lt;ref&amp;gt;https://github.com/servo/servo&amp;lt;/ref&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===Pre-requisites===&lt;br /&gt;
&lt;br /&gt;
On Debian-based Linuxes:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install curl freeglut3-dev\&lt;br /&gt;
    libfreetype6-dev libgl1-mesa-dri libglib2.0-dev xorg-dev \&lt;br /&gt;
    gperf g++ cmake python-virtualenv python-pip \&lt;br /&gt;
    libssl-dev libbz2-dev libosmesa6-dev libxmu6 libxmu-dev libglu1-mesa-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Fedora:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dnf install curl freeglut-devel libtool gcc-c++ libXi-devel \&lt;br /&gt;
    freetype-devel mesa-libGL-devel glib2-devel libX11-devel libXrandr-devel gperf \&lt;br /&gt;
    fontconfig-devel cabextract ttmkfdir python python-virtualenv python-pip expat-devel \&lt;br /&gt;
    rpm-build openssl-devel cmake bzip2-devel libXcursor-devel libXmu-devel mesa-libOSMesa&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Cloning servo===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/servo/servo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Building Servo===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd servo&lt;br /&gt;
./mach build --dev&lt;br /&gt;
./mach run tests/html/about-mozilla.html&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Requirement Analysis (includes Changes Proposed) ==&lt;br /&gt;
&lt;br /&gt;
===Steps completed in the OSS project -===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Setting up ParserContext structure'''&lt;br /&gt;
* define a new trait called ParseErrorReporter in components/style_traits/lib.rs with an appropriate method to report an error&lt;br /&gt;
* add error_reporter member to ParserContext that uses this method&lt;br /&gt;
* make log_css_error in components/style/parser.rs take an &amp;amp;ParserContext argument and call this method&lt;br /&gt;
* extract the existing code from log_css_err into a new type that implements ParseErrorReporter in components/layout/layout_task.rs and pass instances of that type to any code that ends up creating a ParserContext value&lt;br /&gt;
* find all the affected dependencies in rest of the files calling methods and structures implemented from above steps&lt;br /&gt;
* at this point, Servo should compile and execute almost exactly as before, but where RUST_LOG=style used to expose CSS errors, now RUST_LOG=layout::layout_task will be required instead.&lt;br /&gt;
&lt;br /&gt;
'''UML Component diagram'''&lt;br /&gt;
&lt;br /&gt;
[[File: ERD_Data_Flow_ERD.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Steps to be followed for final project -===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Setting up notifications to devtools'''&lt;br /&gt;
* Add a PipelineId (from components/msg/constellation_msg.rs) member to ParserContext, to represent the source of parse errors that occur&lt;br /&gt;
* Define a new message type in ConstellationControlMsg which contains all of the information necessary to report a CSS error (including the pipeline ID), and make this new error reporter communicate with the script thread by sending messages over a Sender&amp;lt;ConstellationControlMsg&amp;gt; value that can be obtained from the code in layout_task.rs.&lt;br /&gt;
* Process the new message type in components/script/script_task.rs by -&lt;br /&gt;
  * caching each reported parse error in a vector in Document (components/script/dom/document.rs)&lt;br /&gt;
  * checking the devtools_wants_updates flag and sending it to the devtools server if it exists (notify_devtools for a model in script_task.rs)&lt;br /&gt;
* Retrieve any cached parse errors for a document on request in handle_get_cached_messages in components/scripts/devtools.rs&lt;br /&gt;
&lt;br /&gt;
'''UML Component diagram'''&lt;br /&gt;
&lt;br /&gt;
The following diagram is not exhaustive. The dependencies will be be revealed during the implementation.&lt;br /&gt;
&lt;br /&gt;
[[File: ERD_Data_Flow_ERD_b2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Appurtenant tasks -===&lt;br /&gt;
&lt;br /&gt;
* Since we are working on the main servo build, the changes we make to the build usually has a cascading affect on dependent libraries and files. We are also doing the tasks of resolving the issues caused by the dependencies. So, the scope of the requirements are larger than those specified above.&lt;br /&gt;
&lt;br /&gt;
==Design information==&lt;br /&gt;
&lt;br /&gt;
 MVC pattern is employed in the tool for CSS parse error reporting as shown below:&lt;br /&gt;
&lt;br /&gt;
[[File:MVC_pattern_CSS_error_reporter.JPG]]&lt;br /&gt;
&lt;br /&gt;
CSS forms the view which sets the colors, fonts in the presentation. The browser is the controller which manipulates the data through forms or Javascript. The HTML is the model which takes care of the actual data.&lt;br /&gt;
&lt;br /&gt;
==Testing the code==&lt;br /&gt;
&lt;br /&gt;
The correctness of the changes made are tested through 3 methodologies -&lt;br /&gt;
&lt;br /&gt;
===Build test===&lt;br /&gt;
&lt;br /&gt;
The following command on linux command line compiles and verifies if the code changes are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./mach build --dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Tidy code test===&lt;br /&gt;
&lt;br /&gt;
The following command on linux command line tests if the code though syntactically correct complies with the Mozilla's best practices of coding&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./mach test-tidy&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Logical test===&lt;br /&gt;
&lt;br /&gt;
After passing the above tests a pull request is made to the master branch of main servo build. The code changes will then be reviewed by our points of contact from Mozilla team. Mozilla team then verifies the correctness of the code and recommend changes if some improvements are needed.&lt;br /&gt;
&lt;br /&gt;
==Tasks completed for final project==&lt;br /&gt;
&lt;br /&gt;
===Step 1===&lt;br /&gt;
&lt;br /&gt;
Add a PipelineId (from components/msg/constellation_msg.rs) member to ParserContext, to represent the source of parse errors that occur&lt;br /&gt;
&lt;br /&gt;
* A new member in parser.rs was included as suggested above (along with changes in lib.rs and Cargo.toml in same folders as parser.rs in order include the struct into the file), but it was seen that the class-name PipelineId could not be used directly to instantiate a variable.&lt;br /&gt;
&lt;br /&gt;
* Hence, came a suggestion by Josh to define a function to return the PipelineId member in ParseErrorReporter trait and remove the PipelineId member from ParserContext. Also came a suggestion to use the existing ParseErrorReporter member error_reporter to return the PipelineId value from trait ParseErrorReporter. Following were the exact suggestions from Josh -&lt;br /&gt;
&lt;br /&gt;
  - Get rid of the new member in ParserContext&lt;br /&gt;
  - Add a new method to the ParseErrorReporter trait which returns a PipelineId value&lt;br /&gt;
  - Add a new PipelineId member to the CSSErrorReporter struct, and make the new method return that value in the ParseErrorReporter implementation for CSSErrorReporter&lt;br /&gt;
  - call the new method using the ParseErrorReporter member that already exists in ParserContext instead of using the PipelineId member originally described in the task&lt;br /&gt;
&lt;br /&gt;
* Now, to include this function in ParseErrorReporter which was defined in components/style_traits/lib.rs a crate for msg folder was declared inside this lib.rs and also include a use statement for msg::constellation_msg::PipelineId. We also had to include the path of the corresponding the msg folder in components/style_traits/Cargo.toml. But this caused the issue of cyclic dependency, since constellation_msg.rs already had included the folder components/style_traits into its lib.rs.&lt;br /&gt;
&lt;br /&gt;
  - Cyclic dependency : components/style_traits/lib.rs dependent on itself&lt;br /&gt;
&lt;br /&gt;
* When this problem was communicated to Josh, we were suggested us to move the definition of the trait ParseErrorReporter from components/style_traits/lib.rs to components/msg/lib.rs itself&lt;br /&gt;
&lt;br /&gt;
* This solved the previous error but threw an error is all places where ParseErrorReporter trait was used. This was because previously all functions were using &amp;quot;use style_traits::ParserErrorReporter&amp;quot; (and corresponding changes in lib.rs and Cargo.toml) to obtain the definition of ParseErrorReporter. This declaration had just been moved to another file in previous step. About 7 different files were visited and the include statements were changed to &amp;quot;use msg::ParserErrorReporter&amp;quot; (and also make the corresponding changes to their lib.rs and Cargo.toml).&lt;br /&gt;
&lt;br /&gt;
* After solving the previous error, another set of errors on pipelineid showed up. In fact,  there was another trait called StdoutErrorReporter which was analogous in definition to our ParseErrorReporter. Hence, all the changes made in ParseErrorReporter were also made in StdoutErrorReporter in order to maintain consistency.&lt;br /&gt;
&lt;br /&gt;
* After solving the previous error, another set of errors were met. Apparently, the Rust language was upgraded recently. As a result of which syntaxes of some functions calling member functions of StdoutErrorReporter had to be changed from:&lt;br /&gt;
&lt;br /&gt;
  '''let error_reporter = box StdoutErrorReporter;'''          to&lt;br /&gt;
  '''letbox error_reporter  = StdoutErrorReporter {'''&lt;br /&gt;
                           '''pipelineid: self.pipelineid,'''&lt;br /&gt;
                           '''};'''&lt;br /&gt;
&lt;br /&gt;
* Also, after solving the previous error, another set of errors where were found with the same dependency as previous step in a function call present in a file which was not part of project description. The lines higlighted below were throwing an error in selector_matching.rs and also in 2 other similar files:&lt;br /&gt;
&lt;br /&gt;
    lazy_static! {&lt;br /&gt;
    pub static ref USER_OR_USER_AGENT_STYLESHEETS: Vec&amp;lt;Stylesheet&amp;gt; = {&lt;br /&gt;
        let mut stylesheets = vec!();&lt;br /&gt;
        // FIXME: presentational-hints.css should be at author origin with zero specificity.&lt;br /&gt;
        //        (Does it make a difference?)&lt;br /&gt;
        for &amp;amp;filename in &amp;amp;[&amp;quot;user-agent.css&amp;quot;, &amp;quot;servo.css&amp;quot;, &amp;quot;presentational-hints.css&amp;quot;] {&lt;br /&gt;
            match read_resource_file(&amp;amp;[filename]) {&lt;br /&gt;
                Ok(res) =&amp;gt; {&lt;br /&gt;
                    let ua_stylesheet = Stylesheet::from_bytes(&lt;br /&gt;
                        &amp;amp;res,&lt;br /&gt;
                        Url::parse(&amp;amp;format!(&amp;quot;chrome:///{:?}&amp;quot;, filename)).unwrap(),&lt;br /&gt;
                        None,&lt;br /&gt;
                        None,&lt;br /&gt;
                        Origin::UserAgent,&lt;br /&gt;
                        '''''box StdoutErrorReporter''''');&lt;br /&gt;
                    stylesheets.push(ua_stylesheet);&lt;br /&gt;
                }&lt;br /&gt;
                Err(..) =&amp;gt; {&lt;br /&gt;
                    error!(&amp;quot;Failed to load UA stylesheet {}!&amp;quot;, filename);&lt;br /&gt;
                    process::exit(1);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        for &amp;amp;(ref contents, ref url) in &amp;amp;opts::get().user_stylesheets {&lt;br /&gt;
            stylesheets.push(Stylesheet::from_bytes(&lt;br /&gt;
                &amp;amp;contents, url.clone(), None, None, Origin::User, '''''box StdoutErrorReporter'''''));&lt;br /&gt;
        }&lt;br /&gt;
        stylesheets&lt;br /&gt;
     };&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
So, following statements were changed -&lt;br /&gt;
&lt;br /&gt;
    '''box StdoutErrorReporter'''                       to&lt;br /&gt;
    '''box StdoutErrorReporter { pipelineid: PipelineId::fake_root_pipeline_id() }'''&lt;br /&gt;
&lt;br /&gt;
* Similar changes had to be made to files like report.rs and window.rs containing the following statement:&lt;br /&gt;
&lt;br /&gt;
    '''let error_reporter = CSSErrorReporter;'''         to&lt;br /&gt;
    '''let error_reporter = CSSErrorReporter { pipelineid:  PipelineId::fake_root_pipeline_id() };'''        or&lt;br /&gt;
    '''let error_reporter = box CSSErrorReporter { pipelineid: self.pipelineid, } ;'''                       based on the context&lt;br /&gt;
&lt;br /&gt;
* Along with the changes mentioned above some more minor errors and dependencies were taken care. Final changes for step 1 is available in the following link of commit to the forked repository:&lt;br /&gt;
&lt;br /&gt;
      https://github.com/GauriGNaik/servo/commit/e5021c76d8239dacaff0771b043f648a97f71c42&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Changes after the code review'''&lt;br /&gt;
&lt;br /&gt;
* In layout_task.rs for the pipelineid, since an id was already available, the instantiation of pipelineid was changed from PipelineId::fake_root_pipeline_id() to id&lt;br /&gt;
&lt;br /&gt;
* In layout_task.rs, the position of use statement &amp;quot;use msg::ParseErrorReporter&amp;quot; was changed to fit the alphabetical order&lt;br /&gt;
&lt;br /&gt;
* In msg/lib.rs, the position of use statement &amp;quot;use cssparser::{Parser, SourcePosition}&amp;quot; was changed to fit the alphabetical order&lt;br /&gt;
&lt;br /&gt;
* In msg/lib.rs, the function call &amp;quot;return_pipeline&amp;quot; was changed to &amp;quot;pipeline&amp;quot; as per servo conventions&lt;br /&gt;
&lt;br /&gt;
* The change made in previous step, necessitates the function declaration in script/reporter.rs to be changed from return_pipeline to pipeline.&lt;br /&gt;
&lt;br /&gt;
* In dom/cssstyledeclaration.rs, the position of use statement &amp;quot;use msg::ParseErrorReporter&amp;quot; was changed to fit servo conventions on functionality&lt;br /&gt;
&lt;br /&gt;
* In layout/context.rs, the position of use statement &amp;quot;use msg::compositor_msg::LayerId&amp;quot; was changed to fit servo conventions on functionality&lt;br /&gt;
&lt;br /&gt;
* In layout/window.rs, the position of use statement &amp;quot;use msg::ParseErrorReporter&amp;quot; was changed to fit servo conventions on functionality&lt;br /&gt;
&lt;br /&gt;
* In dom/window.rs, for the pipelineid, since an id was already available, the instantiation of pipelineid was changed from PipelineId::fake_root_pipeline_id() to id&lt;br /&gt;
&lt;br /&gt;
* In selector_matching.rs also the function return_pipelineid had to be redeclared as pipeline&lt;br /&gt;
&lt;br /&gt;
* Some more changes to make the code tidy and follow the conventions were made at followinf files - parser.rs, selector_matching.rs and stylesheets.rs&lt;br /&gt;
&lt;br /&gt;
* The changes made after the first code review can be found in following link:&lt;br /&gt;
&lt;br /&gt;
      https://github.com/GauriGNaik/servo/commit/d756c17f4f91f9ef1cf4d9b5c750edc29b0a5071&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''UML Component diagram'''&lt;br /&gt;
&lt;br /&gt;
[[File: UML3 New Page.jpeg]]&lt;br /&gt;
&lt;br /&gt;
===Step 2===&lt;br /&gt;
&lt;br /&gt;
Define a new message type in ConstellationControlMsg which contains all of the information necessary to report a CSS error (including the pipeline ID), and make this new error reporter communicate with the script thread by sending messages over a Sender&amp;lt;ConstellationControlMsg&amp;gt; value that can be obtained from the code in layout_task.rs&lt;br /&gt;
&lt;br /&gt;
* A new type CSSErrorReporting was declared in script_task/lib.rs with necessary parameters&lt;br /&gt;
&lt;br /&gt;
* In script_task.rs, the method handle_css_error_reporting was defined, an empty stub&lt;br /&gt;
&lt;br /&gt;
* Also, in script_task.rs, in impl ScriptTask, the ConstellationControlMsg::CSSErrorReporting method was mapped to self.handle_css_error_reporting&lt;br /&gt;
&lt;br /&gt;
===Step 3 (a)===&lt;br /&gt;
&lt;br /&gt;
Process the new message type in components/script/script_task.rs by:&lt;br /&gt;
caching each reported parse error in a vector in Document (components/script/dom/document.rs)&lt;br /&gt;
&lt;br /&gt;
* In dom/document.rs, css_errors_store was included with all 5 parameters for the CSSErrorReporting function defined in the previous step&lt;br /&gt;
&lt;br /&gt;
* The previous step gave errors as some of the parameters were undefined, hence a new structure CSSError was declared in script_task.rs with all the 5 parameters declareas its members&lt;br /&gt;
&lt;br /&gt;
* In document.rs, the css_errors_store declaration was changed to include the structure defined above as css_errors_store: DOMRefCell&amp;lt;Vec&amp;lt;CSSError&amp;gt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* In order for above operation to run successfully, the structure has to be included in script_task.rs using &amp;quot;use script_task::CSSError&amp;quot; statement&lt;br /&gt;
&lt;br /&gt;
* For the above use statement to work, the dependency was declared in script_traits/Cargo.toml&lt;br /&gt;
&lt;br /&gt;
* The member css_errors_store was defined as css_errors_store: DOMRefCell::new(vec![]) in impl PartialEq&lt;br /&gt;
&lt;br /&gt;
* In order to perform caching of reported parse error, a function report_css_error was declared in impl PartialEq.&lt;br /&gt;
&lt;br /&gt;
* The statement self.css_errors_store.borrow_mut().push(css_error) was used inside the function above to perform the actual caching&lt;br /&gt;
&lt;br /&gt;
===Step 3 (b)===&lt;br /&gt;
&lt;br /&gt;
checking the devtools_wants_updates flag and sending it to the devtools server if it exists (see notify_devtools for a model in script_task.rs)&lt;br /&gt;
&lt;br /&gt;
* Initially, in window.rs a function was declared to get devtools_wants_updates flag and return it&lt;br /&gt;
&lt;br /&gt;
* This was used in handle_css_error_reporting function in script_task.rs&lt;br /&gt;
&lt;br /&gt;
* When enquired, with Josh if we were in the right direction, we were suggested to use a new message variant ReportCSSError in ScriptToDevtoolsControlMsg enum which already contained a CSSError object&lt;br /&gt;
&lt;br /&gt;
* When, the above suggestion was implemented we faced a cyclic dependency error as CSSError was declared in script_task.rs which was already depending on devtools_traits&lt;br /&gt;
&lt;br /&gt;
* When enquired, Josh suggested to move CSSError to devtools_traits.rs&lt;br /&gt;
&lt;br /&gt;
* But, we had already tried this and knew this wouldn't work as CSSError needs to implement JSTraceable which is there again in script::dom::binding....&lt;br /&gt;
&lt;br /&gt;
* When again enquired, Josh suggested to get around the problem by adding an entry to the list of no_jsmanaged_fields in script/dom/bindings/trace.JS&lt;br /&gt;
&lt;br /&gt;
* Then, an entry was added as follows:&lt;br /&gt;
 no_jsmanaged_fields!(JSTraceable); &lt;br /&gt;
&lt;br /&gt;
But it wasn't clear how we were to include JSTraceable in devtools_traits file. &lt;br /&gt;
&lt;br /&gt;
What 'use' statement should be used to use JSTraceable and not throw a cyclic dependency error&lt;br /&gt;
&lt;br /&gt;
* Then, as per Josh's suggestions and after some more conversations following changes were finally incorporated -&lt;br /&gt;
  the function handle_css_error_reporting in script_task.rs was defined to obtain a page for a given pipeline_id&lt;br /&gt;
&lt;br /&gt;
* a variable css_error was declared which collects the value returned by CSSError for a given pipeline_id, filename, line, column and msg&lt;br /&gt;
&lt;br /&gt;
* push this variable into document.report_css_error&lt;br /&gt;
&lt;br /&gt;
'''Dependencies'''&lt;br /&gt;
&lt;br /&gt;
* The above changes had a lot of dependencies which required following changes:&lt;br /&gt;
in script_traits/Cargo.toml, a statement was added to declare to account for dependency on cssparser&lt;br /&gt;
&lt;br /&gt;
* in servo/Cargo.lock, inclusion statements were used for dependencies on cssparser&lt;br /&gt;
&lt;br /&gt;
* in style/Cargo.toml, a statement was added to include dependencies on components/msg&lt;br /&gt;
&lt;br /&gt;
* in style/lib.rs a crate was included for msg folder&lt;br /&gt;
&lt;br /&gt;
* in media_queries.rs use statements were included for msg::ParseErrorReporter and msg::constellation_msg::PipelineId&lt;br /&gt;
&lt;br /&gt;
* a function CSSErrorReporterTest was declared including the member pipelineid&lt;br /&gt;
&lt;br /&gt;
* in impl ParseErrorReporter for CSSErrorReporterTest; the previous declaration on error_reporter was removed and the function pipeline was defined to return the current piepelineid&lt;br /&gt;
&lt;br /&gt;
* in function test_media_rule the definition of the member stylesheet was changed to accounting for syntax changes in Rust language due to its recent update&lt;br /&gt;
&lt;br /&gt;
* similar change as mentioned in previous step was performed for the member ss in the function media_query_test&lt;br /&gt;
&lt;br /&gt;
* in style/stylesheets.rs a use statement for msg::constellation_msg::PipelineId was added&lt;br /&gt;
&lt;br /&gt;
* the definition of the member stylesheet was changed accounting for syntax changes in Rust language due to its recent update&lt;br /&gt;
&lt;br /&gt;
* in style/viewport.rs, use statements for msg::ParseErrorReporter and msg::constellation_msg::PipelineId were added&lt;br /&gt;
&amp;quot;&lt;br /&gt;
* the definitions of the members error_reporter, styesheet and context was changed accounting for syntax changes in Rust language due to its recent update&lt;br /&gt;
&lt;br /&gt;
* The commits after step 1 till here can be found in the link below:&lt;br /&gt;
&lt;br /&gt;
     https://github.com/GauriGNaik/servo/commit/5b7281ac7a7416248de7871315ad79dcb3ac2804&lt;br /&gt;
&lt;br /&gt;
'''Changes after the code review'''&lt;br /&gt;
&lt;br /&gt;
* in script_task.rs, the declaration for the member pipeline_id was removed&lt;br /&gt;
&lt;br /&gt;
* few changes for alignment of the functions handle_css_error_reporting, onstellationControlMsg::CSSErrorReporting and the member css_error  were to be made&lt;br /&gt;
&lt;br /&gt;
* dependency statement on cssparser in Cargo.toml was removed&lt;br /&gt;
&lt;br /&gt;
* in script.traits/lib.rs, the crate declaration for crate cssparser was removed so was use statement for cssparser::SourceLocation.&lt;br /&gt;
&lt;br /&gt;
* The function call for CSSErrorReporting was changed to ReportCSSError&lt;br /&gt;
&lt;br /&gt;
* in servo/Cargo.lock, dependency statement on cssparser was removed&lt;br /&gt;
&lt;br /&gt;
* in style/media_queries, in the function pipeline, return statement was changed from &amp;quot;return self.pipelineid&amp;quot; to &amp;quot;return PipelineId::fake_root_pipeline_id()&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* in style/stylesheets.rs, use statement for msg::constellation_msg::PipelineId was removed&lt;br /&gt;
&lt;br /&gt;
* in style/viewport.rs, use statement for msg::constellation_msg::PipelineId was removed&lt;br /&gt;
&lt;br /&gt;
* The commits for changes done for code reviews on steps 2 and 3 can be found in the link below:&lt;br /&gt;
&lt;br /&gt;
    https://github.com/GauriGNaik/servo/commit/110e86619c5ae9a312c914ee68e6794df03ee924&lt;br /&gt;
&lt;br /&gt;
'''UML Component diagram'''&lt;br /&gt;
&lt;br /&gt;
[[File: UML2 New Page.jpeg]]&lt;br /&gt;
&lt;br /&gt;
===Step 4===&lt;br /&gt;
&lt;br /&gt;
Retrieve any cached parse errors for a document on request in handle_get_cached_messages in components/scripts/devtools.rs&lt;br /&gt;
&lt;br /&gt;
[Following are not the final changes. Still, we are facing a couple of errors. We wil resolve them soon]&lt;br /&gt;
&lt;br /&gt;
* in devtools/lib.rs, a macro DevtoolsControlMsg::FromScript was defined which instantiates a member console_message with struct variable ConsoleMessage with members message, logLevel, filename, lineNumber and columnNumber&lt;br /&gt;
&lt;br /&gt;
* in devtools_traits/lib.rs, a use statement &amp;quot;use util::mem::HeapSizeOf&amp;quot; was added&lt;br /&gt;
&lt;br /&gt;
* the definition of the struct CSSError was moved from script_task.rs to devtools_traits/lib.rs&lt;br /&gt;
&lt;br /&gt;
* in devtools_traits/lib.rs, inside enum DevtoolsControlMsg, a function ReportCSSError was declared with parameters PipelineId and CSSError&lt;br /&gt;
&lt;br /&gt;
* in bindings/trace.rs, a use statement was added to include &amp;quot;devtools_traits::CSSError&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* a declaration was also added for no_jsmanaged_fields!(CSSError) function&lt;br /&gt;
&lt;br /&gt;
* in document.rs, the use statement for script_task::CSSError was removed and use statement for devtools_traits::CSSError was added&lt;br /&gt;
&lt;br /&gt;
* in window.rs, a function return_devtools_flag was added to return the flag devtools_wants_updates&lt;br /&gt;
&lt;br /&gt;
* in script/script_task.rs, use statement for devtools_traits::CSSError was added&lt;br /&gt;
&lt;br /&gt;
* in function handle_css_error_reporting the datatype usize was changed to u32 as per new Rust conventions&lt;br /&gt;
&lt;br /&gt;
* The function document.report_css_error which was taking the parameter css_error was changed to include css_error.clone() as parameter&lt;br /&gt;
&lt;br /&gt;
* The function document.report_css_error was defined to send pipelineid and css_error on a devtools channel if devtools_wants_updates flag is set&lt;br /&gt;
&lt;br /&gt;
* in script_traits/lib.rs, in the function ReportCSSError, the datatype usize was change to u32&lt;br /&gt;
&lt;br /&gt;
* The commits for changes after the code review on step 3 till the changes mentioned in the previous steps can be found in the link below:&lt;br /&gt;
&lt;br /&gt;
    https://github.com/GauriGNaik/servo/commit/77e8721b27be8f75363aa82dd468b30ed2718e04&lt;br /&gt;
&lt;br /&gt;
'''UML Component diagram'''&lt;br /&gt;
&lt;br /&gt;
[[File: UML1 New Page.jpeg]]&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Mozilla Mozilla]&lt;br /&gt;
* [https://github.com/rust-lang/rust Rust]&lt;br /&gt;
* [https://github.com/servo/servo Servo]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Gnaik2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015_M1501_Report_CSS_errors_to_the_devtools,_both_stored_and_live&amp;diff=100496</id>
		<title>CSC/ECE 517 Fall 2015 M1501 Report CSS errors to the devtools, both stored and live</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015_M1501_Report_CSS_errors_to_the_devtools,_both_stored_and_live&amp;diff=100496"/>
		<updated>2015-12-15T18:52:21Z</updated>

		<summary type="html">&lt;p&gt;Gnaik2: /* Completed tasks */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&lt;br /&gt;
===Rust===&lt;br /&gt;
&lt;br /&gt;
[https://en.wikipedia.org/wiki/Rust_(programming_language) Rust] is a programming language developed by [http://en.wikipedia.org/wiki/Mozilla Mozilla]. It is used to design concurrent and safe systems. It is a systems programming language focused on three goals: safety, speed, and concurrency. It maintains these goals without having a garbage collector, making it a useful language for a number of use cases other languages aren’t good at: embedding in other languages, programs with specific space and time requirements, and writing low-level code, like device drivers and operating systems. &amp;lt;ref&amp;gt;http://doc.rust-lang.org/nightly/book&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Servo===&lt;br /&gt;
&lt;br /&gt;
[https://en.wikipedia.org/wiki/Servo_(layout_engine) Servo] is an experimental web browser layout engine. It is developed by Mozilla and written in Rust. It provides an [https://en.wikipedia.org/wiki/Application_programming_interface API] for hosting the engine within other software. The Servo browser currently provides developer tools to inspect [https://en.wikipedia.org/wiki/Document_Object_Model DOM], execute [https://en.wikipedia.org/wiki/JavaScript JavaScript] remotely.&lt;br /&gt;
&lt;br /&gt;
==Project Description&amp;lt;ref&amp;gt;https://github.com/servo/servo/wiki/CSS-parse-error-reporting&amp;lt;/ref&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
In this project we are adding capability to expose CSS parse errors, which are essentially syntax errors through developer tools in Servo. We are using Firefox remote developer tools, which is the capability to communicate with an arbitrary distant server that implements a protocol for exposing information about its web content.&lt;br /&gt;
&lt;br /&gt;
As part of the scope of this project we are using Firefox remote developer tools to inspect and debug the code in Servo. Servo, is an experimental web browser from Mozilla which is under development. This project contributes to the development of this web browser Servo.&lt;br /&gt;
&lt;br /&gt;
Servo implements a very basic developer tools server. This server currently supports executing JavaScript remotely and investigating the DOM (Document Object Model) tree in the document inspector. The scope of the project is to expand those capabilities by exposing CSS parsing errors.&lt;br /&gt;
&lt;br /&gt;
===Program Flow===&lt;br /&gt;
&lt;br /&gt;
'''Initial steps'''&lt;br /&gt;
&lt;br /&gt;
* Choose a website compatible with Servo and attach the remote developer tools to it. &lt;br /&gt;
* Introduce traits, methods and structure members as per the project requirement&lt;br /&gt;
* Generate CSS error messages&lt;br /&gt;
* Build servo again with the changes&lt;br /&gt;
&lt;br /&gt;
'''Subsequent steps'''&lt;br /&gt;
&lt;br /&gt;
* Generate messages which communicate the errors to the script thread. &lt;br /&gt;
* Process the messages and provide support for caching them and sending them to the devtools server if it exists. &lt;br /&gt;
* Provide the functionality to retrieve the cached CSS error messages whenever requested.&lt;br /&gt;
&lt;br /&gt;
==Environment Setup&amp;lt;ref&amp;gt;https://github.com/servo/servo&amp;lt;/ref&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===Pre-requisites===&lt;br /&gt;
&lt;br /&gt;
On Debian-based Linuxes:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install curl freeglut3-dev\&lt;br /&gt;
    libfreetype6-dev libgl1-mesa-dri libglib2.0-dev xorg-dev \&lt;br /&gt;
    gperf g++ cmake python-virtualenv python-pip \&lt;br /&gt;
    libssl-dev libbz2-dev libosmesa6-dev libxmu6 libxmu-dev libglu1-mesa-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Fedora:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dnf install curl freeglut-devel libtool gcc-c++ libXi-devel \&lt;br /&gt;
    freetype-devel mesa-libGL-devel glib2-devel libX11-devel libXrandr-devel gperf \&lt;br /&gt;
    fontconfig-devel cabextract ttmkfdir python python-virtualenv python-pip expat-devel \&lt;br /&gt;
    rpm-build openssl-devel cmake bzip2-devel libXcursor-devel libXmu-devel mesa-libOSMesa&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Cloning servo===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/servo/servo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Building Servo===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd servo&lt;br /&gt;
./mach build --dev&lt;br /&gt;
./mach run tests/html/about-mozilla.html&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Requirement Analysis (includes Changes Proposed) ==&lt;br /&gt;
&lt;br /&gt;
===Steps completed in the OSS project -===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Setting up ParserContext structure'''&lt;br /&gt;
* define a new trait called ParseErrorReporter in components/style_traits/lib.rs with an appropriate method to report an error&lt;br /&gt;
* add error_reporter member to ParserContext that uses this method&lt;br /&gt;
* make log_css_error in components/style/parser.rs take an &amp;amp;ParserContext argument and call this method&lt;br /&gt;
* extract the existing code from log_css_err into a new type that implements ParseErrorReporter in components/layout/layout_task.rs and pass instances of that type to any code that ends up creating a ParserContext value&lt;br /&gt;
* find all the affected dependencies in rest of the files calling methods and structures implemented from above steps&lt;br /&gt;
* at this point, Servo should compile and execute almost exactly as before, but where RUST_LOG=style used to expose CSS errors, now RUST_LOG=layout::layout_task will be required instead.&lt;br /&gt;
&lt;br /&gt;
'''UML Component diagram'''&lt;br /&gt;
&lt;br /&gt;
[[File: ERD_Data_Flow_ERD.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Steps to be followed for final project -===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Setting up notifications to devtools'''&lt;br /&gt;
* Add a PipelineId (from components/msg/constellation_msg.rs) member to ParserContext, to represent the source of parse errors that occur&lt;br /&gt;
* Define a new message type in ConstellationControlMsg which contains all of the information necessary to report a CSS error (including the pipeline ID), and make this new error reporter communicate with the script thread by sending messages over a Sender&amp;lt;ConstellationControlMsg&amp;gt; value that can be obtained from the code in layout_task.rs.&lt;br /&gt;
* Process the new message type in components/script/script_task.rs by -&lt;br /&gt;
  * caching each reported parse error in a vector in Document (components/script/dom/document.rs)&lt;br /&gt;
  * checking the devtools_wants_updates flag and sending it to the devtools server if it exists (notify_devtools for a model in script_task.rs)&lt;br /&gt;
* Retrieve any cached parse errors for a document on request in handle_get_cached_messages in components/scripts/devtools.rs&lt;br /&gt;
&lt;br /&gt;
'''UML Component diagram'''&lt;br /&gt;
&lt;br /&gt;
The following diagram is not exhaustive. The dependencies will be be revealed during the implementation.&lt;br /&gt;
&lt;br /&gt;
[[File: ERD_Data_Flow_ERD_b2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Appurtenant tasks -===&lt;br /&gt;
&lt;br /&gt;
* Since we are working on the main servo build, the changes we make to the build usually has a cascading affect on dependent libraries and files. We are also doing the tasks of resolving the issues caused by the dependencies. So, the scope of the requirements are larger than those specified above.&lt;br /&gt;
&lt;br /&gt;
==Design information==&lt;br /&gt;
&lt;br /&gt;
 MVC pattern is employed in the tool for CSS parse error reporting as shown below:&lt;br /&gt;
&lt;br /&gt;
[[File:MVC_pattern_CSS_error_reporter.JPG]]&lt;br /&gt;
&lt;br /&gt;
==Testing the code==&lt;br /&gt;
&lt;br /&gt;
The correctness of the changes made are tested through 3 methodologies -&lt;br /&gt;
&lt;br /&gt;
===Build test===&lt;br /&gt;
&lt;br /&gt;
The following command on linux command line compiles and verifies if the code changes are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./mach build --dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Tidy code test===&lt;br /&gt;
&lt;br /&gt;
The following command on linux command line tests if the code though syntactically correct complies with the Mozilla's best practices of coding&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./mach test-tidy&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Logical test===&lt;br /&gt;
&lt;br /&gt;
After passing the above tests a pull request is made to the master branch of main servo build. The code changes will then be reviewed by our points of contact from Mozilla team. Mozilla team then verifies the correctness of the code and recommend changes if some improvements are needed.&lt;br /&gt;
&lt;br /&gt;
==Tasks completed for final project==&lt;br /&gt;
&lt;br /&gt;
===Step 1===&lt;br /&gt;
&lt;br /&gt;
Add a PipelineId (from components/msg/constellation_msg.rs) member to ParserContext, to represent the source of parse errors that occur&lt;br /&gt;
&lt;br /&gt;
* A new member in parser.rs was included as suggested above (along with changes in lib.rs and Cargo.toml in same folders as parser.rs in order include the struct into the file), but it was seen that the class-name PipelineId could not be used directly to instantiate a variable.&lt;br /&gt;
&lt;br /&gt;
* Hence, came a suggestion by Josh to define a function to return the PipelineId member in ParseErrorReporter trait and remove the PipelineId member from ParserContext. Also came a suggestion to use the existing ParseErrorReporter member error_reporter to return the PipelineId value from trait ParseErrorReporter. Following were the exact suggestions from Josh -&lt;br /&gt;
&lt;br /&gt;
  - Get rid of the new member in ParserContext&lt;br /&gt;
  - Add a new method to the ParseErrorReporter trait which returns a PipelineId value&lt;br /&gt;
  - Add a new PipelineId member to the CSSErrorReporter struct, and make the new method return that value in the ParseErrorReporter implementation for CSSErrorReporter&lt;br /&gt;
  - call the new method using the ParseErrorReporter member that already exists in ParserContext instead of using the PipelineId member originally described in the task&lt;br /&gt;
&lt;br /&gt;
* Now, to include this function in ParseErrorReporter which was defined in components/style_traits/lib.rs a crate for msg folder was declared inside this lib.rs and also include a use statement for msg::constellation_msg::PipelineId. We also had to include the path of the corresponding the msg folder in components/style_traits/Cargo.toml. But this caused the issue of cyclic dependency, since constellation_msg.rs already had included the folder components/style_traits into its lib.rs.&lt;br /&gt;
&lt;br /&gt;
  - Cyclic dependency : components/style_traits/lib.rs dependent on itself&lt;br /&gt;
&lt;br /&gt;
* When this problem was communicated to Josh, we were suggested us to move the definition of the trait ParseErrorReporter from components/style_traits/lib.rs to components/msg/lib.rs itself&lt;br /&gt;
&lt;br /&gt;
* This solved the previous error but threw an error is all places where ParseErrorReporter trait was used. This was because previously all functions were using &amp;quot;use style_traits::ParserErrorReporter&amp;quot; (and corresponding changes in lib.rs and Cargo.toml) to obtain the definition of ParseErrorReporter. This declaration had just been moved to another file in previous step. About 7 different files were visited and the include statements were changed to &amp;quot;use msg::ParserErrorReporter&amp;quot; (and also make the corresponding changes to their lib.rs and Cargo.toml).&lt;br /&gt;
&lt;br /&gt;
* After solving the previous error, another set of errors on pipelineid showed up. In fact,  there was another trait called StdoutErrorReporter which was analogous in definition to our ParseErrorReporter. Hence, all the changes made in ParseErrorReporter were also made in StdoutErrorReporter in order to maintain consistency.&lt;br /&gt;
&lt;br /&gt;
* After solving the previous error, another set of errors were met. Apparently, the Rust language was upgraded recently. As a result of which syntaxes of some functions calling member functions of StdoutErrorReporter had to be changed from:&lt;br /&gt;
&lt;br /&gt;
  '''let error_reporter = box StdoutErrorReporter;'''          to&lt;br /&gt;
  '''letbox error_reporter  = StdoutErrorReporter {'''&lt;br /&gt;
                           '''pipelineid: self.pipelineid,'''&lt;br /&gt;
                           '''};'''&lt;br /&gt;
&lt;br /&gt;
* Also, after solving the previous error, another set of errors where were found with the same dependency as previous step in a function call present in a file which was not part of project description. The lines higlighted below were throwing an error in selector_matching.rs and also in 2 other similar files:&lt;br /&gt;
&lt;br /&gt;
    lazy_static! {&lt;br /&gt;
    pub static ref USER_OR_USER_AGENT_STYLESHEETS: Vec&amp;lt;Stylesheet&amp;gt; = {&lt;br /&gt;
        let mut stylesheets = vec!();&lt;br /&gt;
        // FIXME: presentational-hints.css should be at author origin with zero specificity.&lt;br /&gt;
        //        (Does it make a difference?)&lt;br /&gt;
        for &amp;amp;filename in &amp;amp;[&amp;quot;user-agent.css&amp;quot;, &amp;quot;servo.css&amp;quot;, &amp;quot;presentational-hints.css&amp;quot;] {&lt;br /&gt;
            match read_resource_file(&amp;amp;[filename]) {&lt;br /&gt;
                Ok(res) =&amp;gt; {&lt;br /&gt;
                    let ua_stylesheet = Stylesheet::from_bytes(&lt;br /&gt;
                        &amp;amp;res,&lt;br /&gt;
                        Url::parse(&amp;amp;format!(&amp;quot;chrome:///{:?}&amp;quot;, filename)).unwrap(),&lt;br /&gt;
                        None,&lt;br /&gt;
                        None,&lt;br /&gt;
                        Origin::UserAgent,&lt;br /&gt;
                        '''''box StdoutErrorReporter''''');&lt;br /&gt;
                    stylesheets.push(ua_stylesheet);&lt;br /&gt;
                }&lt;br /&gt;
                Err(..) =&amp;gt; {&lt;br /&gt;
                    error!(&amp;quot;Failed to load UA stylesheet {}!&amp;quot;, filename);&lt;br /&gt;
                    process::exit(1);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        for &amp;amp;(ref contents, ref url) in &amp;amp;opts::get().user_stylesheets {&lt;br /&gt;
            stylesheets.push(Stylesheet::from_bytes(&lt;br /&gt;
                &amp;amp;contents, url.clone(), None, None, Origin::User, '''''box StdoutErrorReporter'''''));&lt;br /&gt;
        }&lt;br /&gt;
        stylesheets&lt;br /&gt;
     };&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
So, following statements were changed -&lt;br /&gt;
&lt;br /&gt;
    '''box StdoutErrorReporter'''                       to&lt;br /&gt;
    '''box StdoutErrorReporter { pipelineid: PipelineId::fake_root_pipeline_id() }'''&lt;br /&gt;
&lt;br /&gt;
* Similar changes had to be made to files like report.rs and window.rs containing the following statement:&lt;br /&gt;
&lt;br /&gt;
    '''let error_reporter = CSSErrorReporter;'''         to&lt;br /&gt;
    '''let error_reporter = CSSErrorReporter { pipelineid:  PipelineId::fake_root_pipeline_id() };'''        or&lt;br /&gt;
    '''let error_reporter = box CSSErrorReporter { pipelineid: self.pipelineid, } ;'''                       based on the context&lt;br /&gt;
&lt;br /&gt;
* Along with the changes mentioned above some more minor errors and dependencies were taken care. Final changes for step 1 is available in the following link of commit to the forked repository:&lt;br /&gt;
&lt;br /&gt;
      https://github.com/GauriGNaik/servo/commit/e5021c76d8239dacaff0771b043f648a97f71c42&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Changes after the code review'''&lt;br /&gt;
&lt;br /&gt;
* In layout_task.rs for the pipelineid, since an id was already available, the instantiation of pipelineid was changed from PipelineId::fake_root_pipeline_id() to id&lt;br /&gt;
&lt;br /&gt;
* In layout_task.rs, the position of use statement &amp;quot;use msg::ParseErrorReporter&amp;quot; was changed to fit the alphabetical order&lt;br /&gt;
&lt;br /&gt;
* In msg/lib.rs, the position of use statement &amp;quot;use cssparser::{Parser, SourcePosition}&amp;quot; was changed to fit the alphabetical order&lt;br /&gt;
&lt;br /&gt;
* In msg/lib.rs, the function call &amp;quot;return_pipeline&amp;quot; was changed to &amp;quot;pipeline&amp;quot; as per servo conventions&lt;br /&gt;
&lt;br /&gt;
* The change made in previous step, necessitates the function declaration in script/reporter.rs to be changed from return_pipeline to pipeline.&lt;br /&gt;
&lt;br /&gt;
* In dom/cssstyledeclaration.rs, the position of use statement &amp;quot;use msg::ParseErrorReporter&amp;quot; was changed to fit servo conventions on functionality&lt;br /&gt;
&lt;br /&gt;
* In layout/context.rs, the position of use statement &amp;quot;use msg::compositor_msg::LayerId&amp;quot; was changed to fit servo conventions on functionality&lt;br /&gt;
&lt;br /&gt;
* In layout/window.rs, the position of use statement &amp;quot;use msg::ParseErrorReporter&amp;quot; was changed to fit servo conventions on functionality&lt;br /&gt;
&lt;br /&gt;
* In dom/window.rs, for the pipelineid, since an id was already available, the instantiation of pipelineid was changed from PipelineId::fake_root_pipeline_id() to id&lt;br /&gt;
&lt;br /&gt;
* In selector_matching.rs also the function return_pipelineid had to be redeclared as pipeline&lt;br /&gt;
&lt;br /&gt;
* Some more changes to make the code tidy and follow the conventions were made at followinf files - parser.rs, selector_matching.rs and stylesheets.rs&lt;br /&gt;
&lt;br /&gt;
* The changes made after the first code review can be found in following link:&lt;br /&gt;
&lt;br /&gt;
      https://github.com/GauriGNaik/servo/commit/d756c17f4f91f9ef1cf4d9b5c750edc29b0a5071&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''UML Component diagram'''&lt;br /&gt;
&lt;br /&gt;
[[File: UML3 New Page.jpeg]]&lt;br /&gt;
&lt;br /&gt;
===Step 2===&lt;br /&gt;
&lt;br /&gt;
Define a new message type in ConstellationControlMsg which contains all of the information necessary to report a CSS error (including the pipeline ID), and make this new error reporter communicate with the script thread by sending messages over a Sender&amp;lt;ConstellationControlMsg&amp;gt; value that can be obtained from the code in layout_task.rs&lt;br /&gt;
&lt;br /&gt;
* A new type CSSErrorReporting was declared in script_task/lib.rs with necessary parameters&lt;br /&gt;
&lt;br /&gt;
* In script_task.rs, the method handle_css_error_reporting was defined, an empty stub&lt;br /&gt;
&lt;br /&gt;
* Also, in script_task.rs, in impl ScriptTask, the ConstellationControlMsg::CSSErrorReporting method was mapped to self.handle_css_error_reporting&lt;br /&gt;
&lt;br /&gt;
===Step 3 (a)===&lt;br /&gt;
&lt;br /&gt;
Process the new message type in components/script/script_task.rs by:&lt;br /&gt;
caching each reported parse error in a vector in Document (components/script/dom/document.rs)&lt;br /&gt;
&lt;br /&gt;
* In dom/document.rs, css_errors_store was included with all 5 parameters for the CSSErrorReporting function defined in the previous step&lt;br /&gt;
&lt;br /&gt;
* The previous step gave errors as some of the parameters were undefined, hence a new structure CSSError was declared in script_task.rs with all the 5 parameters declareas its members&lt;br /&gt;
&lt;br /&gt;
* In document.rs, the css_errors_store declaration was changed to include the structure defined above as css_errors_store: DOMRefCell&amp;lt;Vec&amp;lt;CSSError&amp;gt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* In order for above operation to run successfully, the structure has to be included in script_task.rs using &amp;quot;use script_task::CSSError&amp;quot; statement&lt;br /&gt;
&lt;br /&gt;
* For the above use statement to work, the dependency was declared in script_traits/Cargo.toml&lt;br /&gt;
&lt;br /&gt;
* The member css_errors_store was defined as css_errors_store: DOMRefCell::new(vec![]) in impl PartialEq&lt;br /&gt;
&lt;br /&gt;
* In order to perform caching of reported parse error, a function report_css_error was declared in impl PartialEq.&lt;br /&gt;
&lt;br /&gt;
* The statement self.css_errors_store.borrow_mut().push(css_error) was used inside the function above to perform the actual caching&lt;br /&gt;
&lt;br /&gt;
===Step 3 (b)===&lt;br /&gt;
&lt;br /&gt;
checking the devtools_wants_updates flag and sending it to the devtools server if it exists (see notify_devtools for a model in script_task.rs)&lt;br /&gt;
&lt;br /&gt;
* Initially, in window.rs a function was declared to get devtools_wants_updates flag and return it&lt;br /&gt;
&lt;br /&gt;
* This was used in handle_css_error_reporting function in script_task.rs&lt;br /&gt;
&lt;br /&gt;
* When enquired, with Josh if we were in the right direction, we were suggested to use a new message variant ReportCSSError in ScriptToDevtoolsControlMsg enum which already contained a CSSError object&lt;br /&gt;
&lt;br /&gt;
* When, the above suggestion was implemented we faced a cyclic dependency error as CSSError was declared in script_task.rs which was already depending on devtools_traits&lt;br /&gt;
&lt;br /&gt;
* When enquired, Josh suggested to move CSSError to devtools_traits.rs&lt;br /&gt;
&lt;br /&gt;
* But, we had already tried this and knew this wouldn't work as CSSError needs to implement JSTraceable which is there again in script::dom::binding....&lt;br /&gt;
&lt;br /&gt;
* When again enquired, Josh suggested to get around the problem by adding an entry to the list of no_jsmanaged_fields in script/dom/bindings/trace.JS&lt;br /&gt;
&lt;br /&gt;
* Then, an entry was added as follows:&lt;br /&gt;
 no_jsmanaged_fields!(JSTraceable); &lt;br /&gt;
&lt;br /&gt;
But it wasn't clear how we were to include JSTraceable in devtools_traits file. &lt;br /&gt;
&lt;br /&gt;
What 'use' statement should be used to use JSTraceable and not throw a cyclic dependency error&lt;br /&gt;
&lt;br /&gt;
* Then, as per Josh's suggestions and after some more conversations following changes were finally incorporated -&lt;br /&gt;
  the function handle_css_error_reporting in script_task.rs was defined to obtain a page for a given pipeline_id&lt;br /&gt;
&lt;br /&gt;
* a variable css_error was declared which collects the value returned by CSSError for a given pipeline_id, filename, line, column and msg&lt;br /&gt;
&lt;br /&gt;
* push this variable into document.report_css_error&lt;br /&gt;
&lt;br /&gt;
'''Dependencies'''&lt;br /&gt;
&lt;br /&gt;
* The above changes had a lot of dependencies which required following changes:&lt;br /&gt;
in script_traits/Cargo.toml, a statement was added to declare to account for dependency on cssparser&lt;br /&gt;
&lt;br /&gt;
* in servo/Cargo.lock, inclusion statements were used for dependencies on cssparser&lt;br /&gt;
&lt;br /&gt;
* in style/Cargo.toml, a statement was added to include dependencies on components/msg&lt;br /&gt;
&lt;br /&gt;
* in style/lib.rs a crate was included for msg folder&lt;br /&gt;
&lt;br /&gt;
* in media_queries.rs use statements were included for msg::ParseErrorReporter and msg::constellation_msg::PipelineId&lt;br /&gt;
&lt;br /&gt;
* a function CSSErrorReporterTest was declared including the member pipelineid&lt;br /&gt;
&lt;br /&gt;
* in impl ParseErrorReporter for CSSErrorReporterTest; the previous declaration on error_reporter was removed and the function pipeline was defined to return the current piepelineid&lt;br /&gt;
&lt;br /&gt;
* in function test_media_rule the definition of the member stylesheet was changed to accounting for syntax changes in Rust language due to its recent update&lt;br /&gt;
&lt;br /&gt;
* similar change as mentioned in previous step was performed for the member ss in the function media_query_test&lt;br /&gt;
&lt;br /&gt;
* in style/stylesheets.rs a use statement for msg::constellation_msg::PipelineId was added&lt;br /&gt;
&lt;br /&gt;
* the definition of the member stylesheet was changed accounting for syntax changes in Rust language due to its recent update&lt;br /&gt;
&lt;br /&gt;
* in style/viewport.rs, use statements for msg::ParseErrorReporter and msg::constellation_msg::PipelineId were added&lt;br /&gt;
&amp;quot;&lt;br /&gt;
* the definitions of the members error_reporter, styesheet and context was changed accounting for syntax changes in Rust language due to its recent update&lt;br /&gt;
&lt;br /&gt;
* The commits after step 1 till here can be found in the link below:&lt;br /&gt;
&lt;br /&gt;
     https://github.com/GauriGNaik/servo/commit/5b7281ac7a7416248de7871315ad79dcb3ac2804&lt;br /&gt;
&lt;br /&gt;
'''Changes after the code review'''&lt;br /&gt;
&lt;br /&gt;
* in script_task.rs, the declaration for the member pipeline_id was removed&lt;br /&gt;
&lt;br /&gt;
* few changes for alignment of the functions handle_css_error_reporting, onstellationControlMsg::CSSErrorReporting and the member css_error  were to be made&lt;br /&gt;
&lt;br /&gt;
* dependency statement on cssparser in Cargo.toml was removed&lt;br /&gt;
&lt;br /&gt;
* in script.traits/lib.rs, the crate declaration for crate cssparser was removed so was use statement for cssparser::SourceLocation.&lt;br /&gt;
&lt;br /&gt;
* The function call for CSSErrorReporting was changed to ReportCSSError&lt;br /&gt;
&lt;br /&gt;
* in servo/Cargo.lock, dependency statement on cssparser was removed&lt;br /&gt;
&lt;br /&gt;
* in style/media_queries, in the function pipeline, return statement was changed from &amp;quot;return self.pipelineid&amp;quot; to &amp;quot;return PipelineId::fake_root_pipeline_id()&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* in style/stylesheets.rs, use statement for msg::constellation_msg::PipelineId was removed&lt;br /&gt;
&lt;br /&gt;
* in style/viewport.rs, use statement for msg::constellation_msg::PipelineId was removed&lt;br /&gt;
&lt;br /&gt;
* The commits for changes done for code reviews on steps 2 and 3 can be found in the link below:&lt;br /&gt;
&lt;br /&gt;
    https://github.com/GauriGNaik/servo/commit/110e86619c5ae9a312c914ee68e6794df03ee924&lt;br /&gt;
&lt;br /&gt;
'''UML Component diagram'''&lt;br /&gt;
&lt;br /&gt;
[[File: UML2 New Page.jpeg]]&lt;br /&gt;
&lt;br /&gt;
===Step 4===&lt;br /&gt;
&lt;br /&gt;
Retrieve any cached parse errors for a document on request in handle_get_cached_messages in components/scripts/devtools.rs&lt;br /&gt;
&lt;br /&gt;
[Following are not the final changes. Still, we are facing a couple of errors. We wil resolve them soon]&lt;br /&gt;
&lt;br /&gt;
* in devtools/lib.rs, a macro DevtoolsControlMsg::FromScript was defined which instantiates a member console_message with struct variable ConsoleMessage with members message, logLevel, filename, lineNumber and columnNumber&lt;br /&gt;
&lt;br /&gt;
* in devtools_traits/lib.rs, a use statement &amp;quot;use util::mem::HeapSizeOf&amp;quot; was added&lt;br /&gt;
&lt;br /&gt;
* the definition of the struct CSSError was moved from script_task.rs to devtools_traits/lib.rs&lt;br /&gt;
&lt;br /&gt;
* in devtools_traits/lib.rs, inside enum DevtoolsControlMsg, a function ReportCSSError was declared with parameters PipelineId and CSSError&lt;br /&gt;
&lt;br /&gt;
* in bindings/trace.rs, a use statement was added to include &amp;quot;devtools_traits::CSSError&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* a declaration was also added for no_jsmanaged_fields!(CSSError) function&lt;br /&gt;
&lt;br /&gt;
* in document.rs, the use statement for script_task::CSSError was removed and use statement for devtools_traits::CSSError was added&lt;br /&gt;
&lt;br /&gt;
* in window.rs, a function return_devtools_flag was added to return the flag devtools_wants_updates&lt;br /&gt;
&lt;br /&gt;
* in script/script_task.rs, use statement for devtools_traits::CSSError was added&lt;br /&gt;
&lt;br /&gt;
* in function handle_css_error_reporting the datatype usize was changed to u32 as per new Rust conventions&lt;br /&gt;
&lt;br /&gt;
* The function document.report_css_error which was taking the parameter css_error was changed to include css_error.clone() as parameter&lt;br /&gt;
&lt;br /&gt;
* The function document.report_css_error was defined to send pipelineid and css_error on a devtools channel if devtools_wants_updates flag is set&lt;br /&gt;
&lt;br /&gt;
* in script_traits/lib.rs, in the function ReportCSSError, the datatype usize was change to u32&lt;br /&gt;
&lt;br /&gt;
* The commits for changes after the code review on step 3 till the changes mentioned in the previous steps can be found in the link below:&lt;br /&gt;
&lt;br /&gt;
    https://github.com/GauriGNaik/servo/commit/77e8721b27be8f75363aa82dd468b30ed2718e04&lt;br /&gt;
&lt;br /&gt;
'''UML Component diagram'''&lt;br /&gt;
&lt;br /&gt;
[[File: UML1 New Page.jpeg]]&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Mozilla Mozilla]&lt;br /&gt;
* [https://github.com/rust-lang/rust Rust]&lt;br /&gt;
* [https://github.com/servo/servo Servo]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Gnaik2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015/oss_M1501_GSN&amp;diff=99215</id>
		<title>CSC/ECE 517 Fall 2015/oss M1501 GSN</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015/oss_M1501_GSN&amp;diff=99215"/>
		<updated>2015-11-09T23:52:11Z</updated>

		<summary type="html">&lt;p&gt;Gnaik2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''To Report CSS errors to the devtools, both stored and live.'''&lt;br /&gt;
[https://en.wikipedia.org/wiki/Cascading_Style_Sheets CSS] errors are reported to the [https://www.mozilla.org/en-US/firefox/new/ Firefox] developer tools in this project.&lt;br /&gt;
&lt;br /&gt;
=Challenges=&lt;br /&gt;
&lt;br /&gt;
*This project builds successfully. Despite the hardships faced, it is complete and may require a few changes and a final approval from the Servo team..&lt;br /&gt;
&lt;br /&gt;
*We have spoken to Professor. Dr. Gehringer and he has granted us the permission to continue working on the project as it has been delayed due to certain circumstances which were beyond our control. However, he has asked us to share the following information with the reviewers:&lt;br /&gt;
&lt;br /&gt;
*The following is the excerpt from the conversation with Josh where he has stated that the task assigned to us was more complicated than it should have been. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;That being said, this has turned into a task that is much more complex than I originally intended.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*This is a complex Mozilla project. The steps are not easy to implement. When we implemented the first step in the list of steps, we faced around 450 errors in the other files. &lt;br /&gt;
&lt;br /&gt;
*Since the project is applicable directly to servo and not to any side dependency, any change we make causes a cascading chain of errors in different files. &lt;br /&gt;
&lt;br /&gt;
*Servo is a very large codebase and there is no documentation available to understand what each file or each piece of code is doing in Servo codebase. &lt;br /&gt;
&lt;br /&gt;
*We have also been constantly in touch and clarifying out doubts from the project manager Josh Matthews. &lt;br /&gt;
&lt;br /&gt;
*We have put in many hours and lot of efforts in this project to understand Servo, Rust and also to troubleshoot the errors. &lt;br /&gt;
&lt;br /&gt;
*Installing Rust on Windows systems was also a great challenge we faced and we spent a lot of hours on that as well in the initial phase.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*The following are the links to the gists that we have created for the errors that we have faced. Please note that we had not created gists in the initial phase when we faced almost close to 450 errors on building Servo with our changes.&lt;br /&gt;
&lt;br /&gt;
https://gist.github.com/GauriGNaik/d3d035114b0b855e574d&lt;br /&gt;
&lt;br /&gt;
https://gist.github.com/GauriGNaik/9b750c06b09600c2e223&lt;br /&gt;
&lt;br /&gt;
https://gist.github.com/anonymous/b0fed0d6d8c9122744d8&lt;br /&gt;
&lt;br /&gt;
https://gist.github.com/GauriGNaik/ac38d54b6359036770ed&lt;br /&gt;
&lt;br /&gt;
https://gist.github.com/GauriGNaik/d79b833fc3bf01f3479f&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*The following are the links to the email conversations we have had with Josh. &lt;br /&gt;
&lt;br /&gt;
https://docs.google.com/a/ncsu.edu/document/d/1DYzMR1-y141uvKjrjYWRCfsXcDcJGftF_mlyGWMFv_A/edit?usp=sharing&lt;br /&gt;
&lt;br /&gt;
https://docs.google.com/a/ncsu.edu/document/d/1UMSZJHLv86-lmvlpYpyL6bALHWagg92z_iZeNnGC67M/edit?usp=sharing&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*The following are the links to the conversations with the dev servo mailing group&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/ivcoi2LnzIk&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/IckEvM6ACpE&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/qMGR1AZKJ1g&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/13foshI3GUI&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/eyloqocWcFU&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/eyloqocWcFU&lt;br /&gt;
&lt;br /&gt;
We have shown some of the changes that we have made so far in the video. The rest of the changes can be viewed here.&lt;br /&gt;
&lt;br /&gt;
https://github.com/GauriGNaik/servo/commit/f8cda204d8b7a2bc379e3e964dc55007fec66d0c  &lt;br /&gt;
&lt;br /&gt;
A few more important notes to help the reviewer:&lt;br /&gt;
&lt;br /&gt;
*Tests are not applicable to this project. &lt;br /&gt;
*Ruby style guide is not applicable to this project. &lt;br /&gt;
*Edge cases are not applicable to this project. &lt;br /&gt;
*There is no UI testing applicable to this project. &lt;br /&gt;
*The work that we have done is exactly as per the initial steps provided by the Mozilla team.&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
Servo&amp;lt;ref&amp;gt;https://en.wikipedia.org/wiki/Servo_(layout_engine)&amp;lt;/ref&amp;gt; is an experimental web browser layout engine. It is developed by Mozilla and written in Rust.It provides an [https://en.wikipedia.org/wiki/Application_programming_interface API] for hosting the engine within other software. The Servo browser currently provides developer tools to inspect [https://en.wikipedia.org/wiki/Document_Object_Model DOM], execute [https://en.wikipedia.org/wiki/JavaScript JavaScript] remotely.&lt;br /&gt;
&lt;br /&gt;
=Rust=&lt;br /&gt;
Rust&amp;lt;ref&amp;gt;https://en.wikipedia.org/wiki/Rust_(programming_language)&amp;lt;/ref&amp;gt; is a programming language developed by Mozilla. It is used to design concurrent and safe systems.&lt;br /&gt;
&lt;br /&gt;
=Environment Setup&amp;lt;ref&amp;gt;https://github.com/servo/servo&amp;lt;/ref&amp;gt;=&lt;br /&gt;
==Pre-requisites==&lt;br /&gt;
On Debian-based Linuxes:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install curl freeglut3-dev\&lt;br /&gt;
    libfreetype6-dev libgl1-mesa-dri libglib2.0-dev xorg-dev \&lt;br /&gt;
    gperf g++ cmake python-virtualenv python-pip \&lt;br /&gt;
    libssl-dev libbz2-dev libosmesa6-dev libxmu6 libxmu-dev libglu1-mesa-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Fedora:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dnf install curl freeglut-devel libtool gcc-c++ libXi-devel \&lt;br /&gt;
    freetype-devel mesa-libGL-devel glib2-devel libX11-devel libXrandr-devel gperf \&lt;br /&gt;
    fontconfig-devel cabextract ttmkfdir python python-virtualenv python-pip expat-devel \&lt;br /&gt;
    rpm-build openssl-devel cmake bzip2-devel libXcursor-devel libXmu-devel mesa-libOSMesa&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Cloning servo==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/servo/servo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Building Servo==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd servo&lt;br /&gt;
./mach build --dev&lt;br /&gt;
./mach run tests/html/about-mozilla.html&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Project Description&amp;lt;ref&amp;gt;https://github.com/servo/servo/wiki/CSS-parse-error-reporting&amp;lt;/ref&amp;gt;=&lt;br /&gt;
We will be adding the capability of exposing CSS errors to Servo. We will be using Firefox remote developer tools to inspect and debug the code in Servo.&lt;br /&gt;
==Program Flow==&lt;br /&gt;
*Ensure that Servo can compile and run the given tests. &lt;br /&gt;
*Choose a website that is compatible with Servo and attach the remote developer tools to it. &lt;br /&gt;
'''Initial steps'''&lt;br /&gt;
*Build Servo&lt;br /&gt;
*Attach remote developer tools&lt;br /&gt;
*Making initial changes and build Servo&lt;br /&gt;
*Generate CSS error messages&lt;br /&gt;
*Process error messages and retrieve cached messages&lt;br /&gt;
*Integrate and build again&lt;br /&gt;
'''Subsequent steps'''&lt;br /&gt;
*Generate messages which communicate the errors to the script thread. &lt;br /&gt;
*Process the messages and provide support for caching them and sending them to the devtools server if it exists. &lt;br /&gt;
*Provide the functionality to retrieve the cached CSS error messages whenever requested.&lt;br /&gt;
&lt;br /&gt;
=Design Pattern Used=&lt;br /&gt;
Model view controller design pattern and Interpreter design pattern is used in this project.&lt;br /&gt;
&lt;br /&gt;
[[File:dp1.jpg]]&lt;br /&gt;
&lt;br /&gt;
=Screencast Link=&lt;br /&gt;
 https://drive.google.com/a/ncsu.edu/folderview?id=0B_iMDo_Ls2ChMXI2X0MyQlZFQk0&amp;amp;usp=sharing &lt;br /&gt;
&lt;br /&gt;
=Pull request Link=&lt;br /&gt;
 https://github.com/servo/servo/pull/8210 &lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Gnaik2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015_M1501_Report_CSS_errors_to_the_devtools,_both_stored_and_live&amp;diff=99210</id>
		<title>CSC/ECE 517 Fall 2015 M1501 Report CSS errors to the devtools, both stored and live</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015_M1501_Report_CSS_errors_to_the_devtools,_both_stored_and_live&amp;diff=99210"/>
		<updated>2015-11-09T23:38:40Z</updated>

		<summary type="html">&lt;p&gt;Gnaik2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&lt;br /&gt;
===Rust===&lt;br /&gt;
&lt;br /&gt;
[https://en.wikipedia.org/wiki/Rust_(programming_language) Rust] is a programming language developed by [http://en.wikipedia.org/wiki/Mozilla Mozilla]. It is used to design concurrent and safe systems. It is a systems programming language focused on three goals: safety, speed, and concurrency. It maintains these goals without having a garbage collector, making it a useful language for a number of use cases other languages aren’t good at: embedding in other languages, programs with specific space and time requirements, and writing low-level code, like device drivers and operating systems. &amp;lt;ref&amp;gt;http://doc.rust-lang.org/nightly/book&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Servo===&lt;br /&gt;
&lt;br /&gt;
[https://en.wikipedia.org/wiki/Servo_(layout_engine) Servo] is an experimental web browser layout engine. It is developed by Mozilla and written in Rust. It provides an [https://en.wikipedia.org/wiki/Application_programming_interface API] for hosting the engine within other software. The Servo browser currently provides developer tools to inspect [https://en.wikipedia.org/wiki/Document_Object_Model DOM], execute [https://en.wikipedia.org/wiki/JavaScript JavaScript] remotely.&lt;br /&gt;
&lt;br /&gt;
==Project Description&amp;lt;ref&amp;gt;https://github.com/servo/servo/wiki/CSS-parse-error-reporting&amp;lt;/ref&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
We will be adding the capability of exposing CSS errors to Servo. We will be using Firefox remote developer tools to inspect and debug the code in Servo. Firefox supports remote developer tools - ie. communicating with an arbitrary server that implements a protocol for exposing information about web content. Servo implements a very basic developer tools server that currently supports executing JS remotely and investigating the DOM tree in the document inspector. The scope of the project is to expand those capabilities by exposing CSS parsing errors.&lt;br /&gt;
&lt;br /&gt;
===Program Flow===&lt;br /&gt;
&lt;br /&gt;
'''Initial steps'''&lt;br /&gt;
&lt;br /&gt;
*Ensure that Servo can compile and run the given tests. &lt;br /&gt;
*Choose a website that is compatible with Servo and attach the remote developer tools to it. &lt;br /&gt;
*Build Servo&lt;br /&gt;
*Make initial changes &lt;br /&gt;
*Generate CSS error messages&lt;br /&gt;
*Build servo again with the changes&lt;br /&gt;
&lt;br /&gt;
'''Subsequent steps'''&lt;br /&gt;
&lt;br /&gt;
*Generate messages which communicate the errors to the script thread. &lt;br /&gt;
*Process the messages and provide support for caching them and sending them to the devtools server if it exists. &lt;br /&gt;
*Provide the functionality to retrieve the cached CSS error messages whenever requested.&lt;br /&gt;
&lt;br /&gt;
==Environment Setup&amp;lt;ref&amp;gt;https://github.com/servo/servo&amp;lt;/ref&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===Pre-requisites===&lt;br /&gt;
&lt;br /&gt;
On Debian-based Linuxes:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install curl freeglut3-dev\&lt;br /&gt;
    libfreetype6-dev libgl1-mesa-dri libglib2.0-dev xorg-dev \&lt;br /&gt;
    gperf g++ cmake python-virtualenv python-pip \&lt;br /&gt;
    libssl-dev libbz2-dev libosmesa6-dev libxmu6 libxmu-dev libglu1-mesa-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Fedora:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dnf install curl freeglut-devel libtool gcc-c++ libXi-devel \&lt;br /&gt;
    freetype-devel mesa-libGL-devel glib2-devel libX11-devel libXrandr-devel gperf \&lt;br /&gt;
    fontconfig-devel cabextract ttmkfdir python python-virtualenv python-pip expat-devel \&lt;br /&gt;
    rpm-build openssl-devel cmake bzip2-devel libXcursor-devel libXmu-devel mesa-libOSMesa&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Cloning servo===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/servo/servo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Building Servo===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd servo&lt;br /&gt;
./mach build --dev&lt;br /&gt;
./mach run tests/html/about-mozilla.html&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Requirement Analysis==&lt;br /&gt;
&lt;br /&gt;
===Steps completed in the OSS project -===&lt;br /&gt;
&lt;br /&gt;
* define a new trait called ParseErrorReporter in components/style_traits/lib.rs with an appropriate method to report an error, and add a error_reporter member to ParserContext that uses this&lt;br /&gt;
* make log_css_error in components/style/parser.rs take a &amp;amp;ParserContext argument and call this method&lt;br /&gt;
* extract the existing code from log_css_err into a new type that implements ParseErrorReporter in components/layout/layout_task.rs and pass instances of that type to any code that ends up creating a ParserContext value&lt;br /&gt;
* at this point, Servo should compile and execute almost exactly as before, but where RUST_LOG=style used to expose CSS errors, now RUST_LOG=layout::layout_task will be required instead.&lt;br /&gt;
&lt;br /&gt;
===Steps to be followed for final project -===&lt;br /&gt;
&lt;br /&gt;
* Add a PipelineId (from components/msg/constellation_msg.rs) member to ParserContext, to represent the source of parse errors that occur&lt;br /&gt;
* Define a new message type in ConstellationControlMsg which contains all of the information necessary to report a CSS error (including the pipeline ID), and make this new error reporter communicate with the script thread by sending messages over a Sender&amp;lt;ConstellationControlMsg&amp;gt; value that can be obtained from the code in layout_task.rs.&lt;br /&gt;
* Process the new message type in components/script/script_task.rs by -&lt;br /&gt;
  * caching each reported parse error in a vector in Document (components/script/dom/document.rs)&lt;br /&gt;
  * checking the devtools_wants_updates flag and sending it to the devtools server if it exists (notify_devtools for a model in script_task.rs)&lt;br /&gt;
* Retrieve any cached parse errors for a document on request in handle_get_cached_messages in components/scripts/devtools.rs&lt;br /&gt;
&lt;br /&gt;
===Appurtenant tasks -===&lt;br /&gt;
&lt;br /&gt;
* Since we are working on the main servo build the changes we make to the build usually has a cascading affect in dependent libraries and files. We are also doing the tasks of resolving the issues caused by the dependencies. So, the scope of the requirements are larger than those specified above.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Mozilla Mozilla]&lt;br /&gt;
* [https://github.com/rust-lang/rust Rust]&lt;br /&gt;
* [https://github.com/servo/servo Servo]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Gnaik2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015_M1501_Report_CSS_errors_to_the_devtools,_both_stored_and_live&amp;diff=99209</id>
		<title>CSC/ECE 517 Fall 2015 M1501 Report CSS errors to the devtools, both stored and live</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015_M1501_Report_CSS_errors_to_the_devtools,_both_stored_and_live&amp;diff=99209"/>
		<updated>2015-11-09T23:37:25Z</updated>

		<summary type="html">&lt;p&gt;Gnaik2: /* See also */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&lt;br /&gt;
===Rust===&lt;br /&gt;
&lt;br /&gt;
[https://en.wikipedia.org/wiki/Rust_(programming_language) Rust] is a programming language developed by [http://en.wikipedia.org/wiki/Mozilla Mozilla]. It is used to design concurrent and safe systems. It is a systems programming language focused on three goals: safety, speed, and concurrency. It maintains these goals without having a garbage collector, making it a useful language for a number of use cases other languages aren’t good at: embedding in other languages, programs with specific space and time requirements, and writing low-level code, like device drivers and operating systems. &amp;lt;ref&amp;gt;http://doc.rust-lang.org/nightly/book&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Servo===&lt;br /&gt;
&lt;br /&gt;
[https://en.wikipedia.org/wiki/Servo_(layout_engine) Servo] is an experimental web browser layout engine. It is developed by Mozilla and written in Rust. It provides an [https://en.wikipedia.org/wiki/Application_programming_interface API] for hosting the engine within other software. The Servo browser currently provides developer tools to inspect [https://en.wikipedia.org/wiki/Document_Object_Model DOM], execute [https://en.wikipedia.org/wiki/JavaScript JavaScript] remotely.&lt;br /&gt;
&lt;br /&gt;
==Project Description&amp;lt;ref&amp;gt;https://github.com/servo/servo/wiki/CSS-parse-error-reporting&amp;lt;/ref&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
We will be adding the capability of exposing CSS errors to Servo. We will be using Firefox remote developer tools to inspect and debug the code in Servo. Firefox supports remote developer tools - ie. communicating with an arbitrary server that implements a protocol for exposing information about web content. Servo implements a very basic developer tools server that currently supports executing JS remotely and investigating the DOM tree in the document inspector. The scope of the project is to expand those capabilities by exposing CSS parsing errors.&amp;lt;ref&amp;gt;https://github.com/servo/servo/wiki/CSS-parse-error-reporting&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Program Flow===&lt;br /&gt;
&lt;br /&gt;
'''Initial steps'''&lt;br /&gt;
&lt;br /&gt;
*Ensure that Servo can compile and run the given tests. &lt;br /&gt;
*Choose a website that is compatible with Servo and attach the remote developer tools to it. &lt;br /&gt;
*Build Servo&lt;br /&gt;
*Make initial changes &lt;br /&gt;
*Generate CSS error messages&lt;br /&gt;
*Build servo again with the changes&lt;br /&gt;
&lt;br /&gt;
'''Subsequent steps'''&lt;br /&gt;
&lt;br /&gt;
*Generate messages which communicate the errors to the script thread. &lt;br /&gt;
*Process the messages and provide support for caching them and sending them to the devtools server if it exists. &lt;br /&gt;
*Provide the functionality to retrieve the cached CSS error messages whenever requested.&lt;br /&gt;
&lt;br /&gt;
==Environment Setup&amp;lt;ref&amp;gt;https://github.com/servo/servo&amp;lt;/ref&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===Pre-requisites===&lt;br /&gt;
&lt;br /&gt;
On Debian-based Linuxes:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install curl freeglut3-dev\&lt;br /&gt;
    libfreetype6-dev libgl1-mesa-dri libglib2.0-dev xorg-dev \&lt;br /&gt;
    gperf g++ cmake python-virtualenv python-pip \&lt;br /&gt;
    libssl-dev libbz2-dev libosmesa6-dev libxmu6 libxmu-dev libglu1-mesa-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Fedora:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dnf install curl freeglut-devel libtool gcc-c++ libXi-devel \&lt;br /&gt;
    freetype-devel mesa-libGL-devel glib2-devel libX11-devel libXrandr-devel gperf \&lt;br /&gt;
    fontconfig-devel cabextract ttmkfdir python python-virtualenv python-pip expat-devel \&lt;br /&gt;
    rpm-build openssl-devel cmake bzip2-devel libXcursor-devel libXmu-devel mesa-libOSMesa&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Cloning servo===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/servo/servo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Building Servo===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd servo&lt;br /&gt;
./mach build --dev&lt;br /&gt;
./mach run tests/html/about-mozilla.html&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Requirement Analysis==&lt;br /&gt;
&lt;br /&gt;
===Steps completed in the OSS project -===&lt;br /&gt;
&lt;br /&gt;
* define a new trait called ParseErrorReporter in components/style_traits/lib.rs with an appropriate method to report an error, and add a error_reporter member to ParserContext that uses this&lt;br /&gt;
* make log_css_error in components/style/parser.rs take a &amp;amp;ParserContext argument and call this method&lt;br /&gt;
* extract the existing code from log_css_err into a new type that implements ParseErrorReporter in components/layout/layout_task.rs and pass instances of that type to any code that ends up creating a ParserContext value&lt;br /&gt;
* at this point, Servo should compile and execute almost exactly as before, but where RUST_LOG=style used to expose CSS errors, now RUST_LOG=layout::layout_task will be required instead.&lt;br /&gt;
&lt;br /&gt;
===Steps to be followed for final project -===&lt;br /&gt;
&lt;br /&gt;
* Add a PipelineId (from components/msg/constellation_msg.rs) member to ParserContext, to represent the source of parse errors that occur&lt;br /&gt;
* Define a new message type in ConstellationControlMsg which contains all of the information necessary to report a CSS error (including the pipeline ID), and make this new error reporter communicate with the script thread by sending messages over a Sender&amp;lt;ConstellationControlMsg&amp;gt; value that can be obtained from the code in layout_task.rs.&lt;br /&gt;
* Process the new message type in components/script/script_task.rs by -&lt;br /&gt;
  * caching each reported parse error in a vector in Document (components/script/dom/document.rs)&lt;br /&gt;
  * checking the devtools_wants_updates flag and sending it to the devtools server if it exists (notify_devtools for a model in script_task.rs)&lt;br /&gt;
* Retrieve any cached parse errors for a document on request in handle_get_cached_messages in components/scripts/devtools.rs&lt;br /&gt;
&lt;br /&gt;
===Appurtenant tasks -===&lt;br /&gt;
&lt;br /&gt;
* Since we are working on the main servo build the changes we make to the build usually has a cascading affect in dependent libraries and files. We are also doing the tasks of resolving the issues caused by the dependencies. So, the scope of the requirements are larger than those specified above.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Mozilla Mozilla]&lt;br /&gt;
* [https://github.com/rust-lang/rust Rust]&lt;br /&gt;
* [https://github.com/servo/servo Servo]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Gnaik2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015_M1501_Report_CSS_errors_to_the_devtools,_both_stored_and_live&amp;diff=99208</id>
		<title>CSC/ECE 517 Fall 2015 M1501 Report CSS errors to the devtools, both stored and live</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015_M1501_Report_CSS_errors_to_the_devtools,_both_stored_and_live&amp;diff=99208"/>
		<updated>2015-11-09T23:36:35Z</updated>

		<summary type="html">&lt;p&gt;Gnaik2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&lt;br /&gt;
===Rust===&lt;br /&gt;
&lt;br /&gt;
[https://en.wikipedia.org/wiki/Rust_(programming_language) Rust] is a programming language developed by [http://en.wikipedia.org/wiki/Mozilla Mozilla]. It is used to design concurrent and safe systems. It is a systems programming language focused on three goals: safety, speed, and concurrency. It maintains these goals without having a garbage collector, making it a useful language for a number of use cases other languages aren’t good at: embedding in other languages, programs with specific space and time requirements, and writing low-level code, like device drivers and operating systems. &amp;lt;ref&amp;gt;http://doc.rust-lang.org/nightly/book&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Servo===&lt;br /&gt;
&lt;br /&gt;
[https://en.wikipedia.org/wiki/Servo_(layout_engine) Servo] is an experimental web browser layout engine. It is developed by Mozilla and written in Rust. It provides an [https://en.wikipedia.org/wiki/Application_programming_interface API] for hosting the engine within other software. The Servo browser currently provides developer tools to inspect [https://en.wikipedia.org/wiki/Document_Object_Model DOM], execute [https://en.wikipedia.org/wiki/JavaScript JavaScript] remotely.&lt;br /&gt;
&lt;br /&gt;
==Project Description&amp;lt;ref&amp;gt;https://github.com/servo/servo/wiki/CSS-parse-error-reporting&amp;lt;/ref&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
We will be adding the capability of exposing CSS errors to Servo. We will be using Firefox remote developer tools to inspect and debug the code in Servo. Firefox supports remote developer tools - ie. communicating with an arbitrary server that implements a protocol for exposing information about web content. Servo implements a very basic developer tools server that currently supports executing JS remotely and investigating the DOM tree in the document inspector. The scope of the project is to expand those capabilities by exposing CSS parsing errors.&amp;lt;ref&amp;gt;https://github.com/servo/servo/wiki/CSS-parse-error-reporting&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Program Flow===&lt;br /&gt;
&lt;br /&gt;
'''Initial steps'''&lt;br /&gt;
&lt;br /&gt;
*Ensure that Servo can compile and run the given tests. &lt;br /&gt;
*Choose a website that is compatible with Servo and attach the remote developer tools to it. &lt;br /&gt;
*Build Servo&lt;br /&gt;
*Make initial changes &lt;br /&gt;
*Generate CSS error messages&lt;br /&gt;
*Build servo again with the changes&lt;br /&gt;
&lt;br /&gt;
'''Subsequent steps'''&lt;br /&gt;
&lt;br /&gt;
*Generate messages which communicate the errors to the script thread. &lt;br /&gt;
*Process the messages and provide support for caching them and sending them to the devtools server if it exists. &lt;br /&gt;
*Provide the functionality to retrieve the cached CSS error messages whenever requested.&lt;br /&gt;
&lt;br /&gt;
==Environment Setup&amp;lt;ref&amp;gt;https://github.com/servo/servo&amp;lt;/ref&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===Pre-requisites===&lt;br /&gt;
&lt;br /&gt;
On Debian-based Linuxes:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install curl freeglut3-dev\&lt;br /&gt;
    libfreetype6-dev libgl1-mesa-dri libglib2.0-dev xorg-dev \&lt;br /&gt;
    gperf g++ cmake python-virtualenv python-pip \&lt;br /&gt;
    libssl-dev libbz2-dev libosmesa6-dev libxmu6 libxmu-dev libglu1-mesa-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Fedora:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dnf install curl freeglut-devel libtool gcc-c++ libXi-devel \&lt;br /&gt;
    freetype-devel mesa-libGL-devel glib2-devel libX11-devel libXrandr-devel gperf \&lt;br /&gt;
    fontconfig-devel cabextract ttmkfdir python python-virtualenv python-pip expat-devel \&lt;br /&gt;
    rpm-build openssl-devel cmake bzip2-devel libXcursor-devel libXmu-devel mesa-libOSMesa&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Cloning servo===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/servo/servo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Building Servo===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd servo&lt;br /&gt;
./mach build --dev&lt;br /&gt;
./mach run tests/html/about-mozilla.html&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Requirement Analysis==&lt;br /&gt;
&lt;br /&gt;
===Steps completed in the OSS project -===&lt;br /&gt;
&lt;br /&gt;
* define a new trait called ParseErrorReporter in components/style_traits/lib.rs with an appropriate method to report an error, and add a error_reporter member to ParserContext that uses this&lt;br /&gt;
* make log_css_error in components/style/parser.rs take a &amp;amp;ParserContext argument and call this method&lt;br /&gt;
* extract the existing code from log_css_err into a new type that implements ParseErrorReporter in components/layout/layout_task.rs and pass instances of that type to any code that ends up creating a ParserContext value&lt;br /&gt;
* at this point, Servo should compile and execute almost exactly as before, but where RUST_LOG=style used to expose CSS errors, now RUST_LOG=layout::layout_task will be required instead.&lt;br /&gt;
&lt;br /&gt;
===Steps to be followed for final project -===&lt;br /&gt;
&lt;br /&gt;
* Add a PipelineId (from components/msg/constellation_msg.rs) member to ParserContext, to represent the source of parse errors that occur&lt;br /&gt;
* Define a new message type in ConstellationControlMsg which contains all of the information necessary to report a CSS error (including the pipeline ID), and make this new error reporter communicate with the script thread by sending messages over a Sender&amp;lt;ConstellationControlMsg&amp;gt; value that can be obtained from the code in layout_task.rs.&lt;br /&gt;
* Process the new message type in components/script/script_task.rs by -&lt;br /&gt;
  * caching each reported parse error in a vector in Document (components/script/dom/document.rs)&lt;br /&gt;
  * checking the devtools_wants_updates flag and sending it to the devtools server if it exists (notify_devtools for a model in script_task.rs)&lt;br /&gt;
* Retrieve any cached parse errors for a document on request in handle_get_cached_messages in components/scripts/devtools.rs&lt;br /&gt;
&lt;br /&gt;
===Appurtenant tasks -===&lt;br /&gt;
&lt;br /&gt;
* Since we are working on the main servo build the changes we make to the build usually has a cascading affect in dependent libraries and files. We are also doing the tasks of resolving the issues caused by the dependencies. So, the scope of the requirements are larger than those specified above.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Mozilla Mozilla]&lt;br /&gt;
* [https://github.com/rust-lang/rust Rust]&lt;br /&gt;
* [https://github.com/servo/servo Servo]&lt;br /&gt;
* [https://github.com/servo/servo/wiki/CSS-parse-error-reporting]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Gnaik2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015_M1501_Report_CSS_errors_to_the_devtools,_both_stored_and_live&amp;diff=99207</id>
		<title>CSC/ECE 517 Fall 2015 M1501 Report CSS errors to the devtools, both stored and live</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015_M1501_Report_CSS_errors_to_the_devtools,_both_stored_and_live&amp;diff=99207"/>
		<updated>2015-11-09T23:36:08Z</updated>

		<summary type="html">&lt;p&gt;Gnaik2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&lt;br /&gt;
===Rust===&lt;br /&gt;
&lt;br /&gt;
[https://en.wikipedia.org/wiki/Rust_(programming_language) Rust] is a programming language developed by [http://en.wikipedia.org/wiki/Mozilla Mozilla]. It is used to design concurrent and safe systems. It is a systems programming language focused on three goals: safety, speed, and concurrency. It maintains these goals without having a garbage collector, making it a useful language for a number of use cases other languages aren’t good at: embedding in other languages, programs with specific space and time requirements, and writing low-level code, like device drivers and operating systems. &amp;lt;ref&amp;gt;http://doc.rust-lang.org/nightly/book&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Servo===&lt;br /&gt;
&lt;br /&gt;
[https://en.wikipedia.org/wiki/Servo_(layout_engine) Servo] is an experimental web browser layout engine. It is developed by Mozilla and written in Rust. It provides an [https://en.wikipedia.org/wiki/Application_programming_interface API] for hosting the engine within other software. The Servo browser currently provides developer tools to inspect [https://en.wikipedia.org/wiki/Document_Object_Model DOM], execute [https://en.wikipedia.org/wiki/JavaScript JavaScript] remotely.&lt;br /&gt;
&lt;br /&gt;
===Project Description&amp;lt;ref&amp;gt;https://github.com/servo/servo/wiki/CSS-parse-error-reporting&amp;lt;/ref&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
We will be adding the capability of exposing CSS errors to Servo. We will be using Firefox remote developer tools to inspect and debug the code in Servo. Firefox supports remote developer tools - ie. communicating with an arbitrary server that implements a protocol for exposing information about web content. Servo implements a very basic developer tools server that currently supports executing JS remotely and investigating the DOM tree in the document inspector. The scope of the project is to expand those capabilities by exposing CSS parsing errors.&amp;lt;ref&amp;gt;https://github.com/servo/servo/wiki/CSS-parse-error-reporting&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Program Flow===&lt;br /&gt;
&lt;br /&gt;
'''Initial steps'''&lt;br /&gt;
&lt;br /&gt;
*Ensure that Servo can compile and run the given tests. &lt;br /&gt;
*Choose a website that is compatible with Servo and attach the remote developer tools to it. &lt;br /&gt;
*Build Servo&lt;br /&gt;
*Make initial changes &lt;br /&gt;
*Generate CSS error messages&lt;br /&gt;
*Build servo again with the changes&lt;br /&gt;
&lt;br /&gt;
'''Subsequent steps'''&lt;br /&gt;
&lt;br /&gt;
*Generate messages which communicate the errors to the script thread. &lt;br /&gt;
*Process the messages and provide support for caching them and sending them to the devtools server if it exists. &lt;br /&gt;
*Provide the functionality to retrieve the cached CSS error messages whenever requested.&lt;br /&gt;
&lt;br /&gt;
==Environment Setup&amp;lt;ref&amp;gt;https://github.com/servo/servo&amp;lt;/ref&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===Pre-requisites===&lt;br /&gt;
&lt;br /&gt;
On Debian-based Linuxes:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install curl freeglut3-dev\&lt;br /&gt;
    libfreetype6-dev libgl1-mesa-dri libglib2.0-dev xorg-dev \&lt;br /&gt;
    gperf g++ cmake python-virtualenv python-pip \&lt;br /&gt;
    libssl-dev libbz2-dev libosmesa6-dev libxmu6 libxmu-dev libglu1-mesa-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Fedora:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dnf install curl freeglut-devel libtool gcc-c++ libXi-devel \&lt;br /&gt;
    freetype-devel mesa-libGL-devel glib2-devel libX11-devel libXrandr-devel gperf \&lt;br /&gt;
    fontconfig-devel cabextract ttmkfdir python python-virtualenv python-pip expat-devel \&lt;br /&gt;
    rpm-build openssl-devel cmake bzip2-devel libXcursor-devel libXmu-devel mesa-libOSMesa&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Cloning servo===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/servo/servo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Building Servo===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd servo&lt;br /&gt;
./mach build --dev&lt;br /&gt;
./mach run tests/html/about-mozilla.html&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Requirement Analysis==&lt;br /&gt;
&lt;br /&gt;
===Steps completed in the OSS project -===&lt;br /&gt;
&lt;br /&gt;
* define a new trait called ParseErrorReporter in components/style_traits/lib.rs with an appropriate method to report an error, and add a error_reporter member to ParserContext that uses this&lt;br /&gt;
* make log_css_error in components/style/parser.rs take a &amp;amp;ParserContext argument and call this method&lt;br /&gt;
* extract the existing code from log_css_err into a new type that implements ParseErrorReporter in components/layout/layout_task.rs and pass instances of that type to any code that ends up creating a ParserContext value&lt;br /&gt;
* at this point, Servo should compile and execute almost exactly as before, but where RUST_LOG=style used to expose CSS errors, now RUST_LOG=layout::layout_task will be required instead.&lt;br /&gt;
&lt;br /&gt;
===Steps to be followed for final project -===&lt;br /&gt;
&lt;br /&gt;
* Add a PipelineId (from components/msg/constellation_msg.rs) member to ParserContext, to represent the source of parse errors that occur&lt;br /&gt;
* Define a new message type in ConstellationControlMsg which contains all of the information necessary to report a CSS error (including the pipeline ID), and make this new error reporter communicate with the script thread by sending messages over a Sender&amp;lt;ConstellationControlMsg&amp;gt; value that can be obtained from the code in layout_task.rs.&lt;br /&gt;
* Process the new message type in components/script/script_task.rs by -&lt;br /&gt;
  * caching each reported parse error in a vector in Document (components/script/dom/document.rs)&lt;br /&gt;
  * checking the devtools_wants_updates flag and sending it to the devtools server if it exists (notify_devtools for a model in script_task.rs)&lt;br /&gt;
* Retrieve any cached parse errors for a document on request in handle_get_cached_messages in components/scripts/devtools.rs&lt;br /&gt;
&lt;br /&gt;
===Appurtenant tasks -===&lt;br /&gt;
&lt;br /&gt;
* Since we are working on the main servo build the changes we make to the build usually has a cascading affect in dependent libraries and files. We are also doing the tasks of resolving the issues caused by the dependencies. So, the scope of the requirements are larger than those specified above.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Mozilla Mozilla]&lt;br /&gt;
* [https://github.com/rust-lang/rust Rust]&lt;br /&gt;
* [https://github.com/servo/servo Servo]&lt;br /&gt;
* [https://github.com/servo/servo/wiki/CSS-parse-error-reporting]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Gnaik2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015_M1501_Report_CSS_errors_to_the_devtools,_both_stored_and_live&amp;diff=99204</id>
		<title>CSC/ECE 517 Fall 2015 M1501 Report CSS errors to the devtools, both stored and live</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015_M1501_Report_CSS_errors_to_the_devtools,_both_stored_and_live&amp;diff=99204"/>
		<updated>2015-11-09T23:21:36Z</updated>

		<summary type="html">&lt;p&gt;Gnaik2: /* Requirement Analysis */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&lt;br /&gt;
===Rust===&lt;br /&gt;
&lt;br /&gt;
[https://en.wikipedia.org/wiki/Rust_(programming_language) Rust] is a programming language developed by [http://en.wikipedia.org/wiki/Mozilla Mozilla]. It is used to design concurrent and safe systems. It is a systems programming language focused on three goals: safety, speed, and concurrency. It maintains these goals without having a garbage collector, making it a useful language for a number of use cases other languages aren’t good at: embedding in other languages, programs with specific space and time requirements, and writing low-level code, like device drivers and operating systems. &amp;lt;ref&amp;gt;http://doc.rust-lang.org/nightly/book&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Servo===&lt;br /&gt;
&lt;br /&gt;
[https://en.wikipedia.org/wiki/Servo_(layout_engine) Servo] is an experimental web browser layout engine. It is developed by Mozilla and written in Rust. It provides an [https://en.wikipedia.org/wiki/Application_programming_interface API] for hosting the engine within other software. The Servo browser currently provides developer tools to inspect [https://en.wikipedia.org/wiki/Document_Object_Model DOM], execute [https://en.wikipedia.org/wiki/JavaScript JavaScript] remotely.&lt;br /&gt;
&lt;br /&gt;
==Project Description&amp;lt;ref&amp;gt;https://github.com/servo/servo/wiki/CSS-parse-error-reporting&amp;lt;/ref&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
We will be adding the capability of exposing CSS errors to Servo. We will be using Firefox remote developer tools to inspect and debug the code in Servo.Firefox supports remote developer tools - ie. communicating with an arbitrary server that implements a protocol for exposing information about web content. Servo implements a very basic developer tools server that currently supports executing JS remotely and investigating the DOM tree in the document inspector. The scope of the project is to expand those capabilities by exposing CSS parsing errors.&lt;br /&gt;
&lt;br /&gt;
===Program Flow===&lt;br /&gt;
&lt;br /&gt;
*Ensure that Servo can compile and run the given tests. &lt;br /&gt;
*Choose a website that is compatible with Servo and attach the remote developer tools to it. &lt;br /&gt;
&lt;br /&gt;
'''Initial steps'''&lt;br /&gt;
&lt;br /&gt;
*Build Servo&lt;br /&gt;
*Attach remote developer tools&lt;br /&gt;
*Making initial changes and build Servo&lt;br /&gt;
*Generate CSS error messages&lt;br /&gt;
*Process error messages and retrieve cached messages&lt;br /&gt;
*Integrate and build again&lt;br /&gt;
&lt;br /&gt;
'''Subsequent steps'''&lt;br /&gt;
&lt;br /&gt;
*Generate messages which communicate the errors to the script thread. &lt;br /&gt;
*Process the messages and provide support for caching them and sending them to the devtools server if it exists. &lt;br /&gt;
*Provide the functionality to retrieve the cached CSS error messages whenever requested.&lt;br /&gt;
&lt;br /&gt;
==Environment Setup&amp;lt;ref&amp;gt;https://github.com/servo/servo&amp;lt;/ref&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===Pre-requisites===&lt;br /&gt;
&lt;br /&gt;
On Debian-based Linuxes:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install curl freeglut3-dev\&lt;br /&gt;
    libfreetype6-dev libgl1-mesa-dri libglib2.0-dev xorg-dev \&lt;br /&gt;
    gperf g++ cmake python-virtualenv python-pip \&lt;br /&gt;
    libssl-dev libbz2-dev libosmesa6-dev libxmu6 libxmu-dev libglu1-mesa-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Fedora:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dnf install curl freeglut-devel libtool gcc-c++ libXi-devel \&lt;br /&gt;
    freetype-devel mesa-libGL-devel glib2-devel libX11-devel libXrandr-devel gperf \&lt;br /&gt;
    fontconfig-devel cabextract ttmkfdir python python-virtualenv python-pip expat-devel \&lt;br /&gt;
    rpm-build openssl-devel cmake bzip2-devel libXcursor-devel libXmu-devel mesa-libOSMesa&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Cloning servo===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/servo/servo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Building Servo===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd servo&lt;br /&gt;
./mach build --dev&lt;br /&gt;
./mach run tests/html/about-mozilla.html&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Requirement Analysis==&lt;br /&gt;
&lt;br /&gt;
===Steps completed in the OSS project -===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* make log_css_error in components/style/parser.rs take a &amp;amp;ParserContext argument and call this method&lt;br /&gt;
* extract the existing code from log_css_err into a new type that implements ParseErrorReporter in components/layout/layout_task.rs and pass instances of that type to any code that ends up creating a ParserContext value&lt;br /&gt;
* at this point, Servo should compile and execute almost exactly as before, but where RUST_LOG=style used to expose CSS errors, now RUST_LOG=layout::layout_task will be required instead.&lt;br /&gt;
&lt;br /&gt;
===Steps to be followed specific for final project -===&lt;br /&gt;
&lt;br /&gt;
* Add a PipelineId (from components/msg/constellation_msg.rs) member to ParserContext, to represent the source of parse errors that occur&lt;br /&gt;
* Define a new message type in ConstellationControlMsg which contains all of the information necessary to report a CSS error (including the pipeline ID), and make this new error reporter communicate with the script thread by sending messages over a Sender&amp;lt;ConstellationControlMsg&amp;gt; value that can be obtained from the code in layout_task.rs.&lt;br /&gt;
* Process the new message type in components/script/script_task.rs by -&lt;br /&gt;
  * caching each reported parse error in a vector in Document (components/script/dom/document.rs)&lt;br /&gt;
  * checking the devtools_wants_updates flag and sending it to the devtools server if it exists (see notify_devtools for a model in script_task.rs)&lt;br /&gt;
* Retrieve any cached parse errors for a document on request in handle_get_cached_messages in components/scripts/devtools.rs&lt;br /&gt;
&lt;br /&gt;
===Appurtenant tasks -===&lt;br /&gt;
&lt;br /&gt;
* Since we are working on the main servo build the changes we make to the build usually have a cascading affect in dependent libraries and files. We are also doing the tasks of resolving the issues caused by the dependency. So, the scope of the requirements are larger than those specified above.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Mozilla Mozilla]&lt;br /&gt;
* [https://github.com/rust-lang/rust Rust]&lt;br /&gt;
* [https://github.com/servo/servo Servo]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Gnaik2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015_M1501_Report_CSS_errors_to_the_devtools,_both_stored_and_live&amp;diff=99203</id>
		<title>CSC/ECE 517 Fall 2015 M1501 Report CSS errors to the devtools, both stored and live</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015_M1501_Report_CSS_errors_to_the_devtools,_both_stored_and_live&amp;diff=99203"/>
		<updated>2015-11-09T23:20:18Z</updated>

		<summary type="html">&lt;p&gt;Gnaik2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&lt;br /&gt;
===Rust===&lt;br /&gt;
&lt;br /&gt;
[https://en.wikipedia.org/wiki/Rust_(programming_language) Rust] is a programming language developed by [http://en.wikipedia.org/wiki/Mozilla Mozilla]. It is used to design concurrent and safe systems. It is a systems programming language focused on three goals: safety, speed, and concurrency. It maintains these goals without having a garbage collector, making it a useful language for a number of use cases other languages aren’t good at: embedding in other languages, programs with specific space and time requirements, and writing low-level code, like device drivers and operating systems. &amp;lt;ref&amp;gt;http://doc.rust-lang.org/nightly/book&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Servo===&lt;br /&gt;
&lt;br /&gt;
[https://en.wikipedia.org/wiki/Servo_(layout_engine) Servo] is an experimental web browser layout engine. It is developed by Mozilla and written in Rust. It provides an [https://en.wikipedia.org/wiki/Application_programming_interface API] for hosting the engine within other software. The Servo browser currently provides developer tools to inspect [https://en.wikipedia.org/wiki/Document_Object_Model DOM], execute [https://en.wikipedia.org/wiki/JavaScript JavaScript] remotely.&lt;br /&gt;
&lt;br /&gt;
==Project Description&amp;lt;ref&amp;gt;https://github.com/servo/servo/wiki/CSS-parse-error-reporting&amp;lt;/ref&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
We will be adding the capability of exposing CSS errors to Servo. We will be using Firefox remote developer tools to inspect and debug the code in Servo.Firefox supports remote developer tools - ie. communicating with an arbitrary server that implements a protocol for exposing information about web content. Servo implements a very basic developer tools server that currently supports executing JS remotely and investigating the DOM tree in the document inspector. The scope of the project is to expand those capabilities by exposing CSS parsing errors.&lt;br /&gt;
&lt;br /&gt;
===Program Flow===&lt;br /&gt;
&lt;br /&gt;
*Ensure that Servo can compile and run the given tests. &lt;br /&gt;
*Choose a website that is compatible with Servo and attach the remote developer tools to it. &lt;br /&gt;
&lt;br /&gt;
'''Initial steps'''&lt;br /&gt;
&lt;br /&gt;
*Build Servo&lt;br /&gt;
*Attach remote developer tools&lt;br /&gt;
*Making initial changes and build Servo&lt;br /&gt;
*Generate CSS error messages&lt;br /&gt;
*Process error messages and retrieve cached messages&lt;br /&gt;
*Integrate and build again&lt;br /&gt;
&lt;br /&gt;
'''Subsequent steps'''&lt;br /&gt;
&lt;br /&gt;
*Generate messages which communicate the errors to the script thread. &lt;br /&gt;
*Process the messages and provide support for caching them and sending them to the devtools server if it exists. &lt;br /&gt;
*Provide the functionality to retrieve the cached CSS error messages whenever requested.&lt;br /&gt;
&lt;br /&gt;
==Environment Setup&amp;lt;ref&amp;gt;https://github.com/servo/servo&amp;lt;/ref&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===Pre-requisites===&lt;br /&gt;
&lt;br /&gt;
On Debian-based Linuxes:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install curl freeglut3-dev\&lt;br /&gt;
    libfreetype6-dev libgl1-mesa-dri libglib2.0-dev xorg-dev \&lt;br /&gt;
    gperf g++ cmake python-virtualenv python-pip \&lt;br /&gt;
    libssl-dev libbz2-dev libosmesa6-dev libxmu6 libxmu-dev libglu1-mesa-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Fedora:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dnf install curl freeglut-devel libtool gcc-c++ libXi-devel \&lt;br /&gt;
    freetype-devel mesa-libGL-devel glib2-devel libX11-devel libXrandr-devel gperf \&lt;br /&gt;
    fontconfig-devel cabextract ttmkfdir python python-virtualenv python-pip expat-devel \&lt;br /&gt;
    rpm-build openssl-devel cmake bzip2-devel libXcursor-devel libXmu-devel mesa-libOSMesa&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Cloning servo===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/servo/servo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Building Servo===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd servo&lt;br /&gt;
./mach build --dev&lt;br /&gt;
./mach run tests/html/about-mozilla.html&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Requirement Analysis==&lt;br /&gt;
&lt;br /&gt;
===Steps to be followed as a follow-up of OSS project -===&lt;br /&gt;
&lt;br /&gt;
* make log_css_error in components/style/parser.rs take a &amp;amp;ParserContext argument and call this method&lt;br /&gt;
* extract the existing code from log_css_err into a new type that implements ParseErrorReporter in components/layout/layout_task.rs and pass instances of that type to any code that ends up creating a ParserContext value&lt;br /&gt;
* at this point, Servo should compile and execute almost exactly as before, but where RUST_LOG=style used to expose CSS errors, now RUST_LOG=layout::layout_task will be required instead.&lt;br /&gt;
&lt;br /&gt;
===Steps to be followed specific for final project -===&lt;br /&gt;
&lt;br /&gt;
* Add a PipelineId (from components/msg/constellation_msg.rs) member to ParserContext, to represent the source of parse errors that occur&lt;br /&gt;
* Define a new message type in ConstellationControlMsg which contains all of the information necessary to report a CSS error (including the pipeline ID), and make this new error reporter communicate with the script thread by sending messages over a Sender&amp;lt;ConstellationControlMsg&amp;gt; value that can be obtained from the code in layout_task.rs.&lt;br /&gt;
* Process the new message type in components/script/script_task.rs by -&lt;br /&gt;
  * caching each reported parse error in a vector in Document (components/script/dom/document.rs)&lt;br /&gt;
  * checking the devtools_wants_updates flag and sending it to the devtools server if it exists (see notify_devtools for a model in script_task.rs)&lt;br /&gt;
* Retrieve any cached parse errors for a document on request in handle_get_cached_messages in components/scripts/devtools.rs&lt;br /&gt;
&lt;br /&gt;
===Appurtenant tasks -===&lt;br /&gt;
&lt;br /&gt;
* Since we are working on the main servo build the changes we make to the build usually have a cascading affect in dependent libraries and files. We are also doing the tasks of resolving the issues caused by the dependency. So, the scope of the requirements are larger than those specified above.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Mozilla Mozilla]&lt;br /&gt;
* [https://github.com/rust-lang/rust Rust]&lt;br /&gt;
* [https://github.com/servo/servo Servo]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Gnaik2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015_M1501_Report_CSS_errors_to_the_devtools,_both_stored_and_live&amp;diff=99202</id>
		<title>CSC/ECE 517 Fall 2015 M1501 Report CSS errors to the devtools, both stored and live</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015_M1501_Report_CSS_errors_to_the_devtools,_both_stored_and_live&amp;diff=99202"/>
		<updated>2015-11-09T23:18:51Z</updated>

		<summary type="html">&lt;p&gt;Gnaik2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&lt;br /&gt;
===Rust===&lt;br /&gt;
&lt;br /&gt;
[https://en.wikipedia.org/wiki/Rust_(programming_language) Rust] is a programming language developed by [http://en.wikipedia.org/wiki/Mozilla Mozilla]. It is used to design concurrent and safe systems. It is a systems programming language focused on three goals: safety, speed, and concurrency. It maintains these goals without having a garbage collector, making it a useful language for a number of use cases other languages aren’t good at: embedding in other languages, programs with specific space and time requirements, and writing low-level code, like device drivers and operating systems. &amp;lt;ref&amp;gt;http://doc.rust-lang.org/nightly/book&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Servo===&lt;br /&gt;
&lt;br /&gt;
[https://en.wikipedia.org/wiki/Servo_(layout_engine) Servo] is an experimental web browser layout engine. It is developed by Mozilla and written in Rust. It provides an [https://en.wikipedia.org/wiki/Application_programming_interface API] for hosting the engine within other software. The Servo browser currently provides developer tools to inspect [https://en.wikipedia.org/wiki/Document_Object_Model DOM], execute [https://en.wikipedia.org/wiki/JavaScript JavaScript] remotely.&lt;br /&gt;
&lt;br /&gt;
==Project Description&amp;lt;ref&amp;gt;https://github.com/servo/servo/wiki/CSS-parse-error-reporting&amp;lt;/ref&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
We will be adding the capability of exposing CSS errors to Servo. We will be using Firefox remote developer tools to inspect and debug the code in Servo.Firefox supports remote developer tools - ie. communicating with an arbitrary server that implements a protocol for exposing information about web content. Servo implements a very basic developer tools server that currently supports executing JS remotely and investigating the DOM tree in the document inspector. The scope of the project is to expand those capabilities by exposing CSS parsing errors.&lt;br /&gt;
&lt;br /&gt;
===Program Flow===&lt;br /&gt;
*Ensure that Servo can compile and run the given tests. &lt;br /&gt;
*Choose a website that is compatible with Servo and attach the remote developer tools to it. &lt;br /&gt;
'''Initial steps'''&lt;br /&gt;
*Build Servo&lt;br /&gt;
*Attach remote developer tools&lt;br /&gt;
*Making initial changes and build Servo&lt;br /&gt;
*Generate CSS error messages&lt;br /&gt;
*Process error messages and retrieve cached messages&lt;br /&gt;
*Integrate and build again&lt;br /&gt;
'''Subsequent steps'''&lt;br /&gt;
*Generate messages which communicate the errors to the script thread. &lt;br /&gt;
*Process the messages and provide support for caching them and sending them to the devtools server if it exists. &lt;br /&gt;
*Provide the functionality to retrieve the cached CSS error messages whenever requested.&lt;br /&gt;
&lt;br /&gt;
==Environment Setup&amp;lt;ref&amp;gt;https://github.com/servo/servo&amp;lt;/ref&amp;gt;==&lt;br /&gt;
===Pre-requisites===&lt;br /&gt;
On Debian-based Linuxes:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install curl freeglut3-dev\&lt;br /&gt;
    libfreetype6-dev libgl1-mesa-dri libglib2.0-dev xorg-dev \&lt;br /&gt;
    gperf g++ cmake python-virtualenv python-pip \&lt;br /&gt;
    libssl-dev libbz2-dev libosmesa6-dev libxmu6 libxmu-dev libglu1-mesa-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Fedora:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dnf install curl freeglut-devel libtool gcc-c++ libXi-devel \&lt;br /&gt;
    freetype-devel mesa-libGL-devel glib2-devel libX11-devel libXrandr-devel gperf \&lt;br /&gt;
    fontconfig-devel cabextract ttmkfdir python python-virtualenv python-pip expat-devel \&lt;br /&gt;
    rpm-build openssl-devel cmake bzip2-devel libXcursor-devel libXmu-devel mesa-libOSMesa&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Cloning servo===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/servo/servo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Building Servo===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd servo&lt;br /&gt;
./mach build --dev&lt;br /&gt;
./mach run tests/html/about-mozilla.html&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Requirement Analysis==&lt;br /&gt;
&lt;br /&gt;
===Steps to be followed as a follow-up of OSS project -===&lt;br /&gt;
&lt;br /&gt;
* make log_css_error in components/style/parser.rs take a &amp;amp;ParserContext argument and call this method&lt;br /&gt;
* extract the existing code from log_css_err into a new type that implements ParseErrorReporter in components/layout/layout_task.rs and pass instances of that type to any code that ends up creating a ParserContext value&lt;br /&gt;
* at this point, Servo should compile and execute almost exactly as before, but where RUST_LOG=style used to expose CSS errors, now RUST_LOG=layout::layout_task will be required instead.&lt;br /&gt;
&lt;br /&gt;
===Steps to be followed specific for final project -===&lt;br /&gt;
&lt;br /&gt;
* Add a PipelineId (from components/msg/constellation_msg.rs) member to ParserContext, to represent the source of parse errors that occur&lt;br /&gt;
* Define a new message type in ConstellationControlMsg which contains all of the information necessary to report a CSS error (including the pipeline ID), and make this new error reporter communicate with the script thread by sending messages over a Sender&amp;lt;ConstellationControlMsg&amp;gt; value that can be obtained from the code in layout_task.rs.&lt;br /&gt;
* Process the new message type in components/script/script_task.rs by -&lt;br /&gt;
  * caching each reported parse error in a vector in Document (components/script/dom/document.rs)&lt;br /&gt;
  * checking the devtools_wants_updates flag and sending it to the devtools server if it exists (see notify_devtools for a model in script_task.rs)&lt;br /&gt;
* Retrieve any cached parse errors for a document on request in handle_get_cached_messages in components/scripts/devtools.rs&lt;br /&gt;
&lt;br /&gt;
===Appurtenant tasks -===&lt;br /&gt;
&lt;br /&gt;
* Since we are working on the main servo build the changes we make to the build usually have a cascading affect in dependent libraries and files. We are also doing the tasks of resolving the issues caused by the dependency. So, the scope of the requirements are larger than those specified above.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Mozilla Mozilla]&lt;br /&gt;
* [https://github.com/rust-lang/rust Rust]&lt;br /&gt;
* [https://github.com/servo/servo Servo]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Gnaik2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015_M1501_Report_CSS_errors_to_the_devtools,_both_stored_and_live&amp;diff=99110</id>
		<title>CSC/ECE 517 Fall 2015 M1501 Report CSS errors to the devtools, both stored and live</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015_M1501_Report_CSS_errors_to_the_devtools,_both_stored_and_live&amp;diff=99110"/>
		<updated>2015-11-09T20:41:24Z</updated>

		<summary type="html">&lt;p&gt;Gnaik2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&lt;br /&gt;
===Rust===&lt;br /&gt;
&lt;br /&gt;
[https://en.wikipedia.org/wiki/Rust_(programming_language) Rust] is a programming language developed by [http://en.wikipedia.org/wiki/Mozilla Mozilla]. It is used to design concurrent and safe systems. It is a systems programming language focused on three goals: safety, speed, and concurrency. It maintains these goals without having a garbage collector, making it a useful language for a number of use cases other languages aren’t good at: embedding in other languages, programs with specific space and time requirements, and writing low-level code, like device drivers and operating systems. &amp;lt;ref&amp;gt;http://doc.rust-lang.org/nightly/book&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Servo===&lt;br /&gt;
&lt;br /&gt;
[https://en.wikipedia.org/wiki/Servo_(layout_engine) Servo] is an experimental web browser layout engine. It is developed by Mozilla and written in Rust. It provides an [https://en.wikipedia.org/wiki/Application_programming_interface API] for hosting the engine within other software. The Servo browser currently provides developer tools to inspect [https://en.wikipedia.org/wiki/Document_Object_Model DOM], execute [https://en.wikipedia.org/wiki/JavaScript JavaScript] remotely.&lt;br /&gt;
&lt;br /&gt;
=Project Description&amp;lt;ref&amp;gt;https://github.com/servo/servo/wiki/CSS-parse-error-reporting&amp;lt;/ref&amp;gt;=&lt;br /&gt;
We will be adding the capability of exposing CSS errors to Servo. We will be using Firefox remote developer tools to inspect and debug the code in Servo.Firefox supports remote developer tools - ie. communicating with an arbitrary server that implements a protocol for exposing information about web content. Servo implements a very basic developer tools server that currently supports executing JS remotely and investigating the DOM tree in the document inspector. The scope of the project is to expand those capabilities by exposing CSS parsing errors.&lt;br /&gt;
==Program Flow==&lt;br /&gt;
*Ensure that Servo can compile and run the given tests. &lt;br /&gt;
*Choose a website that is compatible with Servo and attach the remote developer tools to it. &lt;br /&gt;
'''Initial steps'''&lt;br /&gt;
*Build Servo&lt;br /&gt;
*Attach remote developer tools&lt;br /&gt;
*Making initial changes and build Servo&lt;br /&gt;
*Generate CSS error messages&lt;br /&gt;
*Process error messages and retrieve cached messages&lt;br /&gt;
*Integrate and build again&lt;br /&gt;
'''Subsequent steps'''&lt;br /&gt;
*Generate messages which communicate the errors to the script thread. &lt;br /&gt;
*Process the messages and provide support for caching them and sending them to the devtools server if it exists. &lt;br /&gt;
*Provide the functionality to retrieve the cached CSS error messages whenever requested.&lt;br /&gt;
&lt;br /&gt;
=Environment Setup&amp;lt;ref&amp;gt;https://github.com/servo/servo&amp;lt;/ref&amp;gt;=&lt;br /&gt;
==Pre-requisites==&lt;br /&gt;
On Debian-based Linuxes:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install curl freeglut3-dev\&lt;br /&gt;
    libfreetype6-dev libgl1-mesa-dri libglib2.0-dev xorg-dev \&lt;br /&gt;
    gperf g++ cmake python-virtualenv python-pip \&lt;br /&gt;
    libssl-dev libbz2-dev libosmesa6-dev libxmu6 libxmu-dev libglu1-mesa-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Fedora:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dnf install curl freeglut-devel libtool gcc-c++ libXi-devel \&lt;br /&gt;
    freetype-devel mesa-libGL-devel glib2-devel libX11-devel libXrandr-devel gperf \&lt;br /&gt;
    fontconfig-devel cabextract ttmkfdir python python-virtualenv python-pip expat-devel \&lt;br /&gt;
    rpm-build openssl-devel cmake bzip2-devel libXcursor-devel libXmu-devel mesa-libOSMesa&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Cloning servo==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/servo/servo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Building Servo==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd servo&lt;br /&gt;
./mach build --dev&lt;br /&gt;
./mach run tests/html/about-mozilla.html&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Requirement Analysis==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Gnaik2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015_M1501_Report_CSS_errors_to_the_devtools,_both_stored_and_live&amp;diff=99109</id>
		<title>CSC/ECE 517 Fall 2015 M1501 Report CSS errors to the devtools, both stored and live</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015_M1501_Report_CSS_errors_to_the_devtools,_both_stored_and_live&amp;diff=99109"/>
		<updated>2015-11-09T20:39:23Z</updated>

		<summary type="html">&lt;p&gt;Gnaik2: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&lt;br /&gt;
===Rust===&lt;br /&gt;
&lt;br /&gt;
[https://en.wikipedia.org/wiki/Rust_(programming_language) Rust] is a programming language developed by [http://en.wikipedia.org/wiki/Mozilla Mozilla]. It is used to design concurrent and safe systems. It is a systems programming language focused on three goals: safety, speed, and concurrency. It maintains these goals without having a garbage collector, making it a useful language for a number of use cases other languages aren’t good at: embedding in other languages, programs with specific space and time requirements, and writing low-level code, like device drivers and operating systems. &amp;lt;ref&amp;gt;http://doc.rust-lang.org/nightly/book&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Servo===&lt;br /&gt;
&lt;br /&gt;
[https://en.wikipedia.org/wiki/Servo_(layout_engine) Servo] is an experimental web browser layout engine. It is developed by Mozilla and written in Rust. It provides an [https://en.wikipedia.org/wiki/Application_programming_interface API] for hosting the engine within other software. The Servo browser currently provides developer tools to inspect [https://en.wikipedia.org/wiki/Document_Object_Model DOM], execute [https://en.wikipedia.org/wiki/JavaScript JavaScript] remotely.&lt;br /&gt;
&lt;br /&gt;
==Cloning servo==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/servo/servo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Building Servo==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd servo&lt;br /&gt;
./mach build --dev&lt;br /&gt;
./mach run tests/html/about-mozilla.html&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Project Description&amp;lt;ref&amp;gt;https://github.com/servo/servo/wiki/CSS-parse-error-reporting&amp;lt;/ref&amp;gt;=&lt;br /&gt;
We will be adding the capability of exposing CSS errors to Servo. We will be using Firefox remote developer tools to inspect and debug the code in Servo.&lt;br /&gt;
==Program Flow==&lt;br /&gt;
*Ensure that Servo can compile and run the given tests. &lt;br /&gt;
*Choose a website that is compatible with Servo and attach the remote developer tools to it. &lt;br /&gt;
'''Initial steps'''&lt;br /&gt;
*Build Servo&lt;br /&gt;
*Attach remote developer tools&lt;br /&gt;
*Making initial changes and build Servo&lt;br /&gt;
*Generate CSS error messages&lt;br /&gt;
*Process error messages and retrieve cached messages&lt;br /&gt;
*Integrate and build again&lt;br /&gt;
'''Subsequent steps'''&lt;br /&gt;
*Generate messages which communicate the errors to the script thread. &lt;br /&gt;
*Process the messages and provide support for caching them and sending them to the devtools server if it exists. &lt;br /&gt;
*Provide the functionality to retrieve the cached CSS error messages whenever requested.&lt;br /&gt;
&lt;br /&gt;
=Project Description=&lt;br /&gt;
Firefox supports remote developer tools - ie. communicating with an arbitrary server that implements a protocol for exposing information about web content. Servo implements a very basic developer tools server that currently supports executing JS remotely and investigating the DOM tree in the document inspector. The scope of the project is to expand those capabilities by exposing CSS parsing errors.&lt;br /&gt;
&lt;br /&gt;
=Environment Setup&amp;lt;ref&amp;gt;https://github.com/servo/servo&amp;lt;/ref&amp;gt;=&lt;br /&gt;
==Pre-requisites==&lt;br /&gt;
On Debian-based Linuxes:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install curl freeglut3-dev\&lt;br /&gt;
    libfreetype6-dev libgl1-mesa-dri libglib2.0-dev xorg-dev \&lt;br /&gt;
    gperf g++ cmake python-virtualenv python-pip \&lt;br /&gt;
    libssl-dev libbz2-dev libosmesa6-dev libxmu6 libxmu-dev libglu1-mesa-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Fedora:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dnf install curl freeglut-devel libtool gcc-c++ libXi-devel \&lt;br /&gt;
    freetype-devel mesa-libGL-devel glib2-devel libX11-devel libXrandr-devel gperf \&lt;br /&gt;
    fontconfig-devel cabextract ttmkfdir python python-virtualenv python-pip expat-devel \&lt;br /&gt;
    rpm-build openssl-devel cmake bzip2-devel libXcursor-devel libXmu-devel mesa-libOSMesa&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Cloning servo==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/servo/servo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Building Servo==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd servo&lt;br /&gt;
./mach build --dev&lt;br /&gt;
./mach run tests/html/about-mozilla.html&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Requirement Analysis==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Gnaik2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015_M1501_Report_CSS_errors_to_the_devtools,_both_stored_and_live&amp;diff=99091</id>
		<title>CSC/ECE 517 Fall 2015 M1501 Report CSS errors to the devtools, both stored and live</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015_M1501_Report_CSS_errors_to_the_devtools,_both_stored_and_live&amp;diff=99091"/>
		<updated>2015-11-09T20:08:20Z</updated>

		<summary type="html">&lt;p&gt;Gnaik2: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&lt;br /&gt;
===Rust===&lt;br /&gt;
&lt;br /&gt;
[https://en.wikipedia.org/wiki/Rust_(programming_language) Rust] is a programming language developed by [http://en.wikipedia.org/wiki/Mozilla Mozilla]. It is used to design concurrent and safe systems. It is a systems programming language focused on three goals: safety, speed, and concurrency. It maintains these goals without having a garbage collector, making it a useful language for a number of use cases other languages aren’t good at: embedding in other languages, programs with specific space and time requirements, and writing low-level code, like device drivers and operating systems. &amp;lt;ref&amp;gt;http://doc.rust-lang.org/nightly/book&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Servo===&lt;br /&gt;
&lt;br /&gt;
[https://en.wikipedia.org/wiki/Servo_(layout_engine) Servo] is an experimental web browser layout engine. It is developed by Mozilla and written in Rust. It provides an [https://en.wikipedia.org/wiki/Application_programming_interface API] for hosting the engine within other software. The Servo browser currently provides developer tools to inspect [https://en.wikipedia.org/wiki/Document_Object_Model DOM], execute [https://en.wikipedia.org/wiki/JavaScript JavaScript] remotely.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Gnaik2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015_M1501_Report_CSS_errors_to_the_devtools,_both_stored_and_live&amp;diff=99090</id>
		<title>CSC/ECE 517 Fall 2015 M1501 Report CSS errors to the devtools, both stored and live</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015_M1501_Report_CSS_errors_to_the_devtools,_both_stored_and_live&amp;diff=99090"/>
		<updated>2015-11-09T20:07:49Z</updated>

		<summary type="html">&lt;p&gt;Gnaik2: Created page with &amp;quot;==Introduction==  ===Rust===  [https://en.wikipedia.org/wiki/Rust_(programming_language) Rust] is a programming language developed by [http://en.wikipedia.org/wiki/Mozilla Mozill...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&lt;br /&gt;
===Rust===&lt;br /&gt;
&lt;br /&gt;
[https://en.wikipedia.org/wiki/Rust_(programming_language) Rust] is a programming language developed by [http://en.wikipedia.org/wiki/Mozilla Mozilla]. It is used to design concurrent and safe systems. It is a systems programming language focused on three goals: safety, speed, and concurrency. It maintains these goals without having a garbage collector, making it a useful language for a number of use cases other languages aren’t good at: embedding in other languages, programs with specific space and time requirements, and writing low-level code, like device drivers and operating systems. &amp;lt;ref&amp;gt;http://doc.rust-lang.org/nightly/book&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Servo===&lt;br /&gt;
&lt;br /&gt;
[https://en.wikipedia.org/wiki/Servo_(layout_engine) Servo] is an experimental web browser layout engine. It is developed by Mozilla and written in Rust. It provides an [https://en.wikipedia.org/wiki/Application_programming_interface API] for hosting the engine within other software. The Servo browser currently provides developer tools to inspect [https://en.wikipedia.org/wiki/Document_Object_Model DOM], execute [https://en.wikipedia.org/wiki/JavaScript JavaScript] remotely.&lt;/div&gt;</summary>
		<author><name>Gnaik2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015&amp;diff=99089</id>
		<title>CSC/ECE 517 Fall 2015</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015&amp;diff=99089"/>
		<updated>2015-11-09T20:07:03Z</updated>

		<summary type="html">&lt;p&gt;Gnaik2: /* Final Project Design Document */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Writing Assignment 2==&lt;br /&gt;
*[[CSC/ECE_517_Fall_2015/sample_page]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2015/ossE1558BGJ]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2015/oss/M1502/AAAASS]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2015/oss/M1503/IntegrateXMLParser]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2015/ossE1568BZHXJS]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2015/ossE1572VGA]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2015/oss_E1573_sap]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2015/oss E1559 rrz]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2015/oss E1570 avr]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2015/oss E1556 CHM]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2015/oss M1504 JJD]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2015/oss E1562 APS]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2015/oss M1501 GSN]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2015/oss M1501 GSN]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2015/oss E1550 KMM]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2015/oss E1551 RGS]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2015/oss E1555 GMR]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2015/oss E1552 NFR]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2015/oss E1565 AAJ]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2015/oss E1561 WZL]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2015/oss E1553 AAJ]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2015/oss E1554 AAR]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2015/oss E1569 JNR]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2015/oss E1560 PSV]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2015/oss M1505 MSV]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2015/oss E1557 GXM]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2015/oss E1566 ARB]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2015/oss E1567 APT]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2015/oss E1574 BKS]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2015/ossA1550RAN]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2015/oss E1571]]&lt;br /&gt;
&lt;br /&gt;
==Final Project Design Document==&lt;br /&gt;
*[[CSC/ECE 517 Fall 2015 E1577 MayYellowRoverJump]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2015 E1586 AnonymousChatBetweenAuthorAndReviewer]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2015 E1582 Create integration tests for the instructor interface using capybara and rspec]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2015 E1576 Refactoring submitted content (hyperlinks and files)]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2015 E1590 Integration testing for Team creation]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2015 E1585 Use Ajax for Add Participants, Add TA ,Edit Questionnaires Screens]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2015 E1581 Integration testing for student interface]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2015 E1583 Fix the CSS used for Menu Item]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2015 E1591 Integration testing for peer review]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2015 E1589 Automating production setup and deployment]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2015 M1504 Implement support for missing XMLHttpRequest APIs]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2015 M1505 Add conformance tests to unicode-bidi and fix conformance bugs]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2015 M1501 Report CSS errors to the devtools, both stored and live]]&lt;/div&gt;</summary>
		<author><name>Gnaik2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015&amp;diff=99088</id>
		<title>CSC/ECE 517 Fall 2015</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015&amp;diff=99088"/>
		<updated>2015-11-09T20:06:51Z</updated>

		<summary type="html">&lt;p&gt;Gnaik2: /* Final Project Design Document */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Writing Assignment 2==&lt;br /&gt;
*[[CSC/ECE_517_Fall_2015/sample_page]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2015/ossE1558BGJ]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2015/oss/M1502/AAAASS]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2015/oss/M1503/IntegrateXMLParser]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2015/ossE1568BZHXJS]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2015/ossE1572VGA]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2015/oss_E1573_sap]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2015/oss E1559 rrz]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2015/oss E1570 avr]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2015/oss E1556 CHM]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2015/oss M1504 JJD]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2015/oss E1562 APS]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2015/oss M1501 GSN]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2015/oss M1501 GSN]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2015/oss E1550 KMM]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2015/oss E1551 RGS]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2015/oss E1555 GMR]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2015/oss E1552 NFR]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2015/oss E1565 AAJ]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2015/oss E1561 WZL]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2015/oss E1553 AAJ]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2015/oss E1554 AAR]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2015/oss E1569 JNR]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2015/oss E1560 PSV]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2015/oss M1505 MSV]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2015/oss E1557 GXM]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2015/oss E1566 ARB]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2015/oss E1567 APT]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2015/oss E1574 BKS]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2015/ossA1550RAN]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2015/oss E1571]]&lt;br /&gt;
&lt;br /&gt;
==Final Project Design Document==&lt;br /&gt;
*[[CSC/ECE 517 Fall 2015 E1577 MayYellowRoverJump]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2015 E1586 AnonymousChatBetweenAuthorAndReviewer]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2015 E1582 Create integration tests for the instructor interface using capybara and rspec]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2015 E1576 Refactoring submitted content (hyperlinks and files)]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2015 E1590 Integration testing for Team creation]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2015 E1585 Use Ajax for Add Participants, Add TA ,Edit Questionnaires Screens]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2015 E1581 Integration testing for student interface]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2015 E1583 Fix the CSS used for Menu Item]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2015 E1591 Integration testing for peer review]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2015 E1589 Automating production setup and deployment]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2015 M1504 Implement support for missing XMLHttpRequest APIs]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2015 M1505 Add conformance tests to unicode-bidi and fix conformance bugs]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2015 M1501 Report CSS errors to the devtools, both stored and live&lt;/div&gt;</summary>
		<author><name>Gnaik2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015/oss_M1501_GSN&amp;diff=98935</id>
		<title>CSC/ECE 517 Fall 2015/oss M1501 GSN</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015/oss_M1501_GSN&amp;diff=98935"/>
		<updated>2015-11-07T20:28:50Z</updated>

		<summary type="html">&lt;p&gt;Gnaik2: /* Challenges */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''To Report CSS errors to the devtools, both stored and live.'''&lt;br /&gt;
[https://en.wikipedia.org/wiki/Cascading_Style_Sheets CSS] errors are reported to the [https://www.mozilla.org/en-US/firefox/new/ Firefox] developer tools in this project.&lt;br /&gt;
&lt;br /&gt;
=Challenges=&lt;br /&gt;
&lt;br /&gt;
*This project builds successfully. Despite the hardships faced, it is almost complete and may require a few changes and a final approval from the Servo team..&lt;br /&gt;
&lt;br /&gt;
*We have spoken to Professor. Dr. Gehringer and he has granted us the permission to continue working on the project as it has been delayed due to certain circumstances which were beyond our control. However, he has asked us to share the following information with the reviewers:&lt;br /&gt;
&lt;br /&gt;
*The following is the excerpt from the conversation with Josh where he has stated that the task assigned to us was more complicated than it should have been. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;That being said, this has turned into a task that is much more complex than I originally intended.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*This is a complex Mozilla project. The steps are not easy to implement. When we implemented the first step in the list of steps, we faced around 450 errors in the other files. &lt;br /&gt;
&lt;br /&gt;
*Since the project is applicable directly to servo and not to any side dependency, any change we make causes a cascading chain of errors in different files. &lt;br /&gt;
&lt;br /&gt;
*Servo is a very large codebase and there is no documentation available to understand what each file or each piece of code is doing in Servo codebase. &lt;br /&gt;
&lt;br /&gt;
*We have also been constantly in touch and clarifying out doubts from the project manager Josh Matthews. &lt;br /&gt;
&lt;br /&gt;
*We have put in many hours and lot of efforts in this project to understand Servo, Rust and also to troubleshoot the errors. &lt;br /&gt;
&lt;br /&gt;
*Installing Rust on Windows systems was also a great challenge we faced and we spent a lot of hours on that as well in the initial phase.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*The following are the links to the gists that we have created for the errors that we have faced. Please note that we had not created gists in the initial phase when we faced almost close to 450 errors on building Servo with our changes.&lt;br /&gt;
&lt;br /&gt;
https://gist.github.com/GauriGNaik/d3d035114b0b855e574d&lt;br /&gt;
&lt;br /&gt;
https://gist.github.com/GauriGNaik/9b750c06b09600c2e223&lt;br /&gt;
&lt;br /&gt;
https://gist.github.com/anonymous/b0fed0d6d8c9122744d8&lt;br /&gt;
&lt;br /&gt;
https://gist.github.com/GauriGNaik/ac38d54b6359036770ed&lt;br /&gt;
&lt;br /&gt;
https://gist.github.com/GauriGNaik/d79b833fc3bf01f3479f&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*The following are the links to the email conversations we have had with Josh. &lt;br /&gt;
&lt;br /&gt;
https://docs.google.com/a/ncsu.edu/document/d/1DYzMR1-y141uvKjrjYWRCfsXcDcJGftF_mlyGWMFv_A/edit?usp=sharing&lt;br /&gt;
&lt;br /&gt;
https://docs.google.com/a/ncsu.edu/document/d/1UMSZJHLv86-lmvlpYpyL6bALHWagg92z_iZeNnGC67M/edit?usp=sharing&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*The following are the links to the conversations with the dev servo mailing group&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/ivcoi2LnzIk&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/IckEvM6ACpE&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/qMGR1AZKJ1g&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/13foshI3GUI&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/eyloqocWcFU&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/eyloqocWcFU&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Since the initial steps are not yet complete so there was no point in creating the voiceover for the video. We have shown some of the changes that we have made so far in the video.  &lt;br /&gt;
&lt;br /&gt;
A few more important notes to help the reviewer:&lt;br /&gt;
&lt;br /&gt;
*Tests are not applicable to this project. &lt;br /&gt;
*Ruby style guide is not applicable to this project. &lt;br /&gt;
*Edge cases are not applicable to this project. &lt;br /&gt;
*There is no UI testing applicable to this project. &lt;br /&gt;
*The work that we have done is exactly as per the initial steps provided by the Mozilla team.&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
Servo&amp;lt;ref&amp;gt;https://en.wikipedia.org/wiki/Servo_(layout_engine)&amp;lt;/ref&amp;gt; is an experimental web browser layout engine. It is developed by Mozilla and written in Rust.It provides an [https://en.wikipedia.org/wiki/Application_programming_interface API] for hosting the engine within other software. The Servo browser currently provides developer tools to inspect [https://en.wikipedia.org/wiki/Document_Object_Model DOM], execute [https://en.wikipedia.org/wiki/JavaScript JavaScript] remotely.&lt;br /&gt;
&lt;br /&gt;
=Rust=&lt;br /&gt;
Rust&amp;lt;ref&amp;gt;https://en.wikipedia.org/wiki/Rust_(programming_language)&amp;lt;/ref&amp;gt; is a programming language developed by Mozilla. It is used to design concurrent and safe systems.&lt;br /&gt;
&lt;br /&gt;
=Environment Setup&amp;lt;ref&amp;gt;https://github.com/servo/servo&amp;lt;/ref&amp;gt;=&lt;br /&gt;
==Pre-requisites==&lt;br /&gt;
On Debian-based Linuxes:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install curl freeglut3-dev\&lt;br /&gt;
    libfreetype6-dev libgl1-mesa-dri libglib2.0-dev xorg-dev \&lt;br /&gt;
    gperf g++ cmake python-virtualenv python-pip \&lt;br /&gt;
    libssl-dev libbz2-dev libosmesa6-dev libxmu6 libxmu-dev libglu1-mesa-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Fedora:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dnf install curl freeglut-devel libtool gcc-c++ libXi-devel \&lt;br /&gt;
    freetype-devel mesa-libGL-devel glib2-devel libX11-devel libXrandr-devel gperf \&lt;br /&gt;
    fontconfig-devel cabextract ttmkfdir python python-virtualenv python-pip expat-devel \&lt;br /&gt;
    rpm-build openssl-devel cmake bzip2-devel libXcursor-devel libXmu-devel mesa-libOSMesa&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Cloning servo==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/servo/servo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Building Servo==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd servo&lt;br /&gt;
./mach build --dev&lt;br /&gt;
./mach run tests/html/about-mozilla.html&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Project Description&amp;lt;ref&amp;gt;https://github.com/servo/servo/wiki/CSS-parse-error-reporting&amp;lt;/ref&amp;gt;=&lt;br /&gt;
We will be adding the capability of exposing CSS errors to Servo. We will be using Firefox remote developer tools to inspect and debug the code in Servo.&lt;br /&gt;
==Program Flow==&lt;br /&gt;
*Ensure that Servo can compile and run the given tests. &lt;br /&gt;
*Choose a website that is compatible with Servo and attach the remote developer tools to it. &lt;br /&gt;
'''Initial steps'''&lt;br /&gt;
*Build Servo&lt;br /&gt;
*Attach remote developer tools&lt;br /&gt;
*Making initial changes and build Servo&lt;br /&gt;
*Generate CSS error messages&lt;br /&gt;
*Process error messages and retrieve cached messages&lt;br /&gt;
*Integrate and build again&lt;br /&gt;
'''Subsequent steps'''&lt;br /&gt;
*Generate messages which communicate the errors to the script thread. &lt;br /&gt;
*Process the messages and provide support for caching them and sending them to the devtools server if it exists. &lt;br /&gt;
*Provide the functionality to retrieve the cached CSS error messages whenever requested.&lt;br /&gt;
&lt;br /&gt;
=Design Pattern Used=&lt;br /&gt;
Model view controller design pattern and Interpreter design pattern is used in this project.&lt;br /&gt;
&lt;br /&gt;
[[File:dp1.jpg]]&lt;br /&gt;
&lt;br /&gt;
=Screencast Link=&lt;br /&gt;
 https://drive.google.com/a/ncsu.edu/folderview?id=0B_iMDo_Ls2ChMXI2X0MyQlZFQk0&amp;amp;usp=sharing &lt;br /&gt;
&lt;br /&gt;
=Pull request Link=&lt;br /&gt;
 https://github.com/servo/servo/pull/8210 &lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Gnaik2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015/oss_M1501_GSN&amp;diff=98701</id>
		<title>CSC/ECE 517 Fall 2015/oss M1501 GSN</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015/oss_M1501_GSN&amp;diff=98701"/>
		<updated>2015-11-07T03:17:49Z</updated>

		<summary type="html">&lt;p&gt;Gnaik2: /* Challenges */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''To Report CSS errors to the devtools, both stored and live.'''&lt;br /&gt;
[https://en.wikipedia.org/wiki/Cascading_Style_Sheets CSS] errors are reported to the [https://www.mozilla.org/en-US/firefox/new/ Firefox] developer tools in this project.&lt;br /&gt;
&lt;br /&gt;
=Challenges=&lt;br /&gt;
&lt;br /&gt;
*This project is still under progress. Hence, it won't build. Despite the hardships faced is nearing completion.&lt;br /&gt;
&lt;br /&gt;
*We have spoken to Professor. Dr. Gehringer and he has granted us the permission to continue working on the project as it has been delayed due to certain circumstances which were beyond our control. However, he has asked us to share the following information with the reviewers:&lt;br /&gt;
&lt;br /&gt;
*The following is the excerpt from the conversation with Josh where he has stated that the task assigned to us was more complicated than it should have been. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;That being said, this has turned into a task that is much more complex than I originally intended.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*This is a complex Mozilla project. The steps are not easy to implement. When we implemented the first step in the list of steps, we faced around 450 errors in the other files. &lt;br /&gt;
&lt;br /&gt;
*Since the project is applicable directly to servo and not to any side dependency, any change we make causes a cascading chain of errors in different files. &lt;br /&gt;
&lt;br /&gt;
*Servo is a very large codebase and there is no documentation available to understand what each file or each piece of code is doing in Servo codebase. &lt;br /&gt;
&lt;br /&gt;
*We have also been constantly in touch and clarifying out doubts from the project manager Josh Matthews. &lt;br /&gt;
&lt;br /&gt;
*We have put in many hours and lot of efforts in this project to understand Servo, Rust and also to troubleshoot the errors. &lt;br /&gt;
&lt;br /&gt;
*Installing Rust on Windows systems was also a great challenge we faced and we spent a lot of hours on that as well in the initial phase.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*The following are the links to the gists that we have created for the errors that we have faced. Please note that we had not created gists in the initial phase when we faced almost close to 450 errors on building Servo with our changes.&lt;br /&gt;
&lt;br /&gt;
https://gist.github.com/GauriGNaik/d3d035114b0b855e574d&lt;br /&gt;
&lt;br /&gt;
https://gist.github.com/GauriGNaik/9b750c06b09600c2e223&lt;br /&gt;
&lt;br /&gt;
https://gist.github.com/anonymous/b0fed0d6d8c9122744d8&lt;br /&gt;
&lt;br /&gt;
https://gist.github.com/GauriGNaik/ac38d54b6359036770ed&lt;br /&gt;
&lt;br /&gt;
https://gist.github.com/GauriGNaik/d79b833fc3bf01f3479f&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*The following are the links to the email conversations we have had with Josh. &lt;br /&gt;
&lt;br /&gt;
https://docs.google.com/a/ncsu.edu/document/d/1DYzMR1-y141uvKjrjYWRCfsXcDcJGftF_mlyGWMFv_A/edit?usp=sharing&lt;br /&gt;
&lt;br /&gt;
https://docs.google.com/a/ncsu.edu/document/d/1UMSZJHLv86-lmvlpYpyL6bALHWagg92z_iZeNnGC67M/edit?usp=sharing&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*The following are the links to the conversations with the dev servo mailing group&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/ivcoi2LnzIk&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/IckEvM6ACpE&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/qMGR1AZKJ1g&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/13foshI3GUI&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/eyloqocWcFU&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/eyloqocWcFU&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Since the initial steps are not yet complete so there was no point in creating the voiceover for the video. We have shown some of the changes that we have made so far in the video.  &lt;br /&gt;
&lt;br /&gt;
A few more important notes to help the reviewer:&lt;br /&gt;
&lt;br /&gt;
*Tests are not applicable to this project. &lt;br /&gt;
*Ruby style guide is not applicable to this project. &lt;br /&gt;
*Edge cases are not applicable to this project. &lt;br /&gt;
*There is no UI testing applicable to this project. &lt;br /&gt;
*The work that we have done is exactly as per the initial steps provided by the Mozilla team.&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
Servo&amp;lt;ref&amp;gt;https://en.wikipedia.org/wiki/Servo_(layout_engine)&amp;lt;/ref&amp;gt; is an experimental web browser layout engine. It is developed by Mozilla and written in Rust.It provides an [https://en.wikipedia.org/wiki/Application_programming_interface API] for hosting the engine within other software. The Servo browser currently provides developer tools to inspect [https://en.wikipedia.org/wiki/Document_Object_Model DOM], execute [https://en.wikipedia.org/wiki/JavaScript JavaScript] remotely.&lt;br /&gt;
&lt;br /&gt;
=Rust=&lt;br /&gt;
Rust&amp;lt;ref&amp;gt;https://en.wikipedia.org/wiki/Rust_(programming_language)&amp;lt;/ref&amp;gt; is a programming language developed by Mozilla. It is used to design concurrent and safe systems.&lt;br /&gt;
&lt;br /&gt;
=Environment Setup&amp;lt;ref&amp;gt;https://github.com/servo/servo&amp;lt;/ref&amp;gt;=&lt;br /&gt;
==Pre-requisites==&lt;br /&gt;
On Debian-based Linuxes:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install curl freeglut3-dev\&lt;br /&gt;
    libfreetype6-dev libgl1-mesa-dri libglib2.0-dev xorg-dev \&lt;br /&gt;
    gperf g++ cmake python-virtualenv python-pip \&lt;br /&gt;
    libssl-dev libbz2-dev libosmesa6-dev libxmu6 libxmu-dev libglu1-mesa-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Fedora:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dnf install curl freeglut-devel libtool gcc-c++ libXi-devel \&lt;br /&gt;
    freetype-devel mesa-libGL-devel glib2-devel libX11-devel libXrandr-devel gperf \&lt;br /&gt;
    fontconfig-devel cabextract ttmkfdir python python-virtualenv python-pip expat-devel \&lt;br /&gt;
    rpm-build openssl-devel cmake bzip2-devel libXcursor-devel libXmu-devel mesa-libOSMesa&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Cloning servo==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/servo/servo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Building Servo==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd servo&lt;br /&gt;
./mach build --dev&lt;br /&gt;
./mach run tests/html/about-mozilla.html&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Project Description&amp;lt;ref&amp;gt;https://github.com/servo/servo/wiki/CSS-parse-error-reporting&amp;lt;/ref&amp;gt;=&lt;br /&gt;
We will be adding the capability of exposing CSS errors to Servo. We will be using Firefox remote developer tools to inspect and debug the code in Servo.&lt;br /&gt;
==Program Flow==&lt;br /&gt;
*Ensure that Servo can compile and run the given tests. &lt;br /&gt;
*Choose a website that is compatible with Servo and attach the remote developer tools to it. &lt;br /&gt;
'''Initial steps'''&lt;br /&gt;
*Build Servo&lt;br /&gt;
*Attach remote developer tools&lt;br /&gt;
*Making initial changes and build Servo&lt;br /&gt;
*Generate CSS error messages&lt;br /&gt;
*Process error messages and retrieve cached messages&lt;br /&gt;
*Integrate and build again&lt;br /&gt;
'''Subsequent steps'''&lt;br /&gt;
*Generate messages which communicate the errors to the script thread. &lt;br /&gt;
*Process the messages and provide support for caching them and sending them to the devtools server if it exists. &lt;br /&gt;
*Provide the functionality to retrieve the cached CSS error messages whenever requested.&lt;br /&gt;
&lt;br /&gt;
=Design Pattern Used=&lt;br /&gt;
Model view controller design pattern and Interpreter design pattern is used in this project.&lt;br /&gt;
&lt;br /&gt;
[[File:dp1.jpg]]&lt;br /&gt;
&lt;br /&gt;
=Screencast Link=&lt;br /&gt;
 https://drive.google.com/a/ncsu.edu/folderview?id=0B_iMDo_Ls2ChMXI2X0MyQlZFQk0&amp;amp;usp=sharing &lt;br /&gt;
&lt;br /&gt;
=Pull request Link=&lt;br /&gt;
 https://github.com/servo/servo/pull/8210 &lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Gnaik2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015/oss_M1501_GSN&amp;diff=98652</id>
		<title>CSC/ECE 517 Fall 2015/oss M1501 GSN</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015/oss_M1501_GSN&amp;diff=98652"/>
		<updated>2015-11-07T01:59:33Z</updated>

		<summary type="html">&lt;p&gt;Gnaik2: /* Challenges */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''To Report CSS errors to the devtools, both stored and live.'''&lt;br /&gt;
[https://en.wikipedia.org/wiki/Cascading_Style_Sheets CSS] errors are reported to the [https://www.mozilla.org/en-US/firefox/new/ Firefox] developer tools in this project.&lt;br /&gt;
&lt;br /&gt;
=Challenges=&lt;br /&gt;
&lt;br /&gt;
*This project is still under progress. Hence, it won't build. Despite the hardships faced is nearing completion.&lt;br /&gt;
&lt;br /&gt;
*We have spoken to Professor. Dr. Gehringer and he has granted us the permission to continue working on the project as it has been delayed due to certain circumstances which were beyond our control. However, he has asked us to share the following information with the reviewers:&lt;br /&gt;
&lt;br /&gt;
*The following is the excerpt from the conversation with Josh where he has stated that the task assigned to us was more complicated than it should have been. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;That being said, this has turned into a task that is much more complex than I originally intended.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*This is a complex Mozilla project. The steps are not easy to implement. When we implemented the first step in the list of steps, we faced around 450 errors in the other files. &lt;br /&gt;
&lt;br /&gt;
*Since the project is applicable directly to servo and not to any side dependency such as unicode bidi or xml parser, any change we make causes a cascading chain of errors in different files. &lt;br /&gt;
&lt;br /&gt;
*Servo is a very large codebase and there is no documentation available to understand what each file or each piece of code is doing in Servo codebase. &lt;br /&gt;
&lt;br /&gt;
*We have also been constantly in touch and clarifying out doubts from the project manager Josh Matthews. &lt;br /&gt;
&lt;br /&gt;
*We have put in many hours and lot of efforts in this project to understand Servo, Rust and also to troubleshoot the errors. &lt;br /&gt;
&lt;br /&gt;
*Installing Rust on Windows systems was also a great challenge we faced and we spent a lot of hours on that as well in the initial phase.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*The following are the links to the gists that we have created for the errors that we have faced. Please note that we had not created gists in the initial phase when we faced almost close to 450 errors on building Servo with our changes.&lt;br /&gt;
&lt;br /&gt;
https://gist.github.com/GauriGNaik/d3d035114b0b855e574d&lt;br /&gt;
&lt;br /&gt;
https://gist.github.com/GauriGNaik/9b750c06b09600c2e223&lt;br /&gt;
&lt;br /&gt;
https://gist.github.com/anonymous/b0fed0d6d8c9122744d8&lt;br /&gt;
&lt;br /&gt;
https://gist.github.com/GauriGNaik/ac38d54b6359036770ed&lt;br /&gt;
&lt;br /&gt;
https://gist.github.com/GauriGNaik/d79b833fc3bf01f3479f&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*The following are the links to the email conversations we have had with Josh. &lt;br /&gt;
&lt;br /&gt;
https://docs.google.com/a/ncsu.edu/document/d/1DYzMR1-y141uvKjrjYWRCfsXcDcJGftF_mlyGWMFv_A/edit?usp=sharing&lt;br /&gt;
&lt;br /&gt;
https://docs.google.com/a/ncsu.edu/document/d/1UMSZJHLv86-lmvlpYpyL6bALHWagg92z_iZeNnGC67M/edit?usp=sharing&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*The following are the links to the conversations with the dev servo mailing group&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/ivcoi2LnzIk&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/IckEvM6ACpE&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/qMGR1AZKJ1g&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/13foshI3GUI&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/eyloqocWcFU&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/eyloqocWcFU&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Since the initial steps are not yet complete so there was no point in creating the voiceover for the video. We have shown some of the changes that we have made so far in the video.  &lt;br /&gt;
&lt;br /&gt;
A few more important notes to help the reviewer:&lt;br /&gt;
&lt;br /&gt;
*Tests are not applicable to this project. &lt;br /&gt;
*Ruby style guide is not applicable to this project. &lt;br /&gt;
*Edge cases are not applicable to this project. &lt;br /&gt;
*There is no UI testing applicable to this project. &lt;br /&gt;
*The work that we have done is exactly as per the initial steps provided by the Mozilla team.&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
Servo&amp;lt;ref&amp;gt;https://en.wikipedia.org/wiki/Servo_(layout_engine)&amp;lt;/ref&amp;gt; is an experimental web browser layout engine. It is developed by Mozilla and written in Rust.It provides an [https://en.wikipedia.org/wiki/Application_programming_interface API] for hosting the engine within other software. The Servo browser currently provides developer tools to inspect [https://en.wikipedia.org/wiki/Document_Object_Model DOM], execute [https://en.wikipedia.org/wiki/JavaScript JavaScript] remotely.&lt;br /&gt;
&lt;br /&gt;
=Rust=&lt;br /&gt;
Rust&amp;lt;ref&amp;gt;https://en.wikipedia.org/wiki/Rust_(programming_language)&amp;lt;/ref&amp;gt; is a programming language developed by Mozilla. It is used to design concurrent and safe systems.&lt;br /&gt;
&lt;br /&gt;
=Environment Setup&amp;lt;ref&amp;gt;https://github.com/servo/servo&amp;lt;/ref&amp;gt;=&lt;br /&gt;
==Pre-requisites==&lt;br /&gt;
On Debian-based Linuxes:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install curl freeglut3-dev\&lt;br /&gt;
    libfreetype6-dev libgl1-mesa-dri libglib2.0-dev xorg-dev \&lt;br /&gt;
    gperf g++ cmake python-virtualenv python-pip \&lt;br /&gt;
    libssl-dev libbz2-dev libosmesa6-dev libxmu6 libxmu-dev libglu1-mesa-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Fedora:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dnf install curl freeglut-devel libtool gcc-c++ libXi-devel \&lt;br /&gt;
    freetype-devel mesa-libGL-devel glib2-devel libX11-devel libXrandr-devel gperf \&lt;br /&gt;
    fontconfig-devel cabextract ttmkfdir python python-virtualenv python-pip expat-devel \&lt;br /&gt;
    rpm-build openssl-devel cmake bzip2-devel libXcursor-devel libXmu-devel mesa-libOSMesa&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Cloning servo==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/servo/servo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Building Servo==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd servo&lt;br /&gt;
./mach build --dev&lt;br /&gt;
./mach run tests/html/about-mozilla.html&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Project Description&amp;lt;ref&amp;gt;https://github.com/servo/servo/wiki/CSS-parse-error-reporting&amp;lt;/ref&amp;gt;=&lt;br /&gt;
We will be adding the capability of exposing CSS errors to Servo. We will be using Firefox remote developer tools to inspect and debug the code in Servo.&lt;br /&gt;
==Program Flow==&lt;br /&gt;
*Ensure that Servo can compile and run the given tests. &lt;br /&gt;
*Choose a website that is compatible with Servo and attach the remote developer tools to it. &lt;br /&gt;
'''Initial steps'''&lt;br /&gt;
*Build Servo&lt;br /&gt;
*Attach remote developer tools&lt;br /&gt;
*Making initial changes and build Servo&lt;br /&gt;
*Generate CSS error messages&lt;br /&gt;
*Process error messages and retrieve cached messages&lt;br /&gt;
*Integrate and build again&lt;br /&gt;
'''Subsequent steps'''&lt;br /&gt;
*Generate messages which communicate the errors to the script thread. &lt;br /&gt;
*Process the messages and provide support for caching them and sending them to the devtools server if it exists. &lt;br /&gt;
*Provide the functionality to retrieve the cached CSS error messages whenever requested.&lt;br /&gt;
&lt;br /&gt;
=Design Pattern Used=&lt;br /&gt;
Model view controller design pattern and Interpreter design pattern is used in this project.&lt;br /&gt;
&lt;br /&gt;
[[File:dp1.jpg]]&lt;br /&gt;
&lt;br /&gt;
=Screencast Link=&lt;br /&gt;
 https://drive.google.com/a/ncsu.edu/folderview?id=0B_iMDo_Ls2ChMXI2X0MyQlZFQk0&amp;amp;usp=sharing &lt;br /&gt;
&lt;br /&gt;
=Pull request Link=&lt;br /&gt;
 https://github.com/servo/servo/pull/8210 &lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Gnaik2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015/oss_M1501_GSN&amp;diff=98651</id>
		<title>CSC/ECE 517 Fall 2015/oss M1501 GSN</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015/oss_M1501_GSN&amp;diff=98651"/>
		<updated>2015-11-07T01:56:08Z</updated>

		<summary type="html">&lt;p&gt;Gnaik2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''To Report CSS errors to the devtools, both stored and live.'''&lt;br /&gt;
[https://en.wikipedia.org/wiki/Cascading_Style_Sheets CSS] errors are reported to the [https://www.mozilla.org/en-US/firefox/new/ Firefox] developer tools in this project.&lt;br /&gt;
&lt;br /&gt;
=Challenges=&lt;br /&gt;
&lt;br /&gt;
*This project is still under progress. Hence, it won't build.&lt;br /&gt;
&lt;br /&gt;
*We have spoken to Professor. Dr. Gehringer and he has granted us the permission to continue working on the project as it has been delayed due to certain circumstances which were beyond our control. However, he has asked us to share the following information with the reviewers:&lt;br /&gt;
&lt;br /&gt;
*The following is the excerpt from the conversation with Josh where he has stated that the task assigned to us was more complicated than it should have been. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;That being said, this has turned into a task that is much more complex than I originally intended.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*This is a complex Mozilla project. The steps are not easy to implement. When we implemented the first step in the list of steps, we faced around 450 errors in the other files. &lt;br /&gt;
&lt;br /&gt;
*Since the project is applicable directly to servo and not to any side dependency such as unicode bidi or xml parser, any change we make causes a cascading chain of errors in different files. &lt;br /&gt;
&lt;br /&gt;
*Servo is a very large codebase and there is no documentation available to understand what each file or each piece of code is doing in Servo codebase. &lt;br /&gt;
&lt;br /&gt;
*We have also been constantly in touch and clarifying out doubts from the project manager Josh Matthews. &lt;br /&gt;
&lt;br /&gt;
*We have put in many hours and lot of efforts in this project to understand Servo, Rust and also to troubleshoot the errors. &lt;br /&gt;
&lt;br /&gt;
*Installing Rust on Windows systems was also a great challenge we faced and we spent a lot of hours on that as well in the initial phase.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*The following are the links to the gists that we have created for the errors that we have faced. Please note that we had not created gists in the initial phase when we faced almost close to 450 errors on building Servo with our changes.&lt;br /&gt;
&lt;br /&gt;
https://gist.github.com/GauriGNaik/d3d035114b0b855e574d&lt;br /&gt;
&lt;br /&gt;
https://gist.github.com/GauriGNaik/9b750c06b09600c2e223&lt;br /&gt;
&lt;br /&gt;
https://gist.github.com/anonymous/b0fed0d6d8c9122744d8&lt;br /&gt;
&lt;br /&gt;
https://gist.github.com/GauriGNaik/ac38d54b6359036770ed&lt;br /&gt;
&lt;br /&gt;
https://gist.github.com/GauriGNaik/d79b833fc3bf01f3479f&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*The following are the links to the email conversations we have had with Josh. &lt;br /&gt;
&lt;br /&gt;
https://docs.google.com/a/ncsu.edu/document/d/1DYzMR1-y141uvKjrjYWRCfsXcDcJGftF_mlyGWMFv_A/edit?usp=sharing&lt;br /&gt;
&lt;br /&gt;
https://docs.google.com/a/ncsu.edu/document/d/1UMSZJHLv86-lmvlpYpyL6bALHWagg92z_iZeNnGC67M/edit?usp=sharing&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*The following are the links to the conversations with the dev servo mailing group&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/ivcoi2LnzIk&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/IckEvM6ACpE&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/qMGR1AZKJ1g&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/13foshI3GUI&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/eyloqocWcFU&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/eyloqocWcFU&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Since the initial steps are not yet complete so there was no point in creating the voiceover for the video. We have shown some of the changes that we have made so far in the video.  &lt;br /&gt;
&lt;br /&gt;
A few more important notes to help the reviewer:&lt;br /&gt;
&lt;br /&gt;
*Tests are not applicable to this project. &lt;br /&gt;
*Ruby style guide is not applicable to this project. &lt;br /&gt;
*Edge cases are not applicable to this project. &lt;br /&gt;
*There is no UI testing applicable to this project. &lt;br /&gt;
*The work that we have done is exactly as per the initial steps provided by the Mozilla team.&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
Servo&amp;lt;ref&amp;gt;https://en.wikipedia.org/wiki/Servo_(layout_engine)&amp;lt;/ref&amp;gt; is an experimental web browser layout engine. It is developed by Mozilla and written in Rust.It provides an [https://en.wikipedia.org/wiki/Application_programming_interface API] for hosting the engine within other software. The Servo browser currently provides developer tools to inspect [https://en.wikipedia.org/wiki/Document_Object_Model DOM], execute [https://en.wikipedia.org/wiki/JavaScript JavaScript] remotely.&lt;br /&gt;
&lt;br /&gt;
=Rust=&lt;br /&gt;
Rust&amp;lt;ref&amp;gt;https://en.wikipedia.org/wiki/Rust_(programming_language)&amp;lt;/ref&amp;gt; is a programming language developed by Mozilla. It is used to design concurrent and safe systems.&lt;br /&gt;
&lt;br /&gt;
=Environment Setup&amp;lt;ref&amp;gt;https://github.com/servo/servo&amp;lt;/ref&amp;gt;=&lt;br /&gt;
==Pre-requisites==&lt;br /&gt;
On Debian-based Linuxes:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install curl freeglut3-dev\&lt;br /&gt;
    libfreetype6-dev libgl1-mesa-dri libglib2.0-dev xorg-dev \&lt;br /&gt;
    gperf g++ cmake python-virtualenv python-pip \&lt;br /&gt;
    libssl-dev libbz2-dev libosmesa6-dev libxmu6 libxmu-dev libglu1-mesa-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Fedora:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dnf install curl freeglut-devel libtool gcc-c++ libXi-devel \&lt;br /&gt;
    freetype-devel mesa-libGL-devel glib2-devel libX11-devel libXrandr-devel gperf \&lt;br /&gt;
    fontconfig-devel cabextract ttmkfdir python python-virtualenv python-pip expat-devel \&lt;br /&gt;
    rpm-build openssl-devel cmake bzip2-devel libXcursor-devel libXmu-devel mesa-libOSMesa&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Cloning servo==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/servo/servo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Building Servo==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd servo&lt;br /&gt;
./mach build --dev&lt;br /&gt;
./mach run tests/html/about-mozilla.html&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Project Description&amp;lt;ref&amp;gt;https://github.com/servo/servo/wiki/CSS-parse-error-reporting&amp;lt;/ref&amp;gt;=&lt;br /&gt;
We will be adding the capability of exposing CSS errors to Servo. We will be using Firefox remote developer tools to inspect and debug the code in Servo.&lt;br /&gt;
==Program Flow==&lt;br /&gt;
*Ensure that Servo can compile and run the given tests. &lt;br /&gt;
*Choose a website that is compatible with Servo and attach the remote developer tools to it. &lt;br /&gt;
'''Initial steps'''&lt;br /&gt;
*Build Servo&lt;br /&gt;
*Attach remote developer tools&lt;br /&gt;
*Making initial changes and build Servo&lt;br /&gt;
*Generate CSS error messages&lt;br /&gt;
*Process error messages and retrieve cached messages&lt;br /&gt;
*Integrate and build again&lt;br /&gt;
'''Subsequent steps'''&lt;br /&gt;
*Generate messages which communicate the errors to the script thread. &lt;br /&gt;
*Process the messages and provide support for caching them and sending them to the devtools server if it exists. &lt;br /&gt;
*Provide the functionality to retrieve the cached CSS error messages whenever requested.&lt;br /&gt;
&lt;br /&gt;
=Design Pattern Used=&lt;br /&gt;
Model view controller design pattern and Interpreter design pattern is used in this project.&lt;br /&gt;
&lt;br /&gt;
[[File:dp1.jpg]]&lt;br /&gt;
&lt;br /&gt;
=Screencast Link=&lt;br /&gt;
 https://drive.google.com/a/ncsu.edu/folderview?id=0B_iMDo_Ls2ChMXI2X0MyQlZFQk0&amp;amp;usp=sharing &lt;br /&gt;
&lt;br /&gt;
=Pull request Link=&lt;br /&gt;
 https://github.com/servo/servo/pull/8210 &lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Gnaik2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015/oss_M1501_GSN&amp;diff=98650</id>
		<title>CSC/ECE 517 Fall 2015/oss M1501 GSN</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015/oss_M1501_GSN&amp;diff=98650"/>
		<updated>2015-11-07T01:55:32Z</updated>

		<summary type="html">&lt;p&gt;Gnaik2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''To Report CSS errors to the devtools, both stored and live.'''&lt;br /&gt;
[https://en.wikipedia.org/wiki/Cascading_Style_Sheets CSS] errors are reported to the [https://www.mozilla.org/en-US/firefox/new/ Firefox] developer tools in this project.&lt;br /&gt;
&lt;br /&gt;
=Challenges=&lt;br /&gt;
&lt;br /&gt;
*This project is still under progress. Hence, it won't build.&lt;br /&gt;
&lt;br /&gt;
*We have spoken to Professor. Dr. Gehringer and he has granted us the permission to continue working on the project as it has been delayed due to certain circumstances which were beyond our control. However, he has asked us to share the following information with the reviewers:&lt;br /&gt;
&lt;br /&gt;
*The following is the excerpt from the conversation with Josh where he has stated that the task assigned to us was more complicated than it should have been. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;That being said, this has turned into a task that is much more complex than I originally intended.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*This is a complex Mozilla project. The steps are not easy to implement. When we implemented the first step in the list of steps, we faced around 450 errors in the other files. &lt;br /&gt;
&lt;br /&gt;
*Since the project is applicable directly to servo and not to any side dependency such as unicode bidi or xml parser, any change we make causes a cascading chain of errors in different files. &lt;br /&gt;
&lt;br /&gt;
*Servo is a very large codebase and there is no documentation available to understand what each file or each piece of code is doing in Servo codebase. &lt;br /&gt;
&lt;br /&gt;
*We have also been constantly in touch and clarifying out doubts from the project manager Josh Matthews. &lt;br /&gt;
&lt;br /&gt;
*We have put in many hours and lot of efforts in this project to understand Servo, Rust and also to troubleshoot the errors. &lt;br /&gt;
&lt;br /&gt;
*Installing Rust on Windows systems was also a great challenge we faced and we spent a lot of hours on that as well in the initial phase.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*The following are the links to the gists that we have created for the errors that we have faced. Please note that we had not created gists in the initial phase when we faced almost close to 450 errors on building Servo with our changes.&lt;br /&gt;
&lt;br /&gt;
https://gist.github.com/GauriGNaik/d3d035114b0b855e574d&lt;br /&gt;
&lt;br /&gt;
https://gist.github.com/GauriGNaik/9b750c06b09600c2e223&lt;br /&gt;
&lt;br /&gt;
https://gist.github.com/anonymous/b0fed0d6d8c9122744d8&lt;br /&gt;
&lt;br /&gt;
https://gist.github.com/GauriGNaik/ac38d54b6359036770ed&lt;br /&gt;
&lt;br /&gt;
https://gist.github.com/GauriGNaik/d79b833fc3bf01f3479f&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*The following are the links to the email conversations we have had with Josh. &lt;br /&gt;
&lt;br /&gt;
https://docs.google.com/a/ncsu.edu/document/d/1DYzMR1-y141uvKjrjYWRCfsXcDcJGftF_mlyGWMFv_A/edit?usp=sharing&lt;br /&gt;
&lt;br /&gt;
https://docs.google.com/a/ncsu.edu/document/d/1UMSZJHLv86-lmvlpYpyL6bALHWagg92z_iZeNnGC67M/edit?usp=sharing&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*The following are the links to the conversations with the dev servo mailing group&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/ivcoi2LnzIk&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/IckEvM6ACpE&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/qMGR1AZKJ1g&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/13foshI3GUI&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/eyloqocWcFU&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/eyloqocWcFU&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Since the initial steps are not yet complete so there was no point in creating the voiceover for the video. We have shown some of the changes that we have made so far in the video.  &lt;br /&gt;
&lt;br /&gt;
A few more important notes to help the reviewer:&lt;br /&gt;
&lt;br /&gt;
*Tests are not applicable to this project. &lt;br /&gt;
*Ruby style guide is not applicable to this project. &lt;br /&gt;
*Edge cases are not applicable to this project. &lt;br /&gt;
*There is no UI testing applicable to this project. &lt;br /&gt;
*The work that we have done is exactly as per the initial steps provided by the Mozilla team.&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
Servo&amp;lt;ref&amp;gt;https://en.wikipedia.org/wiki/Servo_(layout_engine)&amp;lt;/ref&amp;gt; is an experimental web browser layout engine. It is developed by Mozilla and written in Rust.It provides an [https://en.wikipedia.org/wiki/Application_programming_interface API] for hosting the engine within other software. The Servo browser currently provides developer tools to inspect [https://en.wikipedia.org/wiki/Document_Object_Model DOM], execute [https://en.wikipedia.org/wiki/JavaScript JavaScript] remotely.&lt;br /&gt;
&lt;br /&gt;
=Rust=&lt;br /&gt;
Rust&amp;lt;ref&amp;gt;https://en.wikipedia.org/wiki/Rust_(programming_language)&amp;lt;/ref&amp;gt; is a programming language developed by Mozilla. It is used to design concurrent and safe systems.&lt;br /&gt;
&lt;br /&gt;
=Environment Setup&amp;lt;ref&amp;gt;https://github.com/servo/servo&amp;lt;/ref&amp;gt;=&lt;br /&gt;
==Pre-requisites==&lt;br /&gt;
On Debian-based Linuxes:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install curl freeglut3-dev\&lt;br /&gt;
    libfreetype6-dev libgl1-mesa-dri libglib2.0-dev xorg-dev \&lt;br /&gt;
    gperf g++ cmake python-virtualenv python-pip \&lt;br /&gt;
    libssl-dev libbz2-dev libosmesa6-dev libxmu6 libxmu-dev libglu1-mesa-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Fedora:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dnf install curl freeglut-devel libtool gcc-c++ libXi-devel \&lt;br /&gt;
    freetype-devel mesa-libGL-devel glib2-devel libX11-devel libXrandr-devel gperf \&lt;br /&gt;
    fontconfig-devel cabextract ttmkfdir python python-virtualenv python-pip expat-devel \&lt;br /&gt;
    rpm-build openssl-devel cmake bzip2-devel libXcursor-devel libXmu-devel mesa-libOSMesa&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Cloning servo==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/servo/servo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Building Servo==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd servo&lt;br /&gt;
./mach build --dev&lt;br /&gt;
./mach run tests/html/about-mozilla.html&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Project Description&amp;lt;ref&amp;gt;https://github.com/servo/servo/wiki/CSS-parse-error-reporting&amp;lt;/ref&amp;gt;=&lt;br /&gt;
We will be adding the capability of exposing CSS errors to Servo. We will be using Firefox remote developer tools to inspect and debug the code in Servo.&lt;br /&gt;
==Program Flow==&lt;br /&gt;
*Ensure that Servo can compile and run the given tests. &lt;br /&gt;
*Choose a website that is compatible with Servo and attach the remote developer tools to it. &lt;br /&gt;
'''Initial steps'''&lt;br /&gt;
*Build Servo&lt;br /&gt;
*Attach remote developer tools&lt;br /&gt;
*Making initial changes and build Servo&lt;br /&gt;
*Generate CSS error messages&lt;br /&gt;
*Process error messages and retrieve cached messages&lt;br /&gt;
*Integrate and build again&lt;br /&gt;
'''Subsequent steps'''&lt;br /&gt;
*Generate messages which communicate the errors to the script thread. &lt;br /&gt;
*Process the messages and provide support for caching them and sending them to the devtools server if it exists. &lt;br /&gt;
*Provide the functionality to retrieve the cached CSS error messages whenever requested.&lt;br /&gt;
&lt;br /&gt;
=Design Pattern Used=&lt;br /&gt;
Model view controller design pattern and Interpreter design pattern is used in this project.&lt;br /&gt;
&lt;br /&gt;
[[File:dp1.jpg]]&lt;br /&gt;
&lt;br /&gt;
=Screencast Link=&lt;br /&gt;
 https://drive.google.com/a/ncsu.edu/folderview?id=0B_iMDo_Ls2ChMXI2X0MyQlZFQk0&amp;amp;usp=sharing &lt;br /&gt;
&lt;br /&gt;
=Pull request Link=&lt;br /&gt;
http://wiki.expertiza.ncsu.edu/index.php/CSC/ECE_517_Fall_2015/oss_M1501_GSN &lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Gnaik2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015/oss_M1501_GSN&amp;diff=98649</id>
		<title>CSC/ECE 517 Fall 2015/oss M1501 GSN</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015/oss_M1501_GSN&amp;diff=98649"/>
		<updated>2015-11-07T01:53:39Z</updated>

		<summary type="html">&lt;p&gt;Gnaik2: /* Important Notes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''To Report CSS errors to the devtools, both stored and live.'''&lt;br /&gt;
[https://en.wikipedia.org/wiki/Cascading_Style_Sheets CSS] errors are reported to the [https://www.mozilla.org/en-US/firefox/new/ Firefox] developer tools in this project.&lt;br /&gt;
&lt;br /&gt;
=Challenges=&lt;br /&gt;
&lt;br /&gt;
*This project is still under progress. Hence, it won't build.&lt;br /&gt;
&lt;br /&gt;
*We have spoken to Professor. Dr. Gehringer and he has granted us the permission to continue working on the project as it has been delayed due to certain circumstances which were beyond our control. However, he has asked us to share the following information with the reviewers:&lt;br /&gt;
&lt;br /&gt;
*The following is the excerpt from the conversation with Josh where he has stated that the task assigned to us was more complicated than it should have been. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;That being said, this has turned into a task that is much more complex than I originally intended.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*This is a complex Mozilla project. The steps are not easy to implement. When we implemented the first step in the list of steps, we faced around 450 errors in the other files. &lt;br /&gt;
&lt;br /&gt;
*Since the project is applicable directly to servo and not to any side dependency such as unicode bidi or xml parser, any change we make causes a cascading chain of errors in different files. &lt;br /&gt;
&lt;br /&gt;
*Servo is a very large codebase and there is no documentation available to understand what each file or each piece of code is doing in Servo codebase. &lt;br /&gt;
&lt;br /&gt;
*We have also been constantly in touch and clarifying out doubts from the project manager Josh Matthews. &lt;br /&gt;
&lt;br /&gt;
*We have put in many hours and lot of efforts in this project to understand Servo, Rust and also to troubleshoot the errors. &lt;br /&gt;
&lt;br /&gt;
*Installing Rust on Windows systems was also a great challenge we faced and we spent a lot of hours on that as well in the initial phase.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*The following are the links to the gists that we have created for the errors that we have faced. Please note that we had not created gists in the initial phase when we faced almost close to 450 errors on building Servo with our changes.&lt;br /&gt;
&lt;br /&gt;
https://gist.github.com/GauriGNaik/d3d035114b0b855e574d&lt;br /&gt;
&lt;br /&gt;
https://gist.github.com/GauriGNaik/9b750c06b09600c2e223&lt;br /&gt;
&lt;br /&gt;
https://gist.github.com/anonymous/b0fed0d6d8c9122744d8&lt;br /&gt;
&lt;br /&gt;
https://gist.github.com/GauriGNaik/ac38d54b6359036770ed&lt;br /&gt;
&lt;br /&gt;
https://gist.github.com/GauriGNaik/d79b833fc3bf01f3479f&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*The following are the links to the email conversations we have had with Josh. &lt;br /&gt;
&lt;br /&gt;
https://docs.google.com/a/ncsu.edu/document/d/1DYzMR1-y141uvKjrjYWRCfsXcDcJGftF_mlyGWMFv_A/edit?usp=sharing&lt;br /&gt;
&lt;br /&gt;
https://docs.google.com/a/ncsu.edu/document/d/1UMSZJHLv86-lmvlpYpyL6bALHWagg92z_iZeNnGC67M/edit?usp=sharing&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*The following are the links to the conversations with the dev servo mailing group&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/ivcoi2LnzIk&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/IckEvM6ACpE&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/qMGR1AZKJ1g&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/13foshI3GUI&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/eyloqocWcFU&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/eyloqocWcFU&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Since the initial steps are not yet complete so there was no point in creating the voiceover for the video. We have shown some of the changes that we have made so far in the video.  &lt;br /&gt;
&lt;br /&gt;
A few more important notes to help the reviewer:&lt;br /&gt;
&lt;br /&gt;
*Tests are not applicable to this project. &lt;br /&gt;
*Ruby style guide is not applicable to this project. &lt;br /&gt;
*Edge cases are not applicable to this project. &lt;br /&gt;
*There is no UI testing applicable to this project. &lt;br /&gt;
*The work that we have done is exactly as per the initial steps provided by the Mozilla team.&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
Servo&amp;lt;ref&amp;gt;https://en.wikipedia.org/wiki/Servo_(layout_engine)&amp;lt;/ref&amp;gt; is an experimental web browser layout engine. It is developed by Mozilla and written in Rust.It provides an [https://en.wikipedia.org/wiki/Application_programming_interface API] for hosting the engine within other software. The Servo browser currently provides developer tools to inspect [https://en.wikipedia.org/wiki/Document_Object_Model DOM], execute [https://en.wikipedia.org/wiki/JavaScript JavaScript] remotely.&lt;br /&gt;
&lt;br /&gt;
=Rust=&lt;br /&gt;
Rust&amp;lt;ref&amp;gt;https://en.wikipedia.org/wiki/Rust_(programming_language)&amp;lt;/ref&amp;gt; is a programming language developed by Mozilla. It is used to design concurrent and safe systems.&lt;br /&gt;
&lt;br /&gt;
=Environment Setup&amp;lt;ref&amp;gt;https://github.com/servo/servo&amp;lt;/ref&amp;gt;=&lt;br /&gt;
==Pre-requisites==&lt;br /&gt;
On Debian-based Linuxes:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install curl freeglut3-dev\&lt;br /&gt;
    libfreetype6-dev libgl1-mesa-dri libglib2.0-dev xorg-dev \&lt;br /&gt;
    gperf g++ cmake python-virtualenv python-pip \&lt;br /&gt;
    libssl-dev libbz2-dev libosmesa6-dev libxmu6 libxmu-dev libglu1-mesa-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Fedora:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dnf install curl freeglut-devel libtool gcc-c++ libXi-devel \&lt;br /&gt;
    freetype-devel mesa-libGL-devel glib2-devel libX11-devel libXrandr-devel gperf \&lt;br /&gt;
    fontconfig-devel cabextract ttmkfdir python python-virtualenv python-pip expat-devel \&lt;br /&gt;
    rpm-build openssl-devel cmake bzip2-devel libXcursor-devel libXmu-devel mesa-libOSMesa&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Cloning servo==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/servo/servo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Building Servo==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd servo&lt;br /&gt;
./mach build --dev&lt;br /&gt;
./mach run tests/html/about-mozilla.html&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Project Description&amp;lt;ref&amp;gt;https://github.com/servo/servo/wiki/CSS-parse-error-reporting&amp;lt;/ref&amp;gt;=&lt;br /&gt;
We will be adding the capability of exposing CSS errors to Servo. We will be using Firefox remote developer tools to inspect and debug the code in Servo.&lt;br /&gt;
==Program Flow==&lt;br /&gt;
*Ensure that Servo can compile and run the given tests. &lt;br /&gt;
*Choose a website that is compatible with Servo and attach the remote developer tools to it. &lt;br /&gt;
'''Initial steps'''&lt;br /&gt;
*Build Servo&lt;br /&gt;
*Attach remote developer tools&lt;br /&gt;
*Making initial changes and build Servo&lt;br /&gt;
*Generate CSS error messages&lt;br /&gt;
*Process error messages and retrieve cached messages&lt;br /&gt;
*Integrate and build again&lt;br /&gt;
'''Subsequent steps'''&lt;br /&gt;
*Generate messages which communicate the errors to the script thread. &lt;br /&gt;
*Process the messages and provide support for caching them and sending them to the devtools server if it exists. &lt;br /&gt;
*Provide the functionality to retrieve the cached CSS error messages whenever requested.&lt;br /&gt;
&lt;br /&gt;
=Design Pattern Used=&lt;br /&gt;
Model view controller design pattern and Interpreter design pattern is used in this project.&lt;br /&gt;
&lt;br /&gt;
[[File:dp1.jpg]]&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Gnaik2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015/oss_M1501_GSN&amp;diff=98647</id>
		<title>CSC/ECE 517 Fall 2015/oss M1501 GSN</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015/oss_M1501_GSN&amp;diff=98647"/>
		<updated>2015-11-07T01:52:06Z</updated>

		<summary type="html">&lt;p&gt;Gnaik2: /* Important Notes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''To Report CSS errors to the devtools, both stored and live.'''&lt;br /&gt;
[https://en.wikipedia.org/wiki/Cascading_Style_Sheets CSS] errors are reported to the [https://www.mozilla.org/en-US/firefox/new/ Firefox] developer tools in this project.&lt;br /&gt;
&lt;br /&gt;
=Important Notes=&lt;br /&gt;
&lt;br /&gt;
*This project is still under progress. Hence, it won't build.&lt;br /&gt;
&lt;br /&gt;
*We have spoken to Professor. Dr. Gehringer and he has granted us the permission to continue working on the project as it has been delayed due to certain circumstances which were beyond our control. However, he has asked us to share the following information with the reviewers:&lt;br /&gt;
&lt;br /&gt;
*The following is the excerpt from the conversation with Josh where he has stated that the task assigned to us was more complicated than it should have been. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;That being said, this has turned into a task that is much more complex than I originally intended.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*This is a complex Mozilla project. The steps are not easy to implement. When we implemented the first step in the list of steps, we faced around 450 errors in the other files. &lt;br /&gt;
&lt;br /&gt;
*Since the project is applicable directly to servo and not to any side dependency such as unicode bidi or xml parser, any change we make causes a cascading chain of errors in different files. &lt;br /&gt;
&lt;br /&gt;
*Servo is a very large codebase and there is no documentation available to understand what each file or each piece of code is doing in Servo codebase. &lt;br /&gt;
&lt;br /&gt;
*We have also been constantly in touch and clarifying out doubts from the project manager Josh Matthews. &lt;br /&gt;
&lt;br /&gt;
*We have put in many hours and lot of efforts in this project to understand Servo, Rust and also to troubleshoot the errors. &lt;br /&gt;
&lt;br /&gt;
*Installing Rust on Windows systems was also a great challenge we faced and we spent a lot of hours on that as well in the initial phase.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*The following are the links to the gists that we have created for the errors that we have faced. Please note that we had not created gists in the initial phase when we faced almost close to 450 errors on building Servo with our changes.&lt;br /&gt;
&lt;br /&gt;
https://gist.github.com/GauriGNaik/d3d035114b0b855e574d&lt;br /&gt;
&lt;br /&gt;
https://gist.github.com/GauriGNaik/9b750c06b09600c2e223&lt;br /&gt;
&lt;br /&gt;
https://gist.github.com/anonymous/b0fed0d6d8c9122744d8&lt;br /&gt;
&lt;br /&gt;
https://gist.github.com/GauriGNaik/ac38d54b6359036770ed&lt;br /&gt;
&lt;br /&gt;
https://gist.github.com/GauriGNaik/d79b833fc3bf01f3479f&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*The following are the links to the email conversations we have had with Josh. &lt;br /&gt;
&lt;br /&gt;
https://docs.google.com/a/ncsu.edu/document/d/1DYzMR1-y141uvKjrjYWRCfsXcDcJGftF_mlyGWMFv_A/edit?usp=sharing&lt;br /&gt;
&lt;br /&gt;
https://docs.google.com/a/ncsu.edu/document/d/1UMSZJHLv86-lmvlpYpyL6bALHWagg92z_iZeNnGC67M/edit?usp=sharing&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*The following are the links to the conversations with the dev servo mailing group&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/ivcoi2LnzIk&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/IckEvM6ACpE&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/qMGR1AZKJ1g&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/13foshI3GUI&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/eyloqocWcFU&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/eyloqocWcFU&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Since the initial steps are not yet complete so there was no point in creating the voiceover for the video. We have shown some of the changes that we have made so far in the video.  &lt;br /&gt;
&lt;br /&gt;
A few more important notes to help the reviewer:&lt;br /&gt;
&lt;br /&gt;
*Tests are not applicable to this project. &lt;br /&gt;
*Ruby style guide is not applicable to this project. &lt;br /&gt;
*Edge cases are not applicable to this project. &lt;br /&gt;
*There is no UI testing applicable to this project. &lt;br /&gt;
*The work that we have done is exactly as per the initial steps provided by the Mozilla team.&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
Servo&amp;lt;ref&amp;gt;https://en.wikipedia.org/wiki/Servo_(layout_engine)&amp;lt;/ref&amp;gt; is an experimental web browser layout engine. It is developed by Mozilla and written in Rust.It provides an [https://en.wikipedia.org/wiki/Application_programming_interface API] for hosting the engine within other software. The Servo browser currently provides developer tools to inspect [https://en.wikipedia.org/wiki/Document_Object_Model DOM], execute [https://en.wikipedia.org/wiki/JavaScript JavaScript] remotely.&lt;br /&gt;
&lt;br /&gt;
=Rust=&lt;br /&gt;
Rust&amp;lt;ref&amp;gt;https://en.wikipedia.org/wiki/Rust_(programming_language)&amp;lt;/ref&amp;gt; is a programming language developed by Mozilla. It is used to design concurrent and safe systems.&lt;br /&gt;
&lt;br /&gt;
=Environment Setup&amp;lt;ref&amp;gt;https://github.com/servo/servo&amp;lt;/ref&amp;gt;=&lt;br /&gt;
==Pre-requisites==&lt;br /&gt;
On Debian-based Linuxes:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install curl freeglut3-dev\&lt;br /&gt;
    libfreetype6-dev libgl1-mesa-dri libglib2.0-dev xorg-dev \&lt;br /&gt;
    gperf g++ cmake python-virtualenv python-pip \&lt;br /&gt;
    libssl-dev libbz2-dev libosmesa6-dev libxmu6 libxmu-dev libglu1-mesa-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Fedora:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dnf install curl freeglut-devel libtool gcc-c++ libXi-devel \&lt;br /&gt;
    freetype-devel mesa-libGL-devel glib2-devel libX11-devel libXrandr-devel gperf \&lt;br /&gt;
    fontconfig-devel cabextract ttmkfdir python python-virtualenv python-pip expat-devel \&lt;br /&gt;
    rpm-build openssl-devel cmake bzip2-devel libXcursor-devel libXmu-devel mesa-libOSMesa&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Cloning servo==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/servo/servo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Building Servo==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd servo&lt;br /&gt;
./mach build --dev&lt;br /&gt;
./mach run tests/html/about-mozilla.html&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Project Description&amp;lt;ref&amp;gt;https://github.com/servo/servo/wiki/CSS-parse-error-reporting&amp;lt;/ref&amp;gt;=&lt;br /&gt;
We will be adding the capability of exposing CSS errors to Servo. We will be using Firefox remote developer tools to inspect and debug the code in Servo.&lt;br /&gt;
==Program Flow==&lt;br /&gt;
*Ensure that Servo can compile and run the given tests. &lt;br /&gt;
*Choose a website that is compatible with Servo and attach the remote developer tools to it. &lt;br /&gt;
'''Initial steps'''&lt;br /&gt;
*Build Servo&lt;br /&gt;
*Attach remote developer tools&lt;br /&gt;
*Making initial changes and build Servo&lt;br /&gt;
*Generate CSS error messages&lt;br /&gt;
*Process error messages and retrieve cached messages&lt;br /&gt;
*Integrate and build again&lt;br /&gt;
'''Subsequent steps'''&lt;br /&gt;
*Generate messages which communicate the errors to the script thread. &lt;br /&gt;
*Process the messages and provide support for caching them and sending them to the devtools server if it exists. &lt;br /&gt;
*Provide the functionality to retrieve the cached CSS error messages whenever requested.&lt;br /&gt;
&lt;br /&gt;
=Design Pattern Used=&lt;br /&gt;
Model view controller design pattern and Interpreter design pattern is used in this project.&lt;br /&gt;
&lt;br /&gt;
[[File:dp1.jpg]]&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Gnaik2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015/oss_M1501_GSN&amp;diff=98643</id>
		<title>CSC/ECE 517 Fall 2015/oss M1501 GSN</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015/oss_M1501_GSN&amp;diff=98643"/>
		<updated>2015-11-07T01:49:48Z</updated>

		<summary type="html">&lt;p&gt;Gnaik2: /* Important Notes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''To Report CSS errors to the devtools, both stored and live.'''&lt;br /&gt;
[https://en.wikipedia.org/wiki/Cascading_Style_Sheets CSS] errors are reported to the [https://www.mozilla.org/en-US/firefox/new/ Firefox] developer tools in this project.&lt;br /&gt;
&lt;br /&gt;
=Important Notes=&lt;br /&gt;
&lt;br /&gt;
*This project is still under progress. Hence, it won't build.&lt;br /&gt;
&lt;br /&gt;
*We have spoken to Professor. Dr. Gehringer and he has granted us the permission to continue working on the project as it has been delayed due to certain circumstances which were beyond our control. However, he has asked us to share the following information with the reviewers:&lt;br /&gt;
&lt;br /&gt;
*The following is the excerpt from the conversation with Josh where he has stated that the task assigned to us was more complicated than it should have been. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;That being said, this has turned into a task that is much more complex than I originally intended.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*This is a complex Mozilla project. The steps are not easy to implement. When we implemented the first step in the list of steps, we faced around 450 errors in the other files. &lt;br /&gt;
&lt;br /&gt;
*Since the project is applicable directly to servo and not to any side dependency such as unicode bidi or xml parser, any change we make causes a cascading chain of errors in different files. &lt;br /&gt;
&lt;br /&gt;
*Servo is a very large codebase and there is no documentation available to understand what each file or each piece of code is doing in Servo codebase. &lt;br /&gt;
&lt;br /&gt;
*We have also been constantly in touch and clarifying out doubts from the project manager Josh Matthews. &lt;br /&gt;
&lt;br /&gt;
*We have put in many hours and lot of efforts in this project to understand Servo, Rust and also to troubleshoot the errors. &lt;br /&gt;
&lt;br /&gt;
*Installing Rust on Windows systems was also a great challenge we faced and we spent a lot of hours on that as well in the initial phase.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*The following are the links to the gists that we have created for the errors that we have faced. Please note that we had not created gists in the initial phase when we faced almost close to 450 errors on building Servo with our changes.&lt;br /&gt;
&lt;br /&gt;
https://gist.github.com/GauriGNaik/d3d035114b0b855e574d&lt;br /&gt;
&lt;br /&gt;
https://gist.github.com/GauriGNaik/9b750c06b09600c2e223&lt;br /&gt;
&lt;br /&gt;
https://gist.github.com/anonymous/b0fed0d6d8c9122744d8&lt;br /&gt;
&lt;br /&gt;
https://gist.github.com/GauriGNaik/ac38d54b6359036770ed&lt;br /&gt;
&lt;br /&gt;
https://gist.github.com/GauriGNaik/d79b833fc3bf01f3479f&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*The following are the links to the email conversations we have had with Josh. &lt;br /&gt;
&lt;br /&gt;
https://docs.google.com/a/ncsu.edu/document/d/1DYzMR1-y141uvKjrjYWRCfsXcDcJGftF_mlyGWMFv_A/edit?usp=sharing&lt;br /&gt;
&lt;br /&gt;
https://docs.google.com/a/ncsu.edu/document/d/1UMSZJHLv86-lmvlpYpyL6bALHWagg92z_iZeNnGC67M/edit?usp=sharing&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*The following are the links to the conversations with the dev servo mailing group&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/ivcoi2LnzIk&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/IckEvM6ACpE&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/qMGR1AZKJ1g&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/13foshI3GUI&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/eyloqocWcFU&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/eyloqocWcFU&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Since the initial steps are not yet complete so there was no point in creating the voiceover for the video. We have shown the changes that we have made so far in the video.  &lt;br /&gt;
&lt;br /&gt;
A few more important notes to help the reviewer:&lt;br /&gt;
&lt;br /&gt;
*Tests are not applicable to this project. &lt;br /&gt;
*Ruby style guide is not applicable to this project. &lt;br /&gt;
*Edge cases are not applicable to this project. &lt;br /&gt;
*There is no UI testing applicable to this project. &lt;br /&gt;
*The work that we have done is exactly as per the initial steps provided by the Mozilla team.&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
Servo&amp;lt;ref&amp;gt;https://en.wikipedia.org/wiki/Servo_(layout_engine)&amp;lt;/ref&amp;gt; is an experimental web browser layout engine. It is developed by Mozilla and written in Rust.It provides an [https://en.wikipedia.org/wiki/Application_programming_interface API] for hosting the engine within other software. The Servo browser currently provides developer tools to inspect [https://en.wikipedia.org/wiki/Document_Object_Model DOM], execute [https://en.wikipedia.org/wiki/JavaScript JavaScript] remotely.&lt;br /&gt;
&lt;br /&gt;
=Rust=&lt;br /&gt;
Rust&amp;lt;ref&amp;gt;https://en.wikipedia.org/wiki/Rust_(programming_language)&amp;lt;/ref&amp;gt; is a programming language developed by Mozilla. It is used to design concurrent and safe systems.&lt;br /&gt;
&lt;br /&gt;
=Environment Setup&amp;lt;ref&amp;gt;https://github.com/servo/servo&amp;lt;/ref&amp;gt;=&lt;br /&gt;
==Pre-requisites==&lt;br /&gt;
On Debian-based Linuxes:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install curl freeglut3-dev\&lt;br /&gt;
    libfreetype6-dev libgl1-mesa-dri libglib2.0-dev xorg-dev \&lt;br /&gt;
    gperf g++ cmake python-virtualenv python-pip \&lt;br /&gt;
    libssl-dev libbz2-dev libosmesa6-dev libxmu6 libxmu-dev libglu1-mesa-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Fedora:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dnf install curl freeglut-devel libtool gcc-c++ libXi-devel \&lt;br /&gt;
    freetype-devel mesa-libGL-devel glib2-devel libX11-devel libXrandr-devel gperf \&lt;br /&gt;
    fontconfig-devel cabextract ttmkfdir python python-virtualenv python-pip expat-devel \&lt;br /&gt;
    rpm-build openssl-devel cmake bzip2-devel libXcursor-devel libXmu-devel mesa-libOSMesa&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Cloning servo==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/servo/servo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Building Servo==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd servo&lt;br /&gt;
./mach build --dev&lt;br /&gt;
./mach run tests/html/about-mozilla.html&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Project Description&amp;lt;ref&amp;gt;https://github.com/servo/servo/wiki/CSS-parse-error-reporting&amp;lt;/ref&amp;gt;=&lt;br /&gt;
We will be adding the capability of exposing CSS errors to Servo. We will be using Firefox remote developer tools to inspect and debug the code in Servo.&lt;br /&gt;
==Program Flow==&lt;br /&gt;
*Ensure that Servo can compile and run the given tests. &lt;br /&gt;
*Choose a website that is compatible with Servo and attach the remote developer tools to it. &lt;br /&gt;
'''Initial steps'''&lt;br /&gt;
*Build Servo&lt;br /&gt;
*Attach remote developer tools&lt;br /&gt;
*Making initial changes and build Servo&lt;br /&gt;
*Generate CSS error messages&lt;br /&gt;
*Process error messages and retrieve cached messages&lt;br /&gt;
*Integrate and build again&lt;br /&gt;
'''Subsequent steps'''&lt;br /&gt;
*Generate messages which communicate the errors to the script thread. &lt;br /&gt;
*Process the messages and provide support for caching them and sending them to the devtools server if it exists. &lt;br /&gt;
*Provide the functionality to retrieve the cached CSS error messages whenever requested.&lt;br /&gt;
&lt;br /&gt;
=Design Pattern Used=&lt;br /&gt;
Model view controller design pattern and Interpreter design pattern is used in this project.&lt;br /&gt;
&lt;br /&gt;
[[File:dp1.jpg]]&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Gnaik2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015/oss_M1501_GSN&amp;diff=98635</id>
		<title>CSC/ECE 517 Fall 2015/oss M1501 GSN</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015/oss_M1501_GSN&amp;diff=98635"/>
		<updated>2015-11-07T01:44:05Z</updated>

		<summary type="html">&lt;p&gt;Gnaik2: /* Important Notes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''To Report CSS errors to the devtools, both stored and live.'''&lt;br /&gt;
[https://en.wikipedia.org/wiki/Cascading_Style_Sheets CSS] errors are reported to the [https://www.mozilla.org/en-US/firefox/new/ Firefox] developer tools in this project.&lt;br /&gt;
&lt;br /&gt;
=Important Notes=&lt;br /&gt;
&lt;br /&gt;
*This project is still under progress. Hence, it won't build.&lt;br /&gt;
&lt;br /&gt;
*We have spoken to Professor. Dr. Gehringer and he has granted us the permission to continue working on the project as it has been delayed due to certain circumstances which were beyond our control. However, he has asked us to share the following information with the reviewers:&lt;br /&gt;
&lt;br /&gt;
*The following is the excerpt from the conversation with Josh where he has stated that the task assigned to us was more complicated than it should have been. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;That being said, this has turned into a task that is much more complex than I originally intended.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*This is a complex Mozilla project. The steps are not easy to implement. When we implemented the first step in the list of steps, we faced around 450 errors in the other files. &lt;br /&gt;
&lt;br /&gt;
*Since the project is applicable directly to servo and not to any side dependency such as unicode bidi or xml parser, any change we make causes a cascading chain of errors in different files. &lt;br /&gt;
&lt;br /&gt;
*Servo is a very large codebase and there is no documentation available to understand what each file or each piece of code is doing in Servo codebase. &lt;br /&gt;
&lt;br /&gt;
*We have also been constantly in touch and clarifying out doubts from the project manager Josh Matthews. &lt;br /&gt;
&lt;br /&gt;
*We have put in many hours and lot of efforts in this project to understand Servo, Rust and also to troubleshoot the errors. &lt;br /&gt;
&lt;br /&gt;
*Installing Rust on Windows systems was also a great challenge we faced and we spent a lot of hours on that as well in initial phase.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*The following are the links to the gists that we have created for the errors that we have faced. Please note that we had not created gists in the initial phase when we faced almost close to 450 errors on building Servo with our changes.&lt;br /&gt;
&lt;br /&gt;
https://gist.github.com/GauriGNaik/d3d035114b0b855e574d&lt;br /&gt;
&lt;br /&gt;
https://gist.github.com/GauriGNaik/9b750c06b09600c2e223&lt;br /&gt;
&lt;br /&gt;
https://gist.github.com/anonymous/b0fed0d6d8c9122744d8&lt;br /&gt;
&lt;br /&gt;
https://gist.github.com/GauriGNaik/ac38d54b6359036770ed&lt;br /&gt;
&lt;br /&gt;
https://gist.github.com/GauriGNaik/d79b833fc3bf01f3479f&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*The following are the links to the email conversations we have had with Josh. &lt;br /&gt;
&lt;br /&gt;
https://docs.google.com/a/ncsu.edu/document/d/1DYzMR1-y141uvKjrjYWRCfsXcDcJGftF_mlyGWMFv_A/edit?usp=sharing&lt;br /&gt;
&lt;br /&gt;
https://docs.google.com/a/ncsu.edu/document/d/1UMSZJHLv86-lmvlpYpyL6bALHWagg92z_iZeNnGC67M/edit?usp=sharing&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*The following are the links to the conversations with the dev servo mailing group&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/ivcoi2LnzIk&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/IckEvM6ACpE&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/qMGR1AZKJ1g&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/13foshI3GUI&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/eyloqocWcFU&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/eyloqocWcFU&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Since the initial steps are not yet complete so there was no point in creating the voiceover for the video. We have shown the changes that we have made so far in the video.  &lt;br /&gt;
&lt;br /&gt;
A few more important notes to help the reviewer:&lt;br /&gt;
&lt;br /&gt;
*Tests are not applicable to this project. &lt;br /&gt;
*Ruby style guide is not applicable to this project. &lt;br /&gt;
*Edge cases are not applicable to this project. &lt;br /&gt;
*There is no UI testing applicable to this project. &lt;br /&gt;
*The work that we have done is exactly as per the initial steps provided by the Mozilla team.&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
Servo&amp;lt;ref&amp;gt;https://en.wikipedia.org/wiki/Servo_(layout_engine)&amp;lt;/ref&amp;gt; is an experimental web browser layout engine. It is developed by Mozilla and written in Rust.It provides an [https://en.wikipedia.org/wiki/Application_programming_interface API] for hosting the engine within other software. The Servo browser currently provides developer tools to inspect [https://en.wikipedia.org/wiki/Document_Object_Model DOM], execute [https://en.wikipedia.org/wiki/JavaScript JavaScript] remotely.&lt;br /&gt;
&lt;br /&gt;
=Rust=&lt;br /&gt;
Rust&amp;lt;ref&amp;gt;https://en.wikipedia.org/wiki/Rust_(programming_language)&amp;lt;/ref&amp;gt; is a programming language developed by Mozilla. It is used to design concurrent and safe systems.&lt;br /&gt;
&lt;br /&gt;
=Environment Setup&amp;lt;ref&amp;gt;https://github.com/servo/servo&amp;lt;/ref&amp;gt;=&lt;br /&gt;
==Pre-requisites==&lt;br /&gt;
On Debian-based Linuxes:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install curl freeglut3-dev\&lt;br /&gt;
    libfreetype6-dev libgl1-mesa-dri libglib2.0-dev xorg-dev \&lt;br /&gt;
    gperf g++ cmake python-virtualenv python-pip \&lt;br /&gt;
    libssl-dev libbz2-dev libosmesa6-dev libxmu6 libxmu-dev libglu1-mesa-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Fedora:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dnf install curl freeglut-devel libtool gcc-c++ libXi-devel \&lt;br /&gt;
    freetype-devel mesa-libGL-devel glib2-devel libX11-devel libXrandr-devel gperf \&lt;br /&gt;
    fontconfig-devel cabextract ttmkfdir python python-virtualenv python-pip expat-devel \&lt;br /&gt;
    rpm-build openssl-devel cmake bzip2-devel libXcursor-devel libXmu-devel mesa-libOSMesa&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Cloning servo==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/servo/servo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Building Servo==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd servo&lt;br /&gt;
./mach build --dev&lt;br /&gt;
./mach run tests/html/about-mozilla.html&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Project Description&amp;lt;ref&amp;gt;https://github.com/servo/servo/wiki/CSS-parse-error-reporting&amp;lt;/ref&amp;gt;=&lt;br /&gt;
We will be adding the capability of exposing CSS errors to Servo. We will be using Firefox remote developer tools to inspect and debug the code in Servo.&lt;br /&gt;
==Program Flow==&lt;br /&gt;
*Ensure that Servo can compile and run the given tests. &lt;br /&gt;
*Choose a website that is compatible with Servo and attach the remote developer tools to it. &lt;br /&gt;
'''Initial steps'''&lt;br /&gt;
*Build Servo&lt;br /&gt;
*Attach remote developer tools&lt;br /&gt;
*Making initial changes and build Servo&lt;br /&gt;
*Generate CSS error messages&lt;br /&gt;
*Process error messages and retrieve cached messages&lt;br /&gt;
*Integrate and build again&lt;br /&gt;
'''Subsequent steps'''&lt;br /&gt;
*Generate messages which communicate the errors to the script thread. &lt;br /&gt;
*Process the messages and provide support for caching them and sending them to the devtools server if it exists. &lt;br /&gt;
*Provide the functionality to retrieve the cached CSS error messages whenever requested.&lt;br /&gt;
&lt;br /&gt;
=Design Pattern Used=&lt;br /&gt;
Model view controller design pattern and Interpreter design pattern is used in this project.&lt;br /&gt;
&lt;br /&gt;
[[File:dp1.jpg]]&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Gnaik2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015/oss_M1501_GSN&amp;diff=98631</id>
		<title>CSC/ECE 517 Fall 2015/oss M1501 GSN</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015/oss_M1501_GSN&amp;diff=98631"/>
		<updated>2015-11-07T01:43:19Z</updated>

		<summary type="html">&lt;p&gt;Gnaik2: /* Important Notes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''To Report CSS errors to the devtools, both stored and live.'''&lt;br /&gt;
[https://en.wikipedia.org/wiki/Cascading_Style_Sheets CSS] errors are reported to the [https://www.mozilla.org/en-US/firefox/new/ Firefox] developer tools in this project.&lt;br /&gt;
&lt;br /&gt;
=Important Notes=&lt;br /&gt;
&lt;br /&gt;
*This project is still under progress. Hence, it won't build.&lt;br /&gt;
&lt;br /&gt;
*We have spoken to Professor. Dr. Gehringer and he has granted us the permission to continue working on the project as it has been delayed due to certain circumstances which were beyond our control. However, he has asked us to share the following information with the reviewers:&lt;br /&gt;
&lt;br /&gt;
*The following is the excerpt from the conversation with Josh where he has stated that the task assigned to us was more complicated than it should have been. &lt;br /&gt;
&lt;br /&gt;
&amp;quot;That being said, this has turned into a task that is much more complex than I originally intended.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
*This is a complex Mozilla project. The steps are not easy to implement. When we implemented the first step in the list of steps, we faced around 450 errors in the other files. &lt;br /&gt;
&lt;br /&gt;
*Since the project is applicable directly to servo and not to any side dependency such as unicode bidi or xml parser, any change we make causes a cascading chain of errors in different files. &lt;br /&gt;
&lt;br /&gt;
*Servo is a very large codebase and there is no documentation available to understand what each file or each piece of code is doing in Servo codebase. &lt;br /&gt;
&lt;br /&gt;
*We have also been constantly in touch and clarifying out doubts from the project manager Josh Matthews. &lt;br /&gt;
&lt;br /&gt;
*We have put in many hours and lot of efforts in this project to understand Servo, Rust and also to troubleshoot the errors. &lt;br /&gt;
&lt;br /&gt;
*Installing Rust on Windows systems was also a great challenge we faced and we spent a lot of hours on that as well in initial phase.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*The following are the links to the gists that we have created for the errors that we have faced. Please note that we had not created gists in the initial phase when we faced almost close to 450 errors on building Servo with our changes.&lt;br /&gt;
&lt;br /&gt;
https://gist.github.com/GauriGNaik/d3d035114b0b855e574d&lt;br /&gt;
&lt;br /&gt;
https://gist.github.com/GauriGNaik/9b750c06b09600c2e223&lt;br /&gt;
&lt;br /&gt;
https://gist.github.com/anonymous/b0fed0d6d8c9122744d8&lt;br /&gt;
&lt;br /&gt;
https://gist.github.com/GauriGNaik/ac38d54b6359036770ed&lt;br /&gt;
&lt;br /&gt;
https://gist.github.com/GauriGNaik/d79b833fc3bf01f3479f&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*The following are the links to the email conversations we have had with Josh. &lt;br /&gt;
&lt;br /&gt;
https://docs.google.com/a/ncsu.edu/document/d/1DYzMR1-y141uvKjrjYWRCfsXcDcJGftF_mlyGWMFv_A/edit?usp=sharing&lt;br /&gt;
&lt;br /&gt;
https://docs.google.com/a/ncsu.edu/document/d/1UMSZJHLv86-lmvlpYpyL6bALHWagg92z_iZeNnGC67M/edit?usp=sharing&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*The following are the links to the conversations with the dev servo mailing group&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/ivcoi2LnzIk&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/IckEvM6ACpE&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/qMGR1AZKJ1g&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/13foshI3GUI&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/eyloqocWcFU&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/eyloqocWcFU&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Since the initial steps are not yet complete so there was no point in creating the voiceover for the video. We have shown the changes that we have made so far in the video.  &lt;br /&gt;
&lt;br /&gt;
A few more important notes to help the reviewer:&lt;br /&gt;
&lt;br /&gt;
*Tests are not applicable to this project. &lt;br /&gt;
*Ruby style guide is not applicable to this project. &lt;br /&gt;
*Edge cases are not applicable to this project. &lt;br /&gt;
*There is no UI testing applicable to this project. &lt;br /&gt;
*The work that we have done is exactly as per the initial steps provided by the Mozilla team.&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
Servo&amp;lt;ref&amp;gt;https://en.wikipedia.org/wiki/Servo_(layout_engine)&amp;lt;/ref&amp;gt; is an experimental web browser layout engine. It is developed by Mozilla and written in Rust.It provides an [https://en.wikipedia.org/wiki/Application_programming_interface API] for hosting the engine within other software. The Servo browser currently provides developer tools to inspect [https://en.wikipedia.org/wiki/Document_Object_Model DOM], execute [https://en.wikipedia.org/wiki/JavaScript JavaScript] remotely.&lt;br /&gt;
&lt;br /&gt;
=Rust=&lt;br /&gt;
Rust&amp;lt;ref&amp;gt;https://en.wikipedia.org/wiki/Rust_(programming_language)&amp;lt;/ref&amp;gt; is a programming language developed by Mozilla. It is used to design concurrent and safe systems.&lt;br /&gt;
&lt;br /&gt;
=Environment Setup&amp;lt;ref&amp;gt;https://github.com/servo/servo&amp;lt;/ref&amp;gt;=&lt;br /&gt;
==Pre-requisites==&lt;br /&gt;
On Debian-based Linuxes:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install curl freeglut3-dev\&lt;br /&gt;
    libfreetype6-dev libgl1-mesa-dri libglib2.0-dev xorg-dev \&lt;br /&gt;
    gperf g++ cmake python-virtualenv python-pip \&lt;br /&gt;
    libssl-dev libbz2-dev libosmesa6-dev libxmu6 libxmu-dev libglu1-mesa-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Fedora:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dnf install curl freeglut-devel libtool gcc-c++ libXi-devel \&lt;br /&gt;
    freetype-devel mesa-libGL-devel glib2-devel libX11-devel libXrandr-devel gperf \&lt;br /&gt;
    fontconfig-devel cabextract ttmkfdir python python-virtualenv python-pip expat-devel \&lt;br /&gt;
    rpm-build openssl-devel cmake bzip2-devel libXcursor-devel libXmu-devel mesa-libOSMesa&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Cloning servo==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/servo/servo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Building Servo==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd servo&lt;br /&gt;
./mach build --dev&lt;br /&gt;
./mach run tests/html/about-mozilla.html&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Project Description&amp;lt;ref&amp;gt;https://github.com/servo/servo/wiki/CSS-parse-error-reporting&amp;lt;/ref&amp;gt;=&lt;br /&gt;
We will be adding the capability of exposing CSS errors to Servo. We will be using Firefox remote developer tools to inspect and debug the code in Servo.&lt;br /&gt;
==Program Flow==&lt;br /&gt;
*Ensure that Servo can compile and run the given tests. &lt;br /&gt;
*Choose a website that is compatible with Servo and attach the remote developer tools to it. &lt;br /&gt;
'''Initial steps'''&lt;br /&gt;
*Build Servo&lt;br /&gt;
*Attach remote developer tools&lt;br /&gt;
*Making initial changes and build Servo&lt;br /&gt;
*Generate CSS error messages&lt;br /&gt;
*Process error messages and retrieve cached messages&lt;br /&gt;
*Integrate and build again&lt;br /&gt;
'''Subsequent steps'''&lt;br /&gt;
*Generate messages which communicate the errors to the script thread. &lt;br /&gt;
*Process the messages and provide support for caching them and sending them to the devtools server if it exists. &lt;br /&gt;
*Provide the functionality to retrieve the cached CSS error messages whenever requested.&lt;br /&gt;
&lt;br /&gt;
=Design Pattern Used=&lt;br /&gt;
Model view controller design pattern and Interpreter design pattern is used in this project.&lt;br /&gt;
&lt;br /&gt;
[[File:dp1.jpg]]&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Gnaik2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015/oss_M1501_GSN&amp;diff=98626</id>
		<title>CSC/ECE 517 Fall 2015/oss M1501 GSN</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015/oss_M1501_GSN&amp;diff=98626"/>
		<updated>2015-11-07T01:40:09Z</updated>

		<summary type="html">&lt;p&gt;Gnaik2: /* Important Notes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''To Report CSS errors to the devtools, both stored and live.'''&lt;br /&gt;
[https://en.wikipedia.org/wiki/Cascading_Style_Sheets CSS] errors are reported to the [https://www.mozilla.org/en-US/firefox/new/ Firefox] developer tools in this project.&lt;br /&gt;
&lt;br /&gt;
=Important Notes=&lt;br /&gt;
&lt;br /&gt;
*This project is still under progress. Hence, it won't build.&lt;br /&gt;
&lt;br /&gt;
*We have spoken to Professor. Dr. Gehringer and he has granted us the permission to continue working on the project as it has been delayed due to certain circumstances which were beyond our control. However, he has asked us to share the following information with the reviewers:&lt;br /&gt;
&lt;br /&gt;
*The following is the excerpt from the conversation with Josh where he has stated that the task assigned to us was more complicated than it should have been. &lt;br /&gt;
&lt;br /&gt;
*This is a complex Mozilla project. The steps are not easy to implement. When we implemented the first step in the list of steps, we faced around 450 errors in the other files. &lt;br /&gt;
&lt;br /&gt;
*Since the project is applicable directly to servo and not to any side dependency such as unicode bidi or xml parser, any change we make causes a cascading chain of errors in different files. &lt;br /&gt;
&lt;br /&gt;
*Servo is a very large codebase and there is no documentation available to understand what each file or each piece of code is doing in Servo codebase. &lt;br /&gt;
&lt;br /&gt;
*We have also been constantly in touch and clarifying out doubts from the project manager Josh Matthews. &lt;br /&gt;
&lt;br /&gt;
*We have put in many hours and lot of efforts in this project to understand Servo, Rust and also to troubleshoot the errors. &lt;br /&gt;
&lt;br /&gt;
*Installing Rust on Windows systems was also a great challenge we faced and we spent a lot of hours on that as well in initial phase.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*The following are the links to the gists that we have created for the errors that we have faced. Please note that we had not created gists in the initial phase when we faced almost close to 450 errors on building Servo with our changes.&lt;br /&gt;
&lt;br /&gt;
https://gist.github.com/GauriGNaik/d3d035114b0b855e574d&lt;br /&gt;
&lt;br /&gt;
https://gist.github.com/GauriGNaik/9b750c06b09600c2e223&lt;br /&gt;
&lt;br /&gt;
https://gist.github.com/anonymous/b0fed0d6d8c9122744d8&lt;br /&gt;
&lt;br /&gt;
https://gist.github.com/GauriGNaik/ac38d54b6359036770ed&lt;br /&gt;
&lt;br /&gt;
https://gist.github.com/GauriGNaik/d79b833fc3bf01f3479f&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*The following are the links to the email conversations we have had with Josh. &lt;br /&gt;
&lt;br /&gt;
https://docs.google.com/a/ncsu.edu/document/d/1DYzMR1-y141uvKjrjYWRCfsXcDcJGftF_mlyGWMFv_A/edit?usp=sharing&lt;br /&gt;
&lt;br /&gt;
https://docs.google.com/a/ncsu.edu/document/d/1UMSZJHLv86-lmvlpYpyL6bALHWagg92z_iZeNnGC67M/edit?usp=sharing&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*The following are the links to the conversations with the dev servo mailing group&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/ivcoi2LnzIk&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/IckEvM6ACpE&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/qMGR1AZKJ1g&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/13foshI3GUI&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/eyloqocWcFU&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/eyloqocWcFU&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Since the initial steps are not yet complete so there was no point in creating the voiceover for the video. We have shown the changes that we have made so far in the video.  &lt;br /&gt;
&lt;br /&gt;
A few more important notes to help the reviewer:&lt;br /&gt;
&lt;br /&gt;
*Tests are not applicable to this project. &lt;br /&gt;
*Ruby style guide is not applicable to this project. &lt;br /&gt;
*Edge cases are not applicable to this project. &lt;br /&gt;
*There is no UI testing applicable to this project. &lt;br /&gt;
*The work that we have done is exactly as per the initial steps provided by the Mozilla team.&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
Servo&amp;lt;ref&amp;gt;https://en.wikipedia.org/wiki/Servo_(layout_engine)&amp;lt;/ref&amp;gt; is an experimental web browser layout engine. It is developed by Mozilla and written in Rust.It provides an [https://en.wikipedia.org/wiki/Application_programming_interface API] for hosting the engine within other software. The Servo browser currently provides developer tools to inspect [https://en.wikipedia.org/wiki/Document_Object_Model DOM], execute [https://en.wikipedia.org/wiki/JavaScript JavaScript] remotely.&lt;br /&gt;
&lt;br /&gt;
=Rust=&lt;br /&gt;
Rust&amp;lt;ref&amp;gt;https://en.wikipedia.org/wiki/Rust_(programming_language)&amp;lt;/ref&amp;gt; is a programming language developed by Mozilla. It is used to design concurrent and safe systems.&lt;br /&gt;
&lt;br /&gt;
=Environment Setup&amp;lt;ref&amp;gt;https://github.com/servo/servo&amp;lt;/ref&amp;gt;=&lt;br /&gt;
==Pre-requisites==&lt;br /&gt;
On Debian-based Linuxes:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install curl freeglut3-dev\&lt;br /&gt;
    libfreetype6-dev libgl1-mesa-dri libglib2.0-dev xorg-dev \&lt;br /&gt;
    gperf g++ cmake python-virtualenv python-pip \&lt;br /&gt;
    libssl-dev libbz2-dev libosmesa6-dev libxmu6 libxmu-dev libglu1-mesa-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Fedora:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dnf install curl freeglut-devel libtool gcc-c++ libXi-devel \&lt;br /&gt;
    freetype-devel mesa-libGL-devel glib2-devel libX11-devel libXrandr-devel gperf \&lt;br /&gt;
    fontconfig-devel cabextract ttmkfdir python python-virtualenv python-pip expat-devel \&lt;br /&gt;
    rpm-build openssl-devel cmake bzip2-devel libXcursor-devel libXmu-devel mesa-libOSMesa&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Cloning servo==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/servo/servo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Building Servo==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd servo&lt;br /&gt;
./mach build --dev&lt;br /&gt;
./mach run tests/html/about-mozilla.html&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Project Description&amp;lt;ref&amp;gt;https://github.com/servo/servo/wiki/CSS-parse-error-reporting&amp;lt;/ref&amp;gt;=&lt;br /&gt;
We will be adding the capability of exposing CSS errors to Servo. We will be using Firefox remote developer tools to inspect and debug the code in Servo.&lt;br /&gt;
==Program Flow==&lt;br /&gt;
*Ensure that Servo can compile and run the given tests. &lt;br /&gt;
*Choose a website that is compatible with Servo and attach the remote developer tools to it. &lt;br /&gt;
'''Initial steps'''&lt;br /&gt;
*Build Servo&lt;br /&gt;
*Attach remote developer tools&lt;br /&gt;
*Making initial changes and build Servo&lt;br /&gt;
*Generate CSS error messages&lt;br /&gt;
*Process error messages and retrieve cached messages&lt;br /&gt;
*Integrate and build again&lt;br /&gt;
'''Subsequent steps'''&lt;br /&gt;
*Generate messages which communicate the errors to the script thread. &lt;br /&gt;
*Process the messages and provide support for caching them and sending them to the devtools server if it exists. &lt;br /&gt;
*Provide the functionality to retrieve the cached CSS error messages whenever requested.&lt;br /&gt;
&lt;br /&gt;
=Design Pattern Used=&lt;br /&gt;
Model view controller design pattern and Interpreter design pattern is used in this project.&lt;br /&gt;
&lt;br /&gt;
[[File:dp1.jpg]]&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Gnaik2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015/oss_M1501_GSN&amp;diff=98625</id>
		<title>CSC/ECE 517 Fall 2015/oss M1501 GSN</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015/oss_M1501_GSN&amp;diff=98625"/>
		<updated>2015-11-07T01:38:41Z</updated>

		<summary type="html">&lt;p&gt;Gnaik2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''To Report CSS errors to the devtools, both stored and live.'''&lt;br /&gt;
[https://en.wikipedia.org/wiki/Cascading_Style_Sheets CSS] errors are reported to the [https://www.mozilla.org/en-US/firefox/new/ Firefox] developer tools in this project.&lt;br /&gt;
&lt;br /&gt;
=Important Notes=&lt;br /&gt;
&lt;br /&gt;
*This project is still under progress. Hence, it won't build.&lt;br /&gt;
&lt;br /&gt;
*We have spoken to Professor. Dr. Gehringer and he has granted us the permission to continue working on the project as it has been delayed due to certain circumstances which were beyond our control. However, he has asked us to share the following information with the reviewers:&lt;br /&gt;
&lt;br /&gt;
*The following is the excerpt from the conversation with Josh where he has stated that the task assigned to us was more complicated than it should have been. &lt;br /&gt;
&lt;br /&gt;
*This is a complex Mozilla project. The steps are not easy to implement. When we implemented the first step in the list of steps, we faced around 450 errors in the other files. &lt;br /&gt;
&lt;br /&gt;
*Since the project is applicable directly to servo and not to any side dependency such as unicode bidi or xml parser, any change we make causes a cascading chain of errors in different files. &lt;br /&gt;
&lt;br /&gt;
*Servo is a very large codebase and there is no documentation available to understand what each file or each piece of code is doing in Servo codebase. &lt;br /&gt;
&lt;br /&gt;
*We have also been constantly in touch and clarifying out doubts from the project manager Josh Matthews. &lt;br /&gt;
&lt;br /&gt;
*We have put in many hours and lot of efforts in this project to understand Servo, Rust and also to troubleshoot the errors. &lt;br /&gt;
&lt;br /&gt;
*Installing Rust on Windows systems was also a great challenge we faced and we spent a lot of hours on that as well in initial phase.&lt;br /&gt;
&lt;br /&gt;
*The following are the links to the gists that we have created for the errors that we have faced.&lt;br /&gt;
&lt;br /&gt;
https://gist.github.com/GauriGNaik/d3d035114b0b855e574d&lt;br /&gt;
&lt;br /&gt;
https://gist.github.com/GauriGNaik/9b750c06b09600c2e223&lt;br /&gt;
&lt;br /&gt;
https://gist.github.com/anonymous/b0fed0d6d8c9122744d8&lt;br /&gt;
&lt;br /&gt;
https://gist.github.com/GauriGNaik/ac38d54b6359036770ed&lt;br /&gt;
&lt;br /&gt;
https://gist.github.com/GauriGNaik/d79b833fc3bf01f3479f&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*The following are the links to the email conversations we have had with Josh. &lt;br /&gt;
&lt;br /&gt;
https://docs.google.com/a/ncsu.edu/document/d/1DYzMR1-y141uvKjrjYWRCfsXcDcJGftF_mlyGWMFv_A/edit?usp=sharing&lt;br /&gt;
&lt;br /&gt;
https://docs.google.com/a/ncsu.edu/document/d/1UMSZJHLv86-lmvlpYpyL6bALHWagg92z_iZeNnGC67M/edit?usp=sharing&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*The following are the links to the conversations with the dev servo mailing group&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/ivcoi2LnzIk&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/IckEvM6ACpE&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/qMGR1AZKJ1g&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/13foshI3GUI&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/eyloqocWcFU&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/eyloqocWcFU&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Since the initial steps are not yet complete so there was no point in creating the voiceover for the video. We have shown the changes that we have made so far in the video.  &lt;br /&gt;
&lt;br /&gt;
A few more important notes to help the reviewer:&lt;br /&gt;
&lt;br /&gt;
*Tests are not applicable to this project. &lt;br /&gt;
*Ruby style guide is not applicable to this project. &lt;br /&gt;
*Edge cases are not applicable to this project. &lt;br /&gt;
*There is no UI testing applicable to this project. &lt;br /&gt;
*The work that we have done is exactly as per the initial steps provided by the Mozilla team.&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
Servo&amp;lt;ref&amp;gt;https://en.wikipedia.org/wiki/Servo_(layout_engine)&amp;lt;/ref&amp;gt; is an experimental web browser layout engine. It is developed by Mozilla and written in Rust.It provides an [https://en.wikipedia.org/wiki/Application_programming_interface API] for hosting the engine within other software. The Servo browser currently provides developer tools to inspect [https://en.wikipedia.org/wiki/Document_Object_Model DOM], execute [https://en.wikipedia.org/wiki/JavaScript JavaScript] remotely.&lt;br /&gt;
&lt;br /&gt;
=Rust=&lt;br /&gt;
Rust&amp;lt;ref&amp;gt;https://en.wikipedia.org/wiki/Rust_(programming_language)&amp;lt;/ref&amp;gt; is a programming language developed by Mozilla. It is used to design concurrent and safe systems.&lt;br /&gt;
&lt;br /&gt;
=Environment Setup&amp;lt;ref&amp;gt;https://github.com/servo/servo&amp;lt;/ref&amp;gt;=&lt;br /&gt;
==Pre-requisites==&lt;br /&gt;
On Debian-based Linuxes:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install curl freeglut3-dev\&lt;br /&gt;
    libfreetype6-dev libgl1-mesa-dri libglib2.0-dev xorg-dev \&lt;br /&gt;
    gperf g++ cmake python-virtualenv python-pip \&lt;br /&gt;
    libssl-dev libbz2-dev libosmesa6-dev libxmu6 libxmu-dev libglu1-mesa-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Fedora:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dnf install curl freeglut-devel libtool gcc-c++ libXi-devel \&lt;br /&gt;
    freetype-devel mesa-libGL-devel glib2-devel libX11-devel libXrandr-devel gperf \&lt;br /&gt;
    fontconfig-devel cabextract ttmkfdir python python-virtualenv python-pip expat-devel \&lt;br /&gt;
    rpm-build openssl-devel cmake bzip2-devel libXcursor-devel libXmu-devel mesa-libOSMesa&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Cloning servo==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/servo/servo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Building Servo==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd servo&lt;br /&gt;
./mach build --dev&lt;br /&gt;
./mach run tests/html/about-mozilla.html&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Project Description&amp;lt;ref&amp;gt;https://github.com/servo/servo/wiki/CSS-parse-error-reporting&amp;lt;/ref&amp;gt;=&lt;br /&gt;
We will be adding the capability of exposing CSS errors to Servo. We will be using Firefox remote developer tools to inspect and debug the code in Servo.&lt;br /&gt;
==Program Flow==&lt;br /&gt;
*Ensure that Servo can compile and run the given tests. &lt;br /&gt;
*Choose a website that is compatible with Servo and attach the remote developer tools to it. &lt;br /&gt;
'''Initial steps'''&lt;br /&gt;
*Build Servo&lt;br /&gt;
*Attach remote developer tools&lt;br /&gt;
*Making initial changes and build Servo&lt;br /&gt;
*Generate CSS error messages&lt;br /&gt;
*Process error messages and retrieve cached messages&lt;br /&gt;
*Integrate and build again&lt;br /&gt;
'''Subsequent steps'''&lt;br /&gt;
*Generate messages which communicate the errors to the script thread. &lt;br /&gt;
*Process the messages and provide support for caching them and sending them to the devtools server if it exists. &lt;br /&gt;
*Provide the functionality to retrieve the cached CSS error messages whenever requested.&lt;br /&gt;
&lt;br /&gt;
=Design Pattern Used=&lt;br /&gt;
Model view controller design pattern and Interpreter design pattern is used in this project.&lt;br /&gt;
&lt;br /&gt;
[[File:dp1.jpg]]&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Gnaik2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015/oss_M1501_GSN&amp;diff=98620</id>
		<title>CSC/ECE 517 Fall 2015/oss M1501 GSN</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015/oss_M1501_GSN&amp;diff=98620"/>
		<updated>2015-11-07T01:34:36Z</updated>

		<summary type="html">&lt;p&gt;Gnaik2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''To Report CSS errors to the devtools, both stored and live.'''&lt;br /&gt;
[https://en.wikipedia.org/wiki/Cascading_Style_Sheets CSS] errors are reported to the [https://www.mozilla.org/en-US/firefox/new/ Firefox] developer tools in this project.&lt;br /&gt;
&lt;br /&gt;
=Important Notes=&lt;br /&gt;
&lt;br /&gt;
*This project is still under progress. Hence, it won't build.&lt;br /&gt;
&lt;br /&gt;
*We have spoken to Professor. Dr. Gehringer and he has granted us the permission to continue working on the project as it has been delayed due to certain circumstances which were beyond our control. However, he has asked us to share the following information with the reviewers:&lt;br /&gt;
&lt;br /&gt;
*The following is the excerpt from the conversation with Josh where he has stated that the task assigned to us was more complicated than it should have been. &lt;br /&gt;
&lt;br /&gt;
*This is a complex Mozilla project. The steps are not easy to implement. When we implemented the first step in the list of steps, we faced around 450 errors in the other files. &lt;br /&gt;
&lt;br /&gt;
*Since the project is applicable directly to servo and not to any side dependency such as unicode bidi or xml parser, any change we make causes a cascading chain of errors in different files. &lt;br /&gt;
&lt;br /&gt;
*Servo is a very large codebase and there is no documentation available to understand what each file or each piece of code is doing in Servo codebase. &lt;br /&gt;
&lt;br /&gt;
*We have also been constantly in touch and clarifying out doubts from the project manager Josh Matthews. &lt;br /&gt;
&lt;br /&gt;
*We have put in many hours and lot of efforts in this project to understand Servo, Rust and also to troubleshoot the errors. &lt;br /&gt;
&lt;br /&gt;
*Installing Rust on Windows systems was also a great challenge we faced and we spent a lot of hours on that as well in initial phase.&lt;br /&gt;
&lt;br /&gt;
*The following are the links to the gists that we have created for the errors that we have faced.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*The following are the links to the email conversations we have had with Josh. &lt;br /&gt;
&lt;br /&gt;
https://docs.google.com/a/ncsu.edu/document/d/1DYzMR1-y141uvKjrjYWRCfsXcDcJGftF_mlyGWMFv_A/edit?usp=sharing&lt;br /&gt;
&lt;br /&gt;
https://docs.google.com/a/ncsu.edu/document/d/1UMSZJHLv86-lmvlpYpyL6bALHWagg92z_iZeNnGC67M/edit?usp=sharing&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*The following are the links to the conversations with the dev servo mailing group&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/ivcoi2LnzIk&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/IckEvM6ACpE&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/qMGR1AZKJ1g&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/13foshI3GUI&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/eyloqocWcFU&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/eyloqocWcFU&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Since the initial steps are not yet complete so there was no point in creating the voiceover for the video. We have shown the changes that we have made so far in the video.  &lt;br /&gt;
&lt;br /&gt;
A few more important notes to help the reviewer:&lt;br /&gt;
&lt;br /&gt;
*Tests are not applicable to this project. &lt;br /&gt;
*Ruby style guide is not applicable to this project. &lt;br /&gt;
*Edge cases are not applicable to this project. &lt;br /&gt;
*There is no UI testing applicable to this project. &lt;br /&gt;
*The work that we have done is exactly as per the initial steps provided by the Mozilla team.&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
Servo&amp;lt;ref&amp;gt;https://en.wikipedia.org/wiki/Servo_(layout_engine)&amp;lt;/ref&amp;gt; is an experimental web browser layout engine. It is developed by Mozilla and written in Rust.It provides an [https://en.wikipedia.org/wiki/Application_programming_interface API] for hosting the engine within other software. The Servo browser currently provides developer tools to inspect [https://en.wikipedia.org/wiki/Document_Object_Model DOM], execute [https://en.wikipedia.org/wiki/JavaScript JavaScript] remotely.&lt;br /&gt;
&lt;br /&gt;
=Rust=&lt;br /&gt;
Rust&amp;lt;ref&amp;gt;https://en.wikipedia.org/wiki/Rust_(programming_language)&amp;lt;/ref&amp;gt; is a programming language developed by Mozilla. It is used to design concurrent and safe systems.&lt;br /&gt;
&lt;br /&gt;
=Environment Setup&amp;lt;ref&amp;gt;https://github.com/servo/servo&amp;lt;/ref&amp;gt;=&lt;br /&gt;
==Pre-requisites==&lt;br /&gt;
On Debian-based Linuxes:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install curl freeglut3-dev\&lt;br /&gt;
    libfreetype6-dev libgl1-mesa-dri libglib2.0-dev xorg-dev \&lt;br /&gt;
    gperf g++ cmake python-virtualenv python-pip \&lt;br /&gt;
    libssl-dev libbz2-dev libosmesa6-dev libxmu6 libxmu-dev libglu1-mesa-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Fedora:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dnf install curl freeglut-devel libtool gcc-c++ libXi-devel \&lt;br /&gt;
    freetype-devel mesa-libGL-devel glib2-devel libX11-devel libXrandr-devel gperf \&lt;br /&gt;
    fontconfig-devel cabextract ttmkfdir python python-virtualenv python-pip expat-devel \&lt;br /&gt;
    rpm-build openssl-devel cmake bzip2-devel libXcursor-devel libXmu-devel mesa-libOSMesa&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Cloning servo==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/servo/servo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Building Servo==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd servo&lt;br /&gt;
./mach build --dev&lt;br /&gt;
./mach run tests/html/about-mozilla.html&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Project Description&amp;lt;ref&amp;gt;https://github.com/servo/servo/wiki/CSS-parse-error-reporting&amp;lt;/ref&amp;gt;=&lt;br /&gt;
We will be adding the capability of exposing CSS errors to Servo. We will be using Firefox remote developer tools to inspect and debug the code in Servo.&lt;br /&gt;
==Program Flow==&lt;br /&gt;
*Ensure that Servo can compile and run the given tests. &lt;br /&gt;
*Choose a website that is compatible with Servo and attach the remote developer tools to it. &lt;br /&gt;
'''Initial steps'''&lt;br /&gt;
*Build Servo&lt;br /&gt;
*Attach remote developer tools&lt;br /&gt;
*Making initial changes and build Servo&lt;br /&gt;
*Generate CSS error messages&lt;br /&gt;
*Process error messages and retrieve cached messages&lt;br /&gt;
*Integrate and build again&lt;br /&gt;
'''Subsequent steps'''&lt;br /&gt;
*Generate messages which communicate the errors to the script thread. &lt;br /&gt;
*Process the messages and provide support for caching them and sending them to the devtools server if it exists. &lt;br /&gt;
*Provide the functionality to retrieve the cached CSS error messages whenever requested.&lt;br /&gt;
&lt;br /&gt;
=Design Pattern Used=&lt;br /&gt;
Model view controller design pattern and Interpreter design pattern is used in this project.&lt;br /&gt;
&lt;br /&gt;
[[File:dp1.jpg]]&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Gnaik2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015/oss_M1501_GSN&amp;diff=98619</id>
		<title>CSC/ECE 517 Fall 2015/oss M1501 GSN</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015/oss_M1501_GSN&amp;diff=98619"/>
		<updated>2015-11-07T01:33:57Z</updated>

		<summary type="html">&lt;p&gt;Gnaik2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''To Report CSS errors to the devtools, both stored and live.'''&lt;br /&gt;
[https://en.wikipedia.org/wiki/Cascading_Style_Sheets CSS] errors are reported to the [https://www.mozilla.org/en-US/firefox/new/ Firefox] developer tools in this project.&lt;br /&gt;
&lt;br /&gt;
=Important Notes=&lt;br /&gt;
&lt;br /&gt;
*This project is still under progress. Hence, it won't build.&lt;br /&gt;
&lt;br /&gt;
*We have spoken to Professor. Dr. Gehringer and he has granted us the permission to continue working on the project as it has been delayed due to certain circumstances which were beyond our control. However, he has asked us to share the following information with the reviewers:&lt;br /&gt;
&lt;br /&gt;
*The following is the excerpt from the conversation with Josh where he has stated that the task assigned to us was more complicated than it should have been. &lt;br /&gt;
&lt;br /&gt;
*This is a complex Mozilla project. The steps are not easy to implement. When we implemented the first step in the list of steps, we faced around 450 errors in the other files. &lt;br /&gt;
&lt;br /&gt;
*Since the project is applicable directly to servo and not to any side dependency such as unicode bidi or xml parser, any change we make causes a cascading chain of errors in different files. &lt;br /&gt;
&lt;br /&gt;
*Servo is a very large codebase and there is no documentation available to understand what each file or each piece of code is doing in Servo codebase. &lt;br /&gt;
&lt;br /&gt;
*We have also been constantly in touch and clarifying out doubts from the project manager Josh Matthews. &lt;br /&gt;
&lt;br /&gt;
*We have put in many hours and lot of efforts in this project to understand Servo, Rust and also to troubleshoot the errors. &lt;br /&gt;
&lt;br /&gt;
*Installing Rust on Windows systems was also a great challenge we faced and we spent a lot of hours on that as well in initial phase.&lt;br /&gt;
&lt;br /&gt;
*The following are the links to the gists that we have created for the errors that we have faced.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*The following are the links to the email conversations we have had with Josh. &lt;br /&gt;
&lt;br /&gt;
https://docs.google.com/a/ncsu.edu/document/d/1DYzMR1-y141uvKjrjYWRCfsXcDcJGftF_mlyGWMFv_A/edit?usp=sharing&lt;br /&gt;
&lt;br /&gt;
https://docs.google.com/a/ncsu.edu/document/d/1UMSZJHLv86-lmvlpYpyL6bALHWagg92z_iZeNnGC67M/edit?usp=sharing&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*The following are the links to the conversations with the dev servo mailing group&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/ivcoi2LnzIk&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/IckEvM6ACpE&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/qMGR1AZKJ1g&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/13foshI3GUI&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/eyloqocWcFU&lt;br /&gt;
&lt;br /&gt;
Since the initial steps are not yet complete so there was no point in creating the voiceover for the video. We have shown the changes that we have made so far in the video.  &lt;br /&gt;
&lt;br /&gt;
A few more important notes to help the reviewer:&lt;br /&gt;
&lt;br /&gt;
*Tests are not applicable to this project. &lt;br /&gt;
*Ruby style guide is not applicable to this project. &lt;br /&gt;
*Edge cases are not applicable to this project. &lt;br /&gt;
*There is no UI testing applicable to this project. &lt;br /&gt;
*The work that we have done is exactly as per the initial steps provided by the Mozilla team.&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
Servo&amp;lt;ref&amp;gt;https://en.wikipedia.org/wiki/Servo_(layout_engine)&amp;lt;/ref&amp;gt; is an experimental web browser layout engine. It is developed by Mozilla and written in Rust.It provides an [https://en.wikipedia.org/wiki/Application_programming_interface API] for hosting the engine within other software. The Servo browser currently provides developer tools to inspect [https://en.wikipedia.org/wiki/Document_Object_Model DOM], execute [https://en.wikipedia.org/wiki/JavaScript JavaScript] remotely.&lt;br /&gt;
&lt;br /&gt;
=Rust=&lt;br /&gt;
Rust&amp;lt;ref&amp;gt;https://en.wikipedia.org/wiki/Rust_(programming_language)&amp;lt;/ref&amp;gt; is a programming language developed by Mozilla. It is used to design concurrent and safe systems.&lt;br /&gt;
&lt;br /&gt;
=Environment Setup&amp;lt;ref&amp;gt;https://github.com/servo/servo&amp;lt;/ref&amp;gt;=&lt;br /&gt;
==Pre-requisites==&lt;br /&gt;
On Debian-based Linuxes:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install curl freeglut3-dev\&lt;br /&gt;
    libfreetype6-dev libgl1-mesa-dri libglib2.0-dev xorg-dev \&lt;br /&gt;
    gperf g++ cmake python-virtualenv python-pip \&lt;br /&gt;
    libssl-dev libbz2-dev libosmesa6-dev libxmu6 libxmu-dev libglu1-mesa-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Fedora:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dnf install curl freeglut-devel libtool gcc-c++ libXi-devel \&lt;br /&gt;
    freetype-devel mesa-libGL-devel glib2-devel libX11-devel libXrandr-devel gperf \&lt;br /&gt;
    fontconfig-devel cabextract ttmkfdir python python-virtualenv python-pip expat-devel \&lt;br /&gt;
    rpm-build openssl-devel cmake bzip2-devel libXcursor-devel libXmu-devel mesa-libOSMesa&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Cloning servo==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/servo/servo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Building Servo==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd servo&lt;br /&gt;
./mach build --dev&lt;br /&gt;
./mach run tests/html/about-mozilla.html&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Project Description&amp;lt;ref&amp;gt;https://github.com/servo/servo/wiki/CSS-parse-error-reporting&amp;lt;/ref&amp;gt;=&lt;br /&gt;
We will be adding the capability of exposing CSS errors to Servo. We will be using Firefox remote developer tools to inspect and debug the code in Servo.&lt;br /&gt;
==Program Flow==&lt;br /&gt;
*Ensure that Servo can compile and run the given tests. &lt;br /&gt;
*Choose a website that is compatible with Servo and attach the remote developer tools to it. &lt;br /&gt;
'''Initial steps'''&lt;br /&gt;
*Build Servo&lt;br /&gt;
*Attach remote developer tools&lt;br /&gt;
*Making initial changes and build Servo&lt;br /&gt;
*Generate CSS error messages&lt;br /&gt;
*Process error messages and retrieve cached messages&lt;br /&gt;
*Integrate and build again&lt;br /&gt;
'''Subsequent steps'''&lt;br /&gt;
*Generate messages which communicate the errors to the script thread. &lt;br /&gt;
*Process the messages and provide support for caching them and sending them to the devtools server if it exists. &lt;br /&gt;
*Provide the functionality to retrieve the cached CSS error messages whenever requested.&lt;br /&gt;
&lt;br /&gt;
=Design Pattern Used=&lt;br /&gt;
Model view controller design pattern and Interpreter design pattern is used in this project.&lt;br /&gt;
&lt;br /&gt;
[[File:dp1.jpg]]&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Gnaik2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015/oss_M1501_GSN&amp;diff=98618</id>
		<title>CSC/ECE 517 Fall 2015/oss M1501 GSN</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015/oss_M1501_GSN&amp;diff=98618"/>
		<updated>2015-11-07T01:33:34Z</updated>

		<summary type="html">&lt;p&gt;Gnaik2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''To Report CSS errors to the devtools, both stored and live.'''&lt;br /&gt;
[https://en.wikipedia.org/wiki/Cascading_Style_Sheets CSS] errors are reported to the [https://www.mozilla.org/en-US/firefox/new/ Firefox] developer tools in this project.&lt;br /&gt;
&lt;br /&gt;
=Important Notes=&lt;br /&gt;
&lt;br /&gt;
*This project is still under progress. Hence, it won't build.&lt;br /&gt;
&lt;br /&gt;
*We have spoken to Professor. Dr. Gehringer and he has granted us the permission to continue working on the project as it has been delayed due to certain circumstances which were beyond our control. However, he has asked us to share the following information with the reviewers:&lt;br /&gt;
&lt;br /&gt;
*The following is the excerpt from the conversation with Josh where he has stated that the task assigned to us was more complicated than it should have been. &lt;br /&gt;
&lt;br /&gt;
*This is a complex Mozilla project. The steps are not easy to implement. When we implemented the first step in the list of steps, we faced around 450 errors in the other files. &lt;br /&gt;
&lt;br /&gt;
*Since the project is applicable directly to servo and not to any side dependency such as unicode bidi or xml parser, any change we make causes a cascading chain of errors in different files. &lt;br /&gt;
&lt;br /&gt;
*Servo is a very large codebase and there is no documentation available to understand what each file or each piece of code is doing in Servo codebase. &lt;br /&gt;
&lt;br /&gt;
*We have also been constantly in touch and clarifying out doubts from the project manager Josh Matthews. &lt;br /&gt;
&lt;br /&gt;
*We have put in many hours and lot of efforts in this project to understand Servo, Rust and also to troubleshoot the errors. &lt;br /&gt;
&lt;br /&gt;
*Installing Rust on Windows systems was also a great challenge we faced and we spent a lot of hours on that as well in initial phase.&lt;br /&gt;
&lt;br /&gt;
*The following are the links to the gists that we have created for the errors that we have faced.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*The following are the links to the email conversations we have had with Josh. &lt;br /&gt;
&lt;br /&gt;
https://docs.google.com/a/ncsu.edu/document/d/1DYzMR1-y141uvKjrjYWRCfsXcDcJGftF_mlyGWMFv_A/edit?usp=sharing&lt;br /&gt;
&lt;br /&gt;
https://docs.google.com/a/ncsu.edu/document/d/1UMSZJHLv86-lmvlpYpyL6bALHWagg92z_iZeNnGC67M/edit?usp=sharing&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*The following are the links to the conversations with the dev servo mailing group&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/ivcoi2LnzIk&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/IckEvM6ACpE&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/qMGR1AZKJ1g&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/13foshI3GUI&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/eyloqocWcFU&lt;br /&gt;
&lt;br /&gt;
Since the initial steps are not yet complete there was no point in creating the voiceover for the video. We have shown the changes that we have made so far in the video.  &lt;br /&gt;
&lt;br /&gt;
A few more important notes to help the reviewer:&lt;br /&gt;
&lt;br /&gt;
*Tests are not applicable to this project. &lt;br /&gt;
*Ruby style guide is not applicable to this project. &lt;br /&gt;
*Edge cases are not applicable to this project. &lt;br /&gt;
*There is no UI testing applicable to this project. &lt;br /&gt;
*The work that we have done is exactly as per the initial steps provided by the Mozilla team.&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
Servo&amp;lt;ref&amp;gt;https://en.wikipedia.org/wiki/Servo_(layout_engine)&amp;lt;/ref&amp;gt; is an experimental web browser layout engine. It is developed by Mozilla and written in Rust.It provides an [https://en.wikipedia.org/wiki/Application_programming_interface API] for hosting the engine within other software. The Servo browser currently provides developer tools to inspect [https://en.wikipedia.org/wiki/Document_Object_Model DOM], execute [https://en.wikipedia.org/wiki/JavaScript JavaScript] remotely.&lt;br /&gt;
&lt;br /&gt;
=Rust=&lt;br /&gt;
Rust&amp;lt;ref&amp;gt;https://en.wikipedia.org/wiki/Rust_(programming_language)&amp;lt;/ref&amp;gt; is a programming language developed by Mozilla. It is used to design concurrent and safe systems.&lt;br /&gt;
&lt;br /&gt;
=Environment Setup&amp;lt;ref&amp;gt;https://github.com/servo/servo&amp;lt;/ref&amp;gt;=&lt;br /&gt;
==Pre-requisites==&lt;br /&gt;
On Debian-based Linuxes:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install curl freeglut3-dev\&lt;br /&gt;
    libfreetype6-dev libgl1-mesa-dri libglib2.0-dev xorg-dev \&lt;br /&gt;
    gperf g++ cmake python-virtualenv python-pip \&lt;br /&gt;
    libssl-dev libbz2-dev libosmesa6-dev libxmu6 libxmu-dev libglu1-mesa-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Fedora:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dnf install curl freeglut-devel libtool gcc-c++ libXi-devel \&lt;br /&gt;
    freetype-devel mesa-libGL-devel glib2-devel libX11-devel libXrandr-devel gperf \&lt;br /&gt;
    fontconfig-devel cabextract ttmkfdir python python-virtualenv python-pip expat-devel \&lt;br /&gt;
    rpm-build openssl-devel cmake bzip2-devel libXcursor-devel libXmu-devel mesa-libOSMesa&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Cloning servo==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/servo/servo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Building Servo==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd servo&lt;br /&gt;
./mach build --dev&lt;br /&gt;
./mach run tests/html/about-mozilla.html&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Project Description&amp;lt;ref&amp;gt;https://github.com/servo/servo/wiki/CSS-parse-error-reporting&amp;lt;/ref&amp;gt;=&lt;br /&gt;
We will be adding the capability of exposing CSS errors to Servo. We will be using Firefox remote developer tools to inspect and debug the code in Servo.&lt;br /&gt;
==Program Flow==&lt;br /&gt;
*Ensure that Servo can compile and run the given tests. &lt;br /&gt;
*Choose a website that is compatible with Servo and attach the remote developer tools to it. &lt;br /&gt;
'''Initial steps'''&lt;br /&gt;
*Build Servo&lt;br /&gt;
*Attach remote developer tools&lt;br /&gt;
*Making initial changes and build Servo&lt;br /&gt;
*Generate CSS error messages&lt;br /&gt;
*Process error messages and retrieve cached messages&lt;br /&gt;
*Integrate and build again&lt;br /&gt;
'''Subsequent steps'''&lt;br /&gt;
*Generate messages which communicate the errors to the script thread. &lt;br /&gt;
*Process the messages and provide support for caching them and sending them to the devtools server if it exists. &lt;br /&gt;
*Provide the functionality to retrieve the cached CSS error messages whenever requested.&lt;br /&gt;
&lt;br /&gt;
=Design Pattern Used=&lt;br /&gt;
Model view controller design pattern and Interpreter design pattern is used in this project.&lt;br /&gt;
&lt;br /&gt;
[[File:dp1.jpg]]&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Gnaik2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015/oss_M1501_GSN&amp;diff=98616</id>
		<title>CSC/ECE 517 Fall 2015/oss M1501 GSN</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015/oss_M1501_GSN&amp;diff=98616"/>
		<updated>2015-11-07T01:33:12Z</updated>

		<summary type="html">&lt;p&gt;Gnaik2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''To Report CSS errors to the devtools, both stored and live.'''&lt;br /&gt;
[https://en.wikipedia.org/wiki/Cascading_Style_Sheets CSS] errors are reported to the [https://www.mozilla.org/en-US/firefox/new/ Firefox] developer tools in this project.&lt;br /&gt;
&lt;br /&gt;
=Important Notes=&lt;br /&gt;
&lt;br /&gt;
*This project is still under progress. Hence, it won't build.&lt;br /&gt;
&lt;br /&gt;
*We have spoken to Professor. Dr. Gehringer and he has granted us the permission to continue working on the project as it has been delayed due to certain circumstances which were beyond our control. However, he has asked us to share the following information with the reviewers:&lt;br /&gt;
&lt;br /&gt;
*The following is the excerpt from the conversation with Josh where he has stated that the task assigned to us was more complicated than it should have been. &lt;br /&gt;
&lt;br /&gt;
*This is a complex Mozilla project. The steps are not easy to implement. When we implemented the first step in the list of steps, we faced around 450 errors in the other files. &lt;br /&gt;
&lt;br /&gt;
*Since the project is applicable directly to servo and not to any side dependency such as unicode bidi or xml parser, any change we make causes a cascading chain of errors in different files. &lt;br /&gt;
&lt;br /&gt;
*Servo is a very large codebase and there is no documentation available to understand what each file or each piece of code is doing in Servo codebase. &lt;br /&gt;
&lt;br /&gt;
*We have also been constantly in touch and clarifying out doubts from the project manager Josh Matthews. &lt;br /&gt;
&lt;br /&gt;
*We have put in many hours and lot of efforts in this project to understand Servo, Rust and also to troubleshoot the errors. &lt;br /&gt;
&lt;br /&gt;
*Installing Rust on Windows systems was also a great challenge we faced and we spent a lot of hours on that as well in initial phase.&lt;br /&gt;
&lt;br /&gt;
*The following are the links to the gists that we have created for the errors that we have faced.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*The following are the links to the email conversations we have had with Josh. &lt;br /&gt;
&lt;br /&gt;
https://docs.google.com/a/ncsu.edu/document/d/1DYzMR1-y141uvKjrjYWRCfsXcDcJGftF_mlyGWMFv_A/edit?usp=sharing&lt;br /&gt;
&lt;br /&gt;
https://docs.google.com/a/ncsu.edu/document/d/1UMSZJHLv86-lmvlpYpyL6bALHWagg92z_iZeNnGC67M/edit?usp=sharing&lt;br /&gt;
&lt;br /&gt;
*The following are the links to the conversations with the dev servo mailing group&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/ivcoi2LnzIk&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/IckEvM6ACpE&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/qMGR1AZKJ1g&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/13foshI3GUI&lt;br /&gt;
&lt;br /&gt;
https://groups.google.com/forum/#!topic/mozilla.dev.servo/eyloqocWcFU&lt;br /&gt;
&lt;br /&gt;
Since the initial steps are not yet complete there was no point in creating the voiceover for the video. We have shown the changes that we have made so far in the video.  &lt;br /&gt;
&lt;br /&gt;
A few more important notes to help the reviewer:&lt;br /&gt;
&lt;br /&gt;
*Tests are not applicable to this project. &lt;br /&gt;
*Ruby style guide is not applicable to this project. &lt;br /&gt;
*Edge cases are not applicable to this project. &lt;br /&gt;
*There is no UI testing applicable to this project. &lt;br /&gt;
*The work that we have done is exactly as per the initial steps provided by the Mozilla team.&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
Servo&amp;lt;ref&amp;gt;https://en.wikipedia.org/wiki/Servo_(layout_engine)&amp;lt;/ref&amp;gt; is an experimental web browser layout engine. It is developed by Mozilla and written in Rust.It provides an [https://en.wikipedia.org/wiki/Application_programming_interface API] for hosting the engine within other software. The Servo browser currently provides developer tools to inspect [https://en.wikipedia.org/wiki/Document_Object_Model DOM], execute [https://en.wikipedia.org/wiki/JavaScript JavaScript] remotely.&lt;br /&gt;
&lt;br /&gt;
=Rust=&lt;br /&gt;
Rust&amp;lt;ref&amp;gt;https://en.wikipedia.org/wiki/Rust_(programming_language)&amp;lt;/ref&amp;gt; is a programming language developed by Mozilla. It is used to design concurrent and safe systems.&lt;br /&gt;
&lt;br /&gt;
=Environment Setup&amp;lt;ref&amp;gt;https://github.com/servo/servo&amp;lt;/ref&amp;gt;=&lt;br /&gt;
==Pre-requisites==&lt;br /&gt;
On Debian-based Linuxes:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install curl freeglut3-dev\&lt;br /&gt;
    libfreetype6-dev libgl1-mesa-dri libglib2.0-dev xorg-dev \&lt;br /&gt;
    gperf g++ cmake python-virtualenv python-pip \&lt;br /&gt;
    libssl-dev libbz2-dev libosmesa6-dev libxmu6 libxmu-dev libglu1-mesa-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Fedora:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dnf install curl freeglut-devel libtool gcc-c++ libXi-devel \&lt;br /&gt;
    freetype-devel mesa-libGL-devel glib2-devel libX11-devel libXrandr-devel gperf \&lt;br /&gt;
    fontconfig-devel cabextract ttmkfdir python python-virtualenv python-pip expat-devel \&lt;br /&gt;
    rpm-build openssl-devel cmake bzip2-devel libXcursor-devel libXmu-devel mesa-libOSMesa&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Cloning servo==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/servo/servo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Building Servo==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd servo&lt;br /&gt;
./mach build --dev&lt;br /&gt;
./mach run tests/html/about-mozilla.html&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Project Description&amp;lt;ref&amp;gt;https://github.com/servo/servo/wiki/CSS-parse-error-reporting&amp;lt;/ref&amp;gt;=&lt;br /&gt;
We will be adding the capability of exposing CSS errors to Servo. We will be using Firefox remote developer tools to inspect and debug the code in Servo.&lt;br /&gt;
==Program Flow==&lt;br /&gt;
*Ensure that Servo can compile and run the given tests. &lt;br /&gt;
*Choose a website that is compatible with Servo and attach the remote developer tools to it. &lt;br /&gt;
'''Initial steps'''&lt;br /&gt;
*Build Servo&lt;br /&gt;
*Attach remote developer tools&lt;br /&gt;
*Making initial changes and build Servo&lt;br /&gt;
*Generate CSS error messages&lt;br /&gt;
*Process error messages and retrieve cached messages&lt;br /&gt;
*Integrate and build again&lt;br /&gt;
'''Subsequent steps'''&lt;br /&gt;
*Generate messages which communicate the errors to the script thread. &lt;br /&gt;
*Process the messages and provide support for caching them and sending them to the devtools server if it exists. &lt;br /&gt;
*Provide the functionality to retrieve the cached CSS error messages whenever requested.&lt;br /&gt;
&lt;br /&gt;
=Design Pattern Used=&lt;br /&gt;
Model view controller design pattern and Interpreter design pattern is used in this project.&lt;br /&gt;
&lt;br /&gt;
[[File:dp1.jpg]]&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Gnaik2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015/oss_M1501_GSN&amp;diff=98613</id>
		<title>CSC/ECE 517 Fall 2015/oss M1501 GSN</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015/oss_M1501_GSN&amp;diff=98613"/>
		<updated>2015-11-07T01:30:41Z</updated>

		<summary type="html">&lt;p&gt;Gnaik2: /* Important Notes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''To Report CSS errors to the devtools, both stored and live.'''&lt;br /&gt;
[https://en.wikipedia.org/wiki/Cascading_Style_Sheets CSS] errors are reported to the [https://www.mozilla.org/en-US/firefox/new/ Firefox] developer tools in this project.&lt;br /&gt;
&lt;br /&gt;
=Important Notes=&lt;br /&gt;
&lt;br /&gt;
*This project is still under progress. Hence, it won't build.&lt;br /&gt;
&lt;br /&gt;
*We have spoken to Professor. Dr. Gehringer and he has granted us the permission to continue working on the project as it has been delayed due to certain circumstances which were beyond our control. However, he has asked us to share the following information with the reviewers:&lt;br /&gt;
&lt;br /&gt;
*The following is the excerpt from the conversation with Josh where he has stated that the task assigned to us was more complicated than it should have been. &lt;br /&gt;
&lt;br /&gt;
*This is a complex Mozilla project. The steps are not easy to implement. When we implemented the first step in the list of steps, we faced around 450 errors in the other files. &lt;br /&gt;
&lt;br /&gt;
*Since the project is applicable directly to servo and not to any side dependency such as unicode bidi or xml parser, any change we make causes a cascading chain of errors in different files. &lt;br /&gt;
&lt;br /&gt;
*Servo is a very large codebase and there is no documentation available to understand what each file or each piece of code is doing in Servo codebase. &lt;br /&gt;
&lt;br /&gt;
*We have also been constantly in touch and clarifying out doubts from the project manager Josh Matthews. &lt;br /&gt;
&lt;br /&gt;
*We have put in many hours and lot of efforts in this project to understand Servo, Rust and also to troubleshoot the errors. &lt;br /&gt;
&lt;br /&gt;
*The following are the links to the gists that we have created for the errors that we have faced.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*The following are the links to the email conversations we have had with Josh. &lt;br /&gt;
&lt;br /&gt;
https://docs.google.com/a/ncsu.edu/document/d/1DYzMR1-y141uvKjrjYWRCfsXcDcJGftF_mlyGWMFv_A/edit?usp=sharing&lt;br /&gt;
&lt;br /&gt;
https://docs.google.com/a/ncsu.edu/document/d/1UMSZJHLv86-lmvlpYpyL6bALHWagg92z_iZeNnGC67M/edit?usp=sharing&lt;br /&gt;
&lt;br /&gt;
*The following are the links to the conversations with the dev servo mailing group&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Since the initial steps are not yet complete there was no point in creating the voiceover for the video. We have shown the changes that we have made so far in the video.  &lt;br /&gt;
&lt;br /&gt;
A few more important notes to help the reviewer:&lt;br /&gt;
&lt;br /&gt;
*Tests are not applicable to this project. &lt;br /&gt;
*Ruby style guide is not applicable to this project. &lt;br /&gt;
*Edge cases are not applicable to this project. &lt;br /&gt;
*There is no UI testing applicable to this project. &lt;br /&gt;
*The work that we have done is exactly as per the initial steps provided by the Mozilla team.&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
Servo&amp;lt;ref&amp;gt;https://en.wikipedia.org/wiki/Servo_(layout_engine)&amp;lt;/ref&amp;gt; is an experimental web browser layout engine. It is developed by Mozilla and written in Rust.It provides an [https://en.wikipedia.org/wiki/Application_programming_interface API] for hosting the engine within other software. The Servo browser currently provides developer tools to inspect [https://en.wikipedia.org/wiki/Document_Object_Model DOM], execute [https://en.wikipedia.org/wiki/JavaScript JavaScript] remotely.&lt;br /&gt;
&lt;br /&gt;
=Rust=&lt;br /&gt;
Rust&amp;lt;ref&amp;gt;https://en.wikipedia.org/wiki/Rust_(programming_language)&amp;lt;/ref&amp;gt; is a programming language developed by Mozilla. It is used to design concurrent and safe systems.&lt;br /&gt;
&lt;br /&gt;
=Environment Setup&amp;lt;ref&amp;gt;https://github.com/servo/servo&amp;lt;/ref&amp;gt;=&lt;br /&gt;
==Pre-requisites==&lt;br /&gt;
On Debian-based Linuxes:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install curl freeglut3-dev\&lt;br /&gt;
    libfreetype6-dev libgl1-mesa-dri libglib2.0-dev xorg-dev \&lt;br /&gt;
    gperf g++ cmake python-virtualenv python-pip \&lt;br /&gt;
    libssl-dev libbz2-dev libosmesa6-dev libxmu6 libxmu-dev libglu1-mesa-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Fedora:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dnf install curl freeglut-devel libtool gcc-c++ libXi-devel \&lt;br /&gt;
    freetype-devel mesa-libGL-devel glib2-devel libX11-devel libXrandr-devel gperf \&lt;br /&gt;
    fontconfig-devel cabextract ttmkfdir python python-virtualenv python-pip expat-devel \&lt;br /&gt;
    rpm-build openssl-devel cmake bzip2-devel libXcursor-devel libXmu-devel mesa-libOSMesa&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Cloning servo==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/servo/servo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Building Servo==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd servo&lt;br /&gt;
./mach build --dev&lt;br /&gt;
./mach run tests/html/about-mozilla.html&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Project Description&amp;lt;ref&amp;gt;https://github.com/servo/servo/wiki/CSS-parse-error-reporting&amp;lt;/ref&amp;gt;=&lt;br /&gt;
We will be adding the capability of exposing CSS errors to Servo. We will be using Firefox remote developer tools to inspect and debug the code in Servo.&lt;br /&gt;
==Program Flow==&lt;br /&gt;
*Ensure that Servo can compile and run the given tests. &lt;br /&gt;
*Choose a website that is compatible with Servo and attach the remote developer tools to it. &lt;br /&gt;
'''Initial steps'''&lt;br /&gt;
*Build Servo&lt;br /&gt;
*Attach remote developer tools&lt;br /&gt;
*Making initial changes and build Servo&lt;br /&gt;
*Generate CSS error messages&lt;br /&gt;
*Process error messages and retrieve cached messages&lt;br /&gt;
*Integrate and build again&lt;br /&gt;
'''Subsequent steps'''&lt;br /&gt;
*Generate messages which communicate the errors to the script thread. &lt;br /&gt;
*Process the messages and provide support for caching them and sending them to the devtools server if it exists. &lt;br /&gt;
*Provide the functionality to retrieve the cached CSS error messages whenever requested.&lt;br /&gt;
&lt;br /&gt;
=Design Pattern Used=&lt;br /&gt;
Model view controller design pattern and Interpreter design pattern is used in this project.&lt;br /&gt;
&lt;br /&gt;
[[File:dp1.jpg]]&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Gnaik2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015/oss_M1501_GSN&amp;diff=98609</id>
		<title>CSC/ECE 517 Fall 2015/oss M1501 GSN</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015/oss_M1501_GSN&amp;diff=98609"/>
		<updated>2015-11-07T01:29:40Z</updated>

		<summary type="html">&lt;p&gt;Gnaik2: /* Important Notes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''To Report CSS errors to the devtools, both stored and live.'''&lt;br /&gt;
[https://en.wikipedia.org/wiki/Cascading_Style_Sheets CSS] errors are reported to the [https://www.mozilla.org/en-US/firefox/new/ Firefox] developer tools in this project.&lt;br /&gt;
&lt;br /&gt;
=Important Notes=&lt;br /&gt;
&lt;br /&gt;
*This project is still under progress. Hence, it won't build.&lt;br /&gt;
&lt;br /&gt;
*We have spoken to Professor. Dr. Gehringer and he has granted us the permission to continue working on the project as it has been delayed due to certain circumstances which were beyond our control. However, he has asked us to share the following information with the reviewers:&lt;br /&gt;
&lt;br /&gt;
*The following is the excerpt from the conversation with Josh where he has stated that the task assigned to us was more complicated than it should have been. &lt;br /&gt;
&lt;br /&gt;
*This is a complex Mozilla project. The steps are not easy to implement. When we implemented the first step in the list of steps, we faced around 450 errors in the other files. &lt;br /&gt;
&lt;br /&gt;
*Since the project is applicable directly to servo and not to any side dependency such as unicode bidi or xml parser, any change we make causes a cascading chain of errors in different files. &lt;br /&gt;
&lt;br /&gt;
*Servo is a very large codebase and there is no documentation available to understand what each file or each piece of code is doing in Servo codebase. &lt;br /&gt;
&lt;br /&gt;
*We have also been constantly in touch and clarifying out doubts from the project manager Josh Matthews. &lt;br /&gt;
&lt;br /&gt;
*We have put in many hours and lot of efforts in this project to understand Servo, Rust and also to troubleshoot the errors. &lt;br /&gt;
&lt;br /&gt;
*The following are the links to the gists that we have created for the errors that we have faced.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*The following are the links to the email conversations we have had with Josh. &lt;br /&gt;
&lt;br /&gt;
https://docs.google.com/a/ncsu.edu/document/d/1DYzMR1-y141uvKjrjYWRCfsXcDcJGftF_mlyGWMFv_A/edit?usp=sharing&lt;br /&gt;
&lt;br /&gt;
https://docs.google.com/a/ncsu.edu/document/d/1UMSZJHLv86-lmvlpYpyL6bALHWagg92z_iZeNnGC67M/edit?usp=sharing&lt;br /&gt;
&lt;br /&gt;
Since the initial steps are not yet complete there was no point in creating the voiceover for the video. We have shown the changes that we have made so far in the video.  &lt;br /&gt;
&lt;br /&gt;
A few more important notes to help the reviewer:&lt;br /&gt;
&lt;br /&gt;
*Tests are not applicable to this project. &lt;br /&gt;
*Ruby style guide is not applicable to this project. &lt;br /&gt;
*Edge cases are not applicable to this project. &lt;br /&gt;
*There is no UI testing applicable to this project. &lt;br /&gt;
*The work that we have done is exactly as per the initial steps provided by the Mozilla team.&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
Servo&amp;lt;ref&amp;gt;https://en.wikipedia.org/wiki/Servo_(layout_engine)&amp;lt;/ref&amp;gt; is an experimental web browser layout engine. It is developed by Mozilla and written in Rust.It provides an [https://en.wikipedia.org/wiki/Application_programming_interface API] for hosting the engine within other software. The Servo browser currently provides developer tools to inspect [https://en.wikipedia.org/wiki/Document_Object_Model DOM], execute [https://en.wikipedia.org/wiki/JavaScript JavaScript] remotely.&lt;br /&gt;
&lt;br /&gt;
=Rust=&lt;br /&gt;
Rust&amp;lt;ref&amp;gt;https://en.wikipedia.org/wiki/Rust_(programming_language)&amp;lt;/ref&amp;gt; is a programming language developed by Mozilla. It is used to design concurrent and safe systems.&lt;br /&gt;
&lt;br /&gt;
=Environment Setup&amp;lt;ref&amp;gt;https://github.com/servo/servo&amp;lt;/ref&amp;gt;=&lt;br /&gt;
==Pre-requisites==&lt;br /&gt;
On Debian-based Linuxes:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install curl freeglut3-dev\&lt;br /&gt;
    libfreetype6-dev libgl1-mesa-dri libglib2.0-dev xorg-dev \&lt;br /&gt;
    gperf g++ cmake python-virtualenv python-pip \&lt;br /&gt;
    libssl-dev libbz2-dev libosmesa6-dev libxmu6 libxmu-dev libglu1-mesa-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Fedora:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dnf install curl freeglut-devel libtool gcc-c++ libXi-devel \&lt;br /&gt;
    freetype-devel mesa-libGL-devel glib2-devel libX11-devel libXrandr-devel gperf \&lt;br /&gt;
    fontconfig-devel cabextract ttmkfdir python python-virtualenv python-pip expat-devel \&lt;br /&gt;
    rpm-build openssl-devel cmake bzip2-devel libXcursor-devel libXmu-devel mesa-libOSMesa&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Cloning servo==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/servo/servo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Building Servo==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd servo&lt;br /&gt;
./mach build --dev&lt;br /&gt;
./mach run tests/html/about-mozilla.html&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Project Description&amp;lt;ref&amp;gt;https://github.com/servo/servo/wiki/CSS-parse-error-reporting&amp;lt;/ref&amp;gt;=&lt;br /&gt;
We will be adding the capability of exposing CSS errors to Servo. We will be using Firefox remote developer tools to inspect and debug the code in Servo.&lt;br /&gt;
==Program Flow==&lt;br /&gt;
*Ensure that Servo can compile and run the given tests. &lt;br /&gt;
*Choose a website that is compatible with Servo and attach the remote developer tools to it. &lt;br /&gt;
'''Initial steps'''&lt;br /&gt;
*Build Servo&lt;br /&gt;
*Attach remote developer tools&lt;br /&gt;
*Making initial changes and build Servo&lt;br /&gt;
*Generate CSS error messages&lt;br /&gt;
*Process error messages and retrieve cached messages&lt;br /&gt;
*Integrate and build again&lt;br /&gt;
'''Subsequent steps'''&lt;br /&gt;
*Generate messages which communicate the errors to the script thread. &lt;br /&gt;
*Process the messages and provide support for caching them and sending them to the devtools server if it exists. &lt;br /&gt;
*Provide the functionality to retrieve the cached CSS error messages whenever requested.&lt;br /&gt;
&lt;br /&gt;
=Design Pattern Used=&lt;br /&gt;
Model view controller design pattern and Interpreter design pattern is used in this project.&lt;br /&gt;
&lt;br /&gt;
[[File:dp1.jpg]]&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Gnaik2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015/oss_M1501_GSN&amp;diff=98599</id>
		<title>CSC/ECE 517 Fall 2015/oss M1501 GSN</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015/oss_M1501_GSN&amp;diff=98599"/>
		<updated>2015-11-07T01:23:39Z</updated>

		<summary type="html">&lt;p&gt;Gnaik2: /* Important Notes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''To Report CSS errors to the devtools, both stored and live.'''&lt;br /&gt;
[https://en.wikipedia.org/wiki/Cascading_Style_Sheets CSS] errors are reported to the [https://www.mozilla.org/en-US/firefox/new/ Firefox] developer tools in this project.&lt;br /&gt;
&lt;br /&gt;
=Important Notes=&lt;br /&gt;
&lt;br /&gt;
This project is still under progress. Hence, it won't build.&lt;br /&gt;
&lt;br /&gt;
We have spoken to Professor. Dr. Gehringer and he has granted us the permission to continue working on the project as it has been delayed due to certain circumstances which were beyond our control. However, he has asked us to share the following information with the reviewers:&lt;br /&gt;
&lt;br /&gt;
The following is the excerpt from the conversation with Josh where he has stated that the task assigned to us was more complicated than it should have been. &lt;br /&gt;
&lt;br /&gt;
This is a complex Mozilla project. The steps are not easy to implement. When we implemented the first step in the list of steps, we faced around 450 errors in the other files. &lt;br /&gt;
&lt;br /&gt;
Since the project is applicable directly to servo and not to any side dependency such as unicode bidi or xml parser, any change we make causes a cascading chain of errors in different files. &lt;br /&gt;
&lt;br /&gt;
Servo is a very large codebase and there is no documentation available to understand what each file or each piece of code is doing in Servo codebase. &lt;br /&gt;
&lt;br /&gt;
We have also been constantly in touch and clarifying out doubts from the project manager Josh Matthews. &lt;br /&gt;
&lt;br /&gt;
We have put in many hours in this project to troubleshoot the errors. &lt;br /&gt;
&lt;br /&gt;
The following are the links to the gists that we have created for the errors that we have faced.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following are the links to the email conversations we have had with Josh. &lt;br /&gt;
&lt;br /&gt;
https://docs.google.com/a/ncsu.edu/document/d/1DYzMR1-y141uvKjrjYWRCfsXcDcJGftF_mlyGWMFv_A/edit?usp=sharing&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Since the initial steps are not yet complete there was no point in creating the voiceover for the video. We have shown the changes that we have made so far in the video.  &lt;br /&gt;
&lt;br /&gt;
A few important notes to help the reviewer:&lt;br /&gt;
&lt;br /&gt;
*Tests are not applicable to this project. &lt;br /&gt;
*Ruby style guide is not applicable to this project. &lt;br /&gt;
*Edge cases are not applicable to this project. &lt;br /&gt;
*There is no UI testing applicable to this project. &lt;br /&gt;
*The work that we have done is exactly as per the initial steps provided by the Mozilla team.&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
Servo&amp;lt;ref&amp;gt;https://en.wikipedia.org/wiki/Servo_(layout_engine)&amp;lt;/ref&amp;gt; is an experimental web browser layout engine. It is developed by Mozilla and written in Rust.It provides an [https://en.wikipedia.org/wiki/Application_programming_interface API] for hosting the engine within other software. The Servo browser currently provides developer tools to inspect [https://en.wikipedia.org/wiki/Document_Object_Model DOM], execute [https://en.wikipedia.org/wiki/JavaScript JavaScript] remotely.&lt;br /&gt;
&lt;br /&gt;
=Rust=&lt;br /&gt;
Rust&amp;lt;ref&amp;gt;https://en.wikipedia.org/wiki/Rust_(programming_language)&amp;lt;/ref&amp;gt; is a programming language developed by Mozilla. It is used to design concurrent and safe systems.&lt;br /&gt;
&lt;br /&gt;
=Environment Setup&amp;lt;ref&amp;gt;https://github.com/servo/servo&amp;lt;/ref&amp;gt;=&lt;br /&gt;
==Pre-requisites==&lt;br /&gt;
On Debian-based Linuxes:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install curl freeglut3-dev\&lt;br /&gt;
    libfreetype6-dev libgl1-mesa-dri libglib2.0-dev xorg-dev \&lt;br /&gt;
    gperf g++ cmake python-virtualenv python-pip \&lt;br /&gt;
    libssl-dev libbz2-dev libosmesa6-dev libxmu6 libxmu-dev libglu1-mesa-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Fedora:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dnf install curl freeglut-devel libtool gcc-c++ libXi-devel \&lt;br /&gt;
    freetype-devel mesa-libGL-devel glib2-devel libX11-devel libXrandr-devel gperf \&lt;br /&gt;
    fontconfig-devel cabextract ttmkfdir python python-virtualenv python-pip expat-devel \&lt;br /&gt;
    rpm-build openssl-devel cmake bzip2-devel libXcursor-devel libXmu-devel mesa-libOSMesa&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Cloning servo==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/servo/servo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Building Servo==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd servo&lt;br /&gt;
./mach build --dev&lt;br /&gt;
./mach run tests/html/about-mozilla.html&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Project Description&amp;lt;ref&amp;gt;https://github.com/servo/servo/wiki/CSS-parse-error-reporting&amp;lt;/ref&amp;gt;=&lt;br /&gt;
We will be adding the capability of exposing CSS errors to Servo. We will be using Firefox remote developer tools to inspect and debug the code in Servo.&lt;br /&gt;
==Program Flow==&lt;br /&gt;
*Ensure that Servo can compile and run the given tests. &lt;br /&gt;
*Choose a website that is compatible with Servo and attach the remote developer tools to it. &lt;br /&gt;
'''Initial steps'''&lt;br /&gt;
*Build Servo&lt;br /&gt;
*Attach remote developer tools&lt;br /&gt;
*Making initial changes and build Servo&lt;br /&gt;
*Generate CSS error messages&lt;br /&gt;
*Process error messages and retrieve cached messages&lt;br /&gt;
*Integrate and build again&lt;br /&gt;
'''Subsequent steps'''&lt;br /&gt;
*Generate messages which communicate the errors to the script thread. &lt;br /&gt;
*Process the messages and provide support for caching them and sending them to the devtools server if it exists. &lt;br /&gt;
*Provide the functionality to retrieve the cached CSS error messages whenever requested.&lt;br /&gt;
&lt;br /&gt;
=Design Pattern Used=&lt;br /&gt;
Model view controller design pattern and Interpreter design pattern is used in this project.&lt;br /&gt;
&lt;br /&gt;
[[File:dp1.jpg]]&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Gnaik2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015/oss_M1501_GSN&amp;diff=98590</id>
		<title>CSC/ECE 517 Fall 2015/oss M1501 GSN</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015/oss_M1501_GSN&amp;diff=98590"/>
		<updated>2015-11-07T01:17:23Z</updated>

		<summary type="html">&lt;p&gt;Gnaik2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''To Report CSS errors to the devtools, both stored and live.'''&lt;br /&gt;
[https://en.wikipedia.org/wiki/Cascading_Style_Sheets CSS] errors are reported to the [https://www.mozilla.org/en-US/firefox/new/ Firefox] developer tools in this project.&lt;br /&gt;
&lt;br /&gt;
=Important Notes=&lt;br /&gt;
&lt;br /&gt;
This project is still under progress. Hence, it won't build.&lt;br /&gt;
&lt;br /&gt;
We have spoken to Professor. Dr. Gehringer and he has granted us the permission to continue working on the project as it has been delayed due to certain circumstances which were beyond our control. However, he has asked us to share the following information with the reviewers:&lt;br /&gt;
&lt;br /&gt;
The following is the excerpt from the conversation with Josh where he has stated that the task assigned to us was more complicated than it should have been. &lt;br /&gt;
&lt;br /&gt;
This is a complex Mozilla project. The steps are not easy to implement. When we implemented the first step in the list of steps, we faced around 450 errors in the other files. &lt;br /&gt;
&lt;br /&gt;
Since the project is applicable directly to servo and not to any side dependency such as unicode bidi or xml parser, any change we make causes a cascading chain of errors in different files. &lt;br /&gt;
&lt;br /&gt;
Servo is a very large codebase and there is no documentation available to understand what each file or each piece of code is doing in Servo codebase. &lt;br /&gt;
&lt;br /&gt;
We have also been constantly in touch and clarifying out doubts from the project manager Josh Matthews. &lt;br /&gt;
&lt;br /&gt;
We have put in many hours in this project to troubleshoot the errors. &lt;br /&gt;
&lt;br /&gt;
The following are the links to the gists that we have created for the errors that we have faced.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following are the links to the email conversations we have had with Josh. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Since the initial steps are not yet complete there was no point in creating the voiceover for the video. We have shown the changes that we have made so far in the video.  &lt;br /&gt;
&lt;br /&gt;
A few important notes to help the reviewer:&lt;br /&gt;
&lt;br /&gt;
*Tests are not applicable to this project. &lt;br /&gt;
*Ruby style guide is not applicable to this project. &lt;br /&gt;
*Edge cases are not applicable to this project. &lt;br /&gt;
*There is no UI testing applicable to this project. &lt;br /&gt;
*The work that we have done is exactly as per the initial steps provided by the Mozilla team.&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
Servo&amp;lt;ref&amp;gt;https://en.wikipedia.org/wiki/Servo_(layout_engine)&amp;lt;/ref&amp;gt; is an experimental web browser layout engine. It is developed by Mozilla and written in Rust.It provides an [https://en.wikipedia.org/wiki/Application_programming_interface API] for hosting the engine within other software. The Servo browser currently provides developer tools to inspect [https://en.wikipedia.org/wiki/Document_Object_Model DOM], execute [https://en.wikipedia.org/wiki/JavaScript JavaScript] remotely.&lt;br /&gt;
&lt;br /&gt;
=Rust=&lt;br /&gt;
Rust&amp;lt;ref&amp;gt;https://en.wikipedia.org/wiki/Rust_(programming_language)&amp;lt;/ref&amp;gt; is a programming language developed by Mozilla. It is used to design concurrent and safe systems.&lt;br /&gt;
&lt;br /&gt;
=Environment Setup&amp;lt;ref&amp;gt;https://github.com/servo/servo&amp;lt;/ref&amp;gt;=&lt;br /&gt;
==Pre-requisites==&lt;br /&gt;
On Debian-based Linuxes:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install curl freeglut3-dev\&lt;br /&gt;
    libfreetype6-dev libgl1-mesa-dri libglib2.0-dev xorg-dev \&lt;br /&gt;
    gperf g++ cmake python-virtualenv python-pip \&lt;br /&gt;
    libssl-dev libbz2-dev libosmesa6-dev libxmu6 libxmu-dev libglu1-mesa-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Fedora:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dnf install curl freeglut-devel libtool gcc-c++ libXi-devel \&lt;br /&gt;
    freetype-devel mesa-libGL-devel glib2-devel libX11-devel libXrandr-devel gperf \&lt;br /&gt;
    fontconfig-devel cabextract ttmkfdir python python-virtualenv python-pip expat-devel \&lt;br /&gt;
    rpm-build openssl-devel cmake bzip2-devel libXcursor-devel libXmu-devel mesa-libOSMesa&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Cloning servo==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/servo/servo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Building Servo==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd servo&lt;br /&gt;
./mach build --dev&lt;br /&gt;
./mach run tests/html/about-mozilla.html&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Project Description&amp;lt;ref&amp;gt;https://github.com/servo/servo/wiki/CSS-parse-error-reporting&amp;lt;/ref&amp;gt;=&lt;br /&gt;
We will be adding the capability of exposing CSS errors to Servo. We will be using Firefox remote developer tools to inspect and debug the code in Servo.&lt;br /&gt;
==Program Flow==&lt;br /&gt;
*Ensure that Servo can compile and run the given tests. &lt;br /&gt;
*Choose a website that is compatible with Servo and attach the remote developer tools to it. &lt;br /&gt;
'''Initial steps'''&lt;br /&gt;
*Build Servo&lt;br /&gt;
*Attach remote developer tools&lt;br /&gt;
*Making initial changes and build Servo&lt;br /&gt;
*Generate CSS error messages&lt;br /&gt;
*Process error messages and retrieve cached messages&lt;br /&gt;
*Integrate and build again&lt;br /&gt;
'''Subsequent steps'''&lt;br /&gt;
*Generate messages which communicate the errors to the script thread. &lt;br /&gt;
*Process the messages and provide support for caching them and sending them to the devtools server if it exists. &lt;br /&gt;
*Provide the functionality to retrieve the cached CSS error messages whenever requested.&lt;br /&gt;
&lt;br /&gt;
=Design Pattern Used=&lt;br /&gt;
Model view controller design pattern and Interpreter design pattern is used in this project.&lt;br /&gt;
&lt;br /&gt;
[[File:dp1.jpg]]&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Gnaik2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015/oss_M1501_GSN&amp;diff=98585</id>
		<title>CSC/ECE 517 Fall 2015/oss M1501 GSN</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015/oss_M1501_GSN&amp;diff=98585"/>
		<updated>2015-11-07T01:13:45Z</updated>

		<summary type="html">&lt;p&gt;Gnaik2: /* Important Notes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''To Report CSS errors to the devtools, both stored and live.'''&lt;br /&gt;
[https://en.wikipedia.org/wiki/Cascading_Style_Sheets CSS] errors are reported to the [https://www.mozilla.org/en-US/firefox/new/ Firefox] developer tools in this project.&lt;br /&gt;
&lt;br /&gt;
=Important Notes=&lt;br /&gt;
&lt;br /&gt;
This project is still under progress. Hence, it won't build.&lt;br /&gt;
&lt;br /&gt;
We have spoken to Professor. Dr. Gehringer and he has granted us the permission to continue working on the project as it has been delayed due to certain circumstances which were beyond our control. However, he has asked us to share the following information with the reviewers:&lt;br /&gt;
&lt;br /&gt;
The following is the excerpt from the conversation with Josh where he has stated that the task assigned to us was more complicated than it should have been. &lt;br /&gt;
&lt;br /&gt;
This is highly complicated Mozilla project. The steps are not easy to implement. When we implemented the first step in the list of steps, we faced around 450 errors in the other files. &lt;br /&gt;
&lt;br /&gt;
Since the project is applicable directly to servo and not to any side dependency such as unicode bidi or xml parser, any change we make causes a cascading chain of errors in different files. &lt;br /&gt;
&lt;br /&gt;
We have spoken to the Professor regarding the problems we have faced while completing this project and Professor Dr. Gehringer has understood that we have faced problems that were beyond our control and he has asked us to provide the following information to the reviewers. &lt;br /&gt;
&lt;br /&gt;
We have also been constantly in touch and clarifying out doubts from the project manager &lt;br /&gt;
&lt;br /&gt;
We have put in many hours for this project to troubleshoot the errors. &lt;br /&gt;
&lt;br /&gt;
Servo is a very large codebase and there is no documentation available to understand what each file or each piece of code is doing in Servo codebase. &lt;br /&gt;
&lt;br /&gt;
The following are the links to the gists for the errors that we faced&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following are the links to the email conversations we have had with Josh &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Since the initial steps are not yet complete there was no point in creating the voiceover for the video. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A few important notes to help the reviewer:&lt;br /&gt;
&lt;br /&gt;
*Tests are not applicable to this project. &lt;br /&gt;
*Ruby style guide is not applicable to this project. &lt;br /&gt;
*Edge cases are not applicable to this project. &lt;br /&gt;
*There is no UI testing applicable to this project. &lt;br /&gt;
*The work that we have done is exactly as per the initial steps provided by the Mozilla team.&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
Servo&amp;lt;ref&amp;gt;https://en.wikipedia.org/wiki/Servo_(layout_engine)&amp;lt;/ref&amp;gt; is an experimental web browser layout engine. It is developed by Mozilla and written in Rust.It provides an [https://en.wikipedia.org/wiki/Application_programming_interface API] for hosting the engine within other software. The Servo browser currently provides developer tools to inspect [https://en.wikipedia.org/wiki/Document_Object_Model DOM], execute [https://en.wikipedia.org/wiki/JavaScript JavaScript] remotely.&lt;br /&gt;
&lt;br /&gt;
=Rust=&lt;br /&gt;
Rust&amp;lt;ref&amp;gt;https://en.wikipedia.org/wiki/Rust_(programming_language)&amp;lt;/ref&amp;gt; is a programming language developed by Mozilla. It is used to design concurrent and safe systems.&lt;br /&gt;
&lt;br /&gt;
=Environment Setup&amp;lt;ref&amp;gt;https://github.com/servo/servo&amp;lt;/ref&amp;gt;=&lt;br /&gt;
==Pre-requisites==&lt;br /&gt;
On Debian-based Linuxes:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install curl freeglut3-dev\&lt;br /&gt;
    libfreetype6-dev libgl1-mesa-dri libglib2.0-dev xorg-dev \&lt;br /&gt;
    gperf g++ cmake python-virtualenv python-pip \&lt;br /&gt;
    libssl-dev libbz2-dev libosmesa6-dev libxmu6 libxmu-dev libglu1-mesa-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Fedora:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dnf install curl freeglut-devel libtool gcc-c++ libXi-devel \&lt;br /&gt;
    freetype-devel mesa-libGL-devel glib2-devel libX11-devel libXrandr-devel gperf \&lt;br /&gt;
    fontconfig-devel cabextract ttmkfdir python python-virtualenv python-pip expat-devel \&lt;br /&gt;
    rpm-build openssl-devel cmake bzip2-devel libXcursor-devel libXmu-devel mesa-libOSMesa&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Cloning servo==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/servo/servo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Building Servo==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd servo&lt;br /&gt;
./mach build --dev&lt;br /&gt;
./mach run tests/html/about-mozilla.html&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Project Description&amp;lt;ref&amp;gt;https://github.com/servo/servo/wiki/CSS-parse-error-reporting&amp;lt;/ref&amp;gt;=&lt;br /&gt;
We will be adding the capability of exposing CSS errors to Servo. We will be using Firefox remote developer tools to inspect and debug the code in Servo.&lt;br /&gt;
==Program Flow==&lt;br /&gt;
*Ensure that Servo can compile and run the given tests. &lt;br /&gt;
*Choose a website that is compatible with Servo and attach the remote developer tools to it. &lt;br /&gt;
'''Initial steps'''&lt;br /&gt;
*Build Servo&lt;br /&gt;
*Attach remote developer tools&lt;br /&gt;
*Making initial changes and build Servo&lt;br /&gt;
*Generate CSS error messages&lt;br /&gt;
*Process error messages and retrieve cached messages&lt;br /&gt;
*Integrate and build again&lt;br /&gt;
'''Subsequent steps'''&lt;br /&gt;
*Generate messages which communicate the errors to the script thread. &lt;br /&gt;
*Process the messages and provide support for caching them and sending them to the devtools server if it exists. &lt;br /&gt;
*Provide the functionality to retrieve the cached CSS error messages whenever requested.&lt;br /&gt;
&lt;br /&gt;
=Design Pattern Used=&lt;br /&gt;
Model view controller design pattern and Interpreter design pattern is used in this project.&lt;br /&gt;
&lt;br /&gt;
[[File:dp1.jpg]]&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Gnaik2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015/oss_M1501_GSN&amp;diff=98561</id>
		<title>CSC/ECE 517 Fall 2015/oss M1501 GSN</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015/oss_M1501_GSN&amp;diff=98561"/>
		<updated>2015-11-07T00:38:46Z</updated>

		<summary type="html">&lt;p&gt;Gnaik2: /* Important Notes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''To Report CSS errors to the devtools, both stored and live.'''&lt;br /&gt;
[https://en.wikipedia.org/wiki/Cascading_Style_Sheets CSS] errors are reported to the [https://www.mozilla.org/en-US/firefox/new/ Firefox] developer tools in this project.&lt;br /&gt;
&lt;br /&gt;
=Important Notes=&lt;br /&gt;
A few important notes to help the reviewer:&lt;br /&gt;
&lt;br /&gt;
*Tests are not applicable to this project. &lt;br /&gt;
*Ruby style guide is not applicable to this project. &lt;br /&gt;
*Edge cases are not applicable to this project. &lt;br /&gt;
*There is no UI testing applicable to this project. &lt;br /&gt;
*The work that we have done is exactly as per the initial steps provided by the Mozilla team.&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
Servo&amp;lt;ref&amp;gt;https://en.wikipedia.org/wiki/Servo_(layout_engine)&amp;lt;/ref&amp;gt; is an experimental web browser layout engine. It is developed by Mozilla and written in Rust.It provides an [https://en.wikipedia.org/wiki/Application_programming_interface API] for hosting the engine within other software. The Servo browser currently provides developer tools to inspect [https://en.wikipedia.org/wiki/Document_Object_Model DOM], execute [https://en.wikipedia.org/wiki/JavaScript JavaScript] remotely.&lt;br /&gt;
&lt;br /&gt;
=Rust=&lt;br /&gt;
Rust&amp;lt;ref&amp;gt;https://en.wikipedia.org/wiki/Rust_(programming_language)&amp;lt;/ref&amp;gt; is a programming language developed by Mozilla. It is used to design concurrent and safe systems.&lt;br /&gt;
&lt;br /&gt;
=Environment Setup&amp;lt;ref&amp;gt;https://github.com/servo/servo&amp;lt;/ref&amp;gt;=&lt;br /&gt;
==Pre-requisites==&lt;br /&gt;
On Debian-based Linuxes:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install curl freeglut3-dev\&lt;br /&gt;
    libfreetype6-dev libgl1-mesa-dri libglib2.0-dev xorg-dev \&lt;br /&gt;
    gperf g++ cmake python-virtualenv python-pip \&lt;br /&gt;
    libssl-dev libbz2-dev libosmesa6-dev libxmu6 libxmu-dev libglu1-mesa-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Fedora:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dnf install curl freeglut-devel libtool gcc-c++ libXi-devel \&lt;br /&gt;
    freetype-devel mesa-libGL-devel glib2-devel libX11-devel libXrandr-devel gperf \&lt;br /&gt;
    fontconfig-devel cabextract ttmkfdir python python-virtualenv python-pip expat-devel \&lt;br /&gt;
    rpm-build openssl-devel cmake bzip2-devel libXcursor-devel libXmu-devel mesa-libOSMesa&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Cloning servo==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/servo/servo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Building Servo==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd servo&lt;br /&gt;
./mach build --dev&lt;br /&gt;
./mach run tests/html/about-mozilla.html&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Project Description&amp;lt;ref&amp;gt;https://github.com/servo/servo/wiki/CSS-parse-error-reporting&amp;lt;/ref&amp;gt;=&lt;br /&gt;
We will be adding the capability of exposing CSS errors to Servo. We will be using Firefox remote developer tools to inspect and debug the code in Servo.&lt;br /&gt;
==Program Flow==&lt;br /&gt;
*Ensure that Servo can compile and run the given tests. &lt;br /&gt;
*Choose a website that is compatible with Servo and attach the remote developer tools to it. &lt;br /&gt;
'''Initial steps'''&lt;br /&gt;
*Build Servo&lt;br /&gt;
*Attach remote developer tools&lt;br /&gt;
*Making initial changes and build Servo&lt;br /&gt;
*Generate CSS error messages&lt;br /&gt;
*Process error messages and retrieve cached messages&lt;br /&gt;
*Integrate and build again&lt;br /&gt;
'''Subsequent steps'''&lt;br /&gt;
*Generate messages which communicate the errors to the script thread. &lt;br /&gt;
*Process the messages and provide support for caching them and sending them to the devtools server if it exists. &lt;br /&gt;
*Provide the functionality to retrieve the cached CSS error messages whenever requested.&lt;br /&gt;
&lt;br /&gt;
=Design Pattern Used=&lt;br /&gt;
Model view controller design pattern and Interpreter design pattern is used in this project.&lt;br /&gt;
&lt;br /&gt;
[[File:dp1.jpg]]&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Gnaik2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015/oss_M1501_GSN&amp;diff=98560</id>
		<title>CSC/ECE 517 Fall 2015/oss M1501 GSN</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015/oss_M1501_GSN&amp;diff=98560"/>
		<updated>2015-11-07T00:38:11Z</updated>

		<summary type="html">&lt;p&gt;Gnaik2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''To Report CSS errors to the devtools, both stored and live.'''&lt;br /&gt;
[https://en.wikipedia.org/wiki/Cascading_Style_Sheets CSS] errors are reported to the [https://www.mozilla.org/en-US/firefox/new/ Firefox] developer tools in this project.&lt;br /&gt;
&lt;br /&gt;
=Important Notes=&lt;br /&gt;
A few important notes to help the reviewer:&lt;br /&gt;
&lt;br /&gt;
*Tests are not applicable to this project. &lt;br /&gt;
*Ruby style guide is not applicable to this project. &lt;br /&gt;
*Edge cases are not applicable to this project. &lt;br /&gt;
*There is no UI testing applicable to this project. &lt;br /&gt;
*The work that we have done is exactly as per the initial steps provided by the Mozilla team. &lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
Servo&amp;lt;ref&amp;gt;https://en.wikipedia.org/wiki/Servo_(layout_engine)&amp;lt;/ref&amp;gt; is an experimental web browser layout engine. It is developed by Mozilla and written in Rust.It provides an [https://en.wikipedia.org/wiki/Application_programming_interface API] for hosting the engine within other software. The Servo browser currently provides developer tools to inspect [https://en.wikipedia.org/wiki/Document_Object_Model DOM], execute [https://en.wikipedia.org/wiki/JavaScript JavaScript] remotely.&lt;br /&gt;
&lt;br /&gt;
=Rust=&lt;br /&gt;
Rust&amp;lt;ref&amp;gt;https://en.wikipedia.org/wiki/Rust_(programming_language)&amp;lt;/ref&amp;gt; is a programming language developed by Mozilla. It is used to design concurrent and safe systems.&lt;br /&gt;
&lt;br /&gt;
=Environment Setup&amp;lt;ref&amp;gt;https://github.com/servo/servo&amp;lt;/ref&amp;gt;=&lt;br /&gt;
==Pre-requisites==&lt;br /&gt;
On Debian-based Linuxes:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install curl freeglut3-dev\&lt;br /&gt;
    libfreetype6-dev libgl1-mesa-dri libglib2.0-dev xorg-dev \&lt;br /&gt;
    gperf g++ cmake python-virtualenv python-pip \&lt;br /&gt;
    libssl-dev libbz2-dev libosmesa6-dev libxmu6 libxmu-dev libglu1-mesa-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Fedora:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dnf install curl freeglut-devel libtool gcc-c++ libXi-devel \&lt;br /&gt;
    freetype-devel mesa-libGL-devel glib2-devel libX11-devel libXrandr-devel gperf \&lt;br /&gt;
    fontconfig-devel cabextract ttmkfdir python python-virtualenv python-pip expat-devel \&lt;br /&gt;
    rpm-build openssl-devel cmake bzip2-devel libXcursor-devel libXmu-devel mesa-libOSMesa&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Cloning servo==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/servo/servo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Building Servo==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd servo&lt;br /&gt;
./mach build --dev&lt;br /&gt;
./mach run tests/html/about-mozilla.html&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Project Description&amp;lt;ref&amp;gt;https://github.com/servo/servo/wiki/CSS-parse-error-reporting&amp;lt;/ref&amp;gt;=&lt;br /&gt;
We will be adding the capability of exposing CSS errors to Servo. We will be using Firefox remote developer tools to inspect and debug the code in Servo.&lt;br /&gt;
==Program Flow==&lt;br /&gt;
*Ensure that Servo can compile and run the given tests. &lt;br /&gt;
*Choose a website that is compatible with Servo and attach the remote developer tools to it. &lt;br /&gt;
'''Initial steps'''&lt;br /&gt;
*Build Servo&lt;br /&gt;
*Attach remote developer tools&lt;br /&gt;
*Making initial changes and build Servo&lt;br /&gt;
*Generate CSS error messages&lt;br /&gt;
*Process error messages and retrieve cached messages&lt;br /&gt;
*Integrate and build again&lt;br /&gt;
'''Subsequent steps'''&lt;br /&gt;
*Generate messages which communicate the errors to the script thread. &lt;br /&gt;
*Process the messages and provide support for caching them and sending them to the devtools server if it exists. &lt;br /&gt;
*Provide the functionality to retrieve the cached CSS error messages whenever requested.&lt;br /&gt;
&lt;br /&gt;
=Design Pattern Used=&lt;br /&gt;
Model view controller design pattern and Interpreter design pattern is used in this project.&lt;br /&gt;
&lt;br /&gt;
[[File:dp1.jpg]]&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Gnaik2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015/oss_M1501_GSN&amp;diff=98559</id>
		<title>CSC/ECE 517 Fall 2015/oss M1501 GSN</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015/oss_M1501_GSN&amp;diff=98559"/>
		<updated>2015-11-07T00:37:30Z</updated>

		<summary type="html">&lt;p&gt;Gnaik2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''To Report CSS errors to the devtools, both stored and live.'''&lt;br /&gt;
[https://en.wikipedia.org/wiki/Cascading_Style_Sheets CSS] errors are reported to the [https://www.mozilla.org/en-US/firefox/new/ Firefox] developer tools in this project.&lt;br /&gt;
&lt;br /&gt;
=Important Notes=&lt;br /&gt;
A few important notes to help the reviewer:&lt;br /&gt;
&lt;br /&gt;
Tests are not applicable to this project. &lt;br /&gt;
Ruby style guide is not applicable to this project. &lt;br /&gt;
Edge cases are not applicable to this project. &lt;br /&gt;
There is no UI testing applicable to this project. &lt;br /&gt;
The work that we have done is exactly as per the initial steps provided by the Mozilla team. &lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
Servo&amp;lt;ref&amp;gt;https://en.wikipedia.org/wiki/Servo_(layout_engine)&amp;lt;/ref&amp;gt; is an experimental web browser layout engine. It is developed by Mozilla and written in Rust.It provides an [https://en.wikipedia.org/wiki/Application_programming_interface API] for hosting the engine within other software. The Servo browser currently provides developer tools to inspect [https://en.wikipedia.org/wiki/Document_Object_Model DOM], execute [https://en.wikipedia.org/wiki/JavaScript JavaScript] remotely.&lt;br /&gt;
&lt;br /&gt;
=Rust=&lt;br /&gt;
Rust&amp;lt;ref&amp;gt;https://en.wikipedia.org/wiki/Rust_(programming_language)&amp;lt;/ref&amp;gt; is a programming language developed by Mozilla. It is used to design concurrent and safe systems.&lt;br /&gt;
&lt;br /&gt;
=Environment Setup&amp;lt;ref&amp;gt;https://github.com/servo/servo&amp;lt;/ref&amp;gt;=&lt;br /&gt;
==Pre-requisites==&lt;br /&gt;
On Debian-based Linuxes:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install curl freeglut3-dev\&lt;br /&gt;
    libfreetype6-dev libgl1-mesa-dri libglib2.0-dev xorg-dev \&lt;br /&gt;
    gperf g++ cmake python-virtualenv python-pip \&lt;br /&gt;
    libssl-dev libbz2-dev libosmesa6-dev libxmu6 libxmu-dev libglu1-mesa-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Fedora:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dnf install curl freeglut-devel libtool gcc-c++ libXi-devel \&lt;br /&gt;
    freetype-devel mesa-libGL-devel glib2-devel libX11-devel libXrandr-devel gperf \&lt;br /&gt;
    fontconfig-devel cabextract ttmkfdir python python-virtualenv python-pip expat-devel \&lt;br /&gt;
    rpm-build openssl-devel cmake bzip2-devel libXcursor-devel libXmu-devel mesa-libOSMesa&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Cloning servo==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/servo/servo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Building Servo==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd servo&lt;br /&gt;
./mach build --dev&lt;br /&gt;
./mach run tests/html/about-mozilla.html&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Project Description&amp;lt;ref&amp;gt;https://github.com/servo/servo/wiki/CSS-parse-error-reporting&amp;lt;/ref&amp;gt;=&lt;br /&gt;
We will be adding the capability of exposing CSS errors to Servo. We will be using Firefox remote developer tools to inspect and debug the code in Servo.&lt;br /&gt;
==Program Flow==&lt;br /&gt;
*Ensure that Servo can compile and run the given tests. &lt;br /&gt;
*Choose a website that is compatible with Servo and attach the remote developer tools to it. &lt;br /&gt;
'''Initial steps'''&lt;br /&gt;
*Build Servo&lt;br /&gt;
*Attach remote developer tools&lt;br /&gt;
*Making initial changes and build Servo&lt;br /&gt;
*Generate CSS error messages&lt;br /&gt;
*Process error messages and retrieve cached messages&lt;br /&gt;
*Integrate and build again&lt;br /&gt;
'''Subsequent steps'''&lt;br /&gt;
*Generate messages which communicate the errors to the script thread. &lt;br /&gt;
*Process the messages and provide support for caching them and sending them to the devtools server if it exists. &lt;br /&gt;
*Provide the functionality to retrieve the cached CSS error messages whenever requested.&lt;br /&gt;
&lt;br /&gt;
=Design Pattern Used=&lt;br /&gt;
Model view controller design pattern and Interpreter design pattern is used in this project.&lt;br /&gt;
&lt;br /&gt;
[[File:dp1.jpg]]&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Gnaik2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015/oss_M1501_GSN&amp;diff=97265</id>
		<title>CSC/ECE 517 Fall 2015/oss M1501 GSN</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015/oss_M1501_GSN&amp;diff=97265"/>
		<updated>2015-10-29T20:53:57Z</updated>

		<summary type="html">&lt;p&gt;Gnaik2: Created page with &amp;quot;Writing assignment 2 M1501&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Writing assignment 2 M1501&lt;/div&gt;</summary>
		<author><name>Gnaik2</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015&amp;diff=97264</id>
		<title>CSC/ECE 517 Fall 2015</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015&amp;diff=97264"/>
		<updated>2015-10-29T20:53:14Z</updated>

		<summary type="html">&lt;p&gt;Gnaik2: /* Writing Assignment 2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Writing Assignment 2==&lt;br /&gt;
*[[CSC/ECE_517_Fall_2015/sample_page]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2015/ossE1558BGJ]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2015/oss/M1502/AAAASS]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2015/oss/M1503/IntegrateXMLParser]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2015/ossE1568BZHXJS]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2015/ossE1572VPGMAL]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2015/oss_E1573_sap]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2015/oss E1559 rrz]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2015/oss E1570 avr]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2015/oss E1556 CHM]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2015/oss M1504 JJD]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2015/oss E1562 APS]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2015/oss M1501 GSN]]&lt;/div&gt;</summary>
		<author><name>Gnaik2</name></author>
	</entry>
</feed>