<?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=Abhina</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=Abhina"/>
	<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=Special:Contributions/Abhina"/>
	<updated>2026-08-13T17:32:20Z</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_M1502_Improve_HTTP_monitoring_devtool_support&amp;diff=99365</id>
		<title>CSC/ECE 517 Fall 2015 M1502 Improve HTTP monitoring devtool support</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015_M1502_Improve_HTTP_monitoring_devtool_support&amp;diff=99365"/>
		<updated>2015-11-10T04:37:07Z</updated>

		<summary type="html">&lt;p&gt;Abhina: Created page with &amp;quot;&amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Extending Developer Tools for Servo&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt; __TOC__ =='''Introduction'''== ===Rust=== Rust is a general purpose, [http://en.wikipedia.org/wiki/Programming_pa...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Extending Developer Tools for Servo&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
__TOC__&lt;br /&gt;
=='''Introduction'''==&lt;br /&gt;
===Rust===&lt;br /&gt;
Rust is a general purpose, [http://en.wikipedia.org/wiki/Programming_paradigm#Multi-paradigm multi-paradigm], compiled programming language developed by [http://en.wikipedia.org/wiki/Mozilla Mozilla] Research. It is designed to be a &amp;quot;safe, concurrent, practical language&amp;quot;, supporting [http://en.wikipedia.org/wiki/Purely_functional pure-functional], [http://en.wikipedia.org/wiki/Actor_model concurrent-actor], [http://en.wikipedia.org/wiki/Procedural_programming imperative-procedural], and object-oriented styles.&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/Rust_%28programming_language%29&amp;lt;/ref&amp;gt; Being a modern systems programming language focusing on safety and speed, it accomplishes these goals by being memory safe without using garbage collection.&amp;lt;ref&amp;gt;http://doc.rust-lang.org/nightly/intro.html&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Servo===&lt;br /&gt;
Servo is an experimental project to build a Web browser engine for a new generation of hardware: mobile devices, multi-core processors and high-performance GPUs. With Servo, we are rethinking the browser at every level of the technology stack — from input parsing to page layout to graphics rendering — to optimize for power efficiency and maximum parallelism.&lt;br /&gt;
Servo builds on top of Rust to provide a secure and reliable foundation. Memory safety at the core of the platform ensures a high degree of assurance in the browser’s trusted computing base. Rust’s lightweight task mechanism also promises to allow fine-grained isolation between browser components, such as tabs and extensions, without the need for expensive runtime protection schemes, like operating system process isolation.&amp;lt;ref&amp;gt;https://www.mozilla.org/en-US/research/projects/&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=='''Background'''==&lt;br /&gt;
===Remote Developer Tools===&lt;br /&gt;
&lt;br /&gt;
Firefox supports remote developer tools - ie. communicating with an arbitrary server that implements a protocol for exposing information about web content. You can use the [https://developer.mozilla.org/en-US/docs/Tools Firefox developer tools] on your desktop to debug Web sites and Web apps running in other browsers or runtimes. The other browser might be on the same device as the tools themselves or on a different device, such as a phone connected over USB.There are two types of runtime supported.a. Gecko-based runtimes- like Firefox Desktop, Firefox for Android, Firefox OS, and Thunderbird and b. Other runtimes- like Google Chrome Desktop, Chrome on Android, and Safari on iOS }}&lt;br /&gt;
&lt;br /&gt;
==Build Process==&lt;br /&gt;
&lt;br /&gt;
Following commands need to be entered for a normal build:-&lt;br /&gt;
**git clone https://github.com/servo/servo&lt;br /&gt;
**cd servo&lt;br /&gt;
**./mach build --dev&lt;br /&gt;
**./mach run tests/html/about-mozilla.html&lt;br /&gt;
&lt;br /&gt;
==Run==&lt;br /&gt;
&lt;br /&gt;
**./mach run [url] where [url] is the web address you want to run Servo for.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=='''Project Description'''==&lt;br /&gt;
Servo implements a very basic developer tools server that currently supports executing JS remotely and investigating the DOM tree in the document inspector. We want to expand these capabilities by completing previous work that enables remote logging from web content, and add new capabilities to log HTTP requests and responses to allow for easier debugging of network-related problems in Servo.&lt;br /&gt;
&lt;br /&gt;
=='''Requirement Analysis'''==&lt;br /&gt;
&lt;br /&gt;
Below are the requirements that will addressed in the final semester project.&lt;br /&gt;
&lt;br /&gt;
**Implement the getRequestHeaders/getRequestPostData message handlers in components/devtools/actors/network_event.rs based on the values in theHttpReqest struct&lt;br /&gt;
**Add support for more flavours of the networkEventUpdate message than justresponseStart, by building the NetworkEventUpdateMsg` from a freeform JSON  object instead of a serialized struct declaration&lt;br /&gt;
**Send real values for the fields of ResponseStartMsg (requires obtaining those values inhttp_loader.rs and sending them in send_response_to_devtools)&lt;br /&gt;
**Implement the getRequestCookies and getResponseCookies message handlers incomponents/devtools/actors/network_event.rs based on the Cookie/Set-Cookieheaders in the HttpRequest/HttpResponse structs&lt;br /&gt;
**Implement the getResponseContent/getResponseHeaders message handlers based on the data obtained in add_http_response&lt;br /&gt;
**Implement remaining flavours of networkEventUpdate message&lt;br /&gt;
**Address the TODO for event_actor in network_event.rs by providing the missing information as part of the original message transmitted by send_request_to_devtools&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=='''Approach'''==&lt;br /&gt;
&lt;br /&gt;
For task1 -we would use the ‘self’ variable (of type NetworkEvent) to extract the headers information.&lt;br /&gt;
&lt;br /&gt;
For task2 – Modify handle_network_event such that NetworkEventUpdateMsg is created using a JSON object instead of a struct.(inside lib.rs)&lt;br /&gt;
&lt;br /&gt;
For task 3 – Change response_start in network_event.rs file to include real values instead of the fake ones that is being sent till now.&lt;br /&gt;
&lt;br /&gt;
For task 4 – Similar to task 1(located in the same file – network_event.rs), we will use the cookie information from the HttpRequest, HttpResponse structs.&lt;br /&gt;
&lt;br /&gt;
For task 5 – Similar changes have to be made as in task 4 for this task.&lt;br /&gt;
&lt;br /&gt;
For task 7 – This task will make use of the information added in the initial steps for our project.&lt;br /&gt;
&lt;br /&gt;
=='''Design Patterns'''==&lt;br /&gt;
No design pattern required for this project.&lt;br /&gt;
&lt;br /&gt;
=='''Reference'''==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
https://github.com/servo/servo/wiki/Expand-HTTP-request-response-monitoring&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Tools/Remote_Debugging&lt;br /&gt;
http://www-archive.mozilla.org/roadmap/app-architecture-diagram.png&lt;/div&gt;</summary>
		<author><name>Abhina</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015/ExtendingDeveloperToolsforServo&amp;diff=99361</id>
		<title>CSC/ECE 517 Fall 2015/ExtendingDeveloperToolsforServo</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015/ExtendingDeveloperToolsforServo&amp;diff=99361"/>
		<updated>2015-11-10T04:33:40Z</updated>

		<summary type="html">&lt;p&gt;Abhina: Created page with &amp;quot;&amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Extending Developer Tools for Servo&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt; __TOC__ =='''Introduction'''== ===Rust=== Rust is a general purpose, [http://en.wikipedia.org/wiki/Programming_pa...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Extending Developer Tools for Servo&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
__TOC__&lt;br /&gt;
=='''Introduction'''==&lt;br /&gt;
===Rust===&lt;br /&gt;
Rust is a general purpose, [http://en.wikipedia.org/wiki/Programming_paradigm#Multi-paradigm multi-paradigm], compiled programming language developed by [http://en.wikipedia.org/wiki/Mozilla Mozilla] Research. It is designed to be a &amp;quot;safe, concurrent, practical language&amp;quot;, supporting [http://en.wikipedia.org/wiki/Purely_functional pure-functional], [http://en.wikipedia.org/wiki/Actor_model concurrent-actor], [http://en.wikipedia.org/wiki/Procedural_programming imperative-procedural], and object-oriented styles.&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/Rust_%28programming_language%29&amp;lt;/ref&amp;gt; Being a modern systems programming language focusing on safety and speed, it accomplishes these goals by being memory safe without using garbage collection.&amp;lt;ref&amp;gt;http://doc.rust-lang.org/nightly/intro.html&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Servo===&lt;br /&gt;
Servo is an experimental project to build a Web browser engine for a new generation of hardware: mobile devices, multi-core processors and high-performance GPUs. With Servo, we are rethinking the browser at every level of the technology stack — from input parsing to page layout to graphics rendering — to optimize for power efficiency and maximum parallelism.&lt;br /&gt;
Servo builds on top of Rust to provide a secure and reliable foundation. Memory safety at the core of the platform ensures a high degree of assurance in the browser’s trusted computing base. Rust’s lightweight task mechanism also promises to allow fine-grained isolation between browser components, such as tabs and extensions, without the need for expensive runtime protection schemes, like operating system process isolation.&amp;lt;ref&amp;gt;https://www.mozilla.org/en-US/research/projects/&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=='''Background'''==&lt;br /&gt;
===Remote Developer Tools===&lt;br /&gt;
&lt;br /&gt;
Firefox supports remote developer tools - ie. communicating with an arbitrary server that implements a protocol for exposing information about web content. You can use the [https://developer.mozilla.org/en-US/docs/Tools Firefox developer tools] on your desktop to debug Web sites and Web apps running in other browsers or runtimes. The other browser might be on the same device as the tools themselves or on a different device, such as a phone connected over USB.There are two types of runtime supported.a. Gecko-based runtimes- like Firefox Desktop, Firefox for Android, Firefox OS, and Thunderbird and b. Other runtimes- like Google Chrome Desktop, Chrome on Android, and Safari on iOS }}&lt;br /&gt;
&lt;br /&gt;
==Build Process==&lt;br /&gt;
&lt;br /&gt;
Following commands need to be entered for a normal build:-&lt;br /&gt;
**git clone https://github.com/servo/servo&lt;br /&gt;
**cd servo&lt;br /&gt;
**./mach build --dev&lt;br /&gt;
**./mach run tests/html/about-mozilla.html&lt;br /&gt;
&lt;br /&gt;
==Run==&lt;br /&gt;
&lt;br /&gt;
**./mach run [url] where [url] is the web address you want to run Servo for.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=='''Project Description'''==&lt;br /&gt;
Servo implements a very basic developer tools server that currently supports executing JS remotely and investigating the DOM tree in the document inspector. We want to expand these capabilities by completing previous work that enables remote logging from web content, and add new capabilities to log HTTP requests and responses to allow for easier debugging of network-related problems in Servo.&lt;br /&gt;
&lt;br /&gt;
=='''Requirement Analysis'''==&lt;br /&gt;
&lt;br /&gt;
Below are the requirements that will addressed in the final semester project.&lt;br /&gt;
&lt;br /&gt;
**Implement the getRequestHeaders/getRequestPostData message handlers in components/devtools/actors/network_event.rs based on the values in theHttpReqest struct&lt;br /&gt;
**Add support for more flavours of the networkEventUpdate message than justresponseStart, by building the NetworkEventUpdateMsg` from a freeform JSON  object instead of a serialized struct declaration&lt;br /&gt;
**Send real values for the fields of ResponseStartMsg (requires obtaining those values inhttp_loader.rs and sending them in send_response_to_devtools)&lt;br /&gt;
**Implement the getRequestCookies and getResponseCookies message handlers incomponents/devtools/actors/network_event.rs based on the Cookie/Set-Cookieheaders in the HttpRequest/HttpResponse structs&lt;br /&gt;
**Implement the getResponseContent/getResponseHeaders message handlers based on the data obtained in add_http_response&lt;br /&gt;
**Implement remaining flavours of networkEventUpdate message&lt;br /&gt;
**Address the TODO for event_actor in network_event.rs by providing the missing information as part of the original message transmitted by send_request_to_devtools&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=='''Approach'''==&lt;br /&gt;
&lt;br /&gt;
For task1 -we would use the ‘self’ variable (of type NetworkEvent) to extract the headers information.&lt;br /&gt;
&lt;br /&gt;
For task2 – Modify handle_network_event such that NetworkEventUpdateMsg is created using a JSON object instead of a struct.(inside lib.rs)&lt;br /&gt;
&lt;br /&gt;
For task 3 – Change response_start in network_event.rs file to include real values instead of the fake ones that is being sent till now.&lt;br /&gt;
&lt;br /&gt;
For task 4 – Similar to task 1(located in the same file – network_event.rs), we will use the cookie information from the HttpRequest, HttpResponse structs.&lt;br /&gt;
&lt;br /&gt;
For task 5 – Similar changes have to be made as in task 4 for this task.&lt;br /&gt;
&lt;br /&gt;
For task 7 – This task will make use of the information added in the initial steps for our project.&lt;br /&gt;
&lt;br /&gt;
=='''Design Patterns'''==&lt;br /&gt;
No design pattern required for this project.&lt;br /&gt;
&lt;br /&gt;
=='''Reference'''==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
https://github.com/servo/servo/wiki/Expand-HTTP-request-response-monitoring&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Tools/Remote_Debugging&lt;br /&gt;
http://www-archive.mozilla.org/roadmap/app-architecture-diagram.png&lt;/div&gt;</summary>
		<author><name>Abhina</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=User:Abhina&amp;diff=99352</id>
		<title>User:Abhina</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=User:Abhina&amp;diff=99352"/>
		<updated>2015-11-10T04:22:15Z</updated>

		<summary type="html">&lt;p&gt;Abhina: Created page with &amp;quot;&amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Extending Developer Tools for Servo&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt; __TOC__ =='''Introduction'''== ===Rust=== Rust is a general purpose, [http://en.wikipedia.org/wiki/Programming_pa...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Extending Developer Tools for Servo&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
__TOC__&lt;br /&gt;
=='''Introduction'''==&lt;br /&gt;
===Rust===&lt;br /&gt;
Rust is a general purpose, [http://en.wikipedia.org/wiki/Programming_paradigm#Multi-paradigm multi-paradigm], compiled programming language developed by [http://en.wikipedia.org/wiki/Mozilla Mozilla] Research. It is designed to be a &amp;quot;safe, concurrent, practical language&amp;quot;, supporting [http://en.wikipedia.org/wiki/Purely_functional pure-functional], [http://en.wikipedia.org/wiki/Actor_model concurrent-actor], [http://en.wikipedia.org/wiki/Procedural_programming imperative-procedural], and object-oriented styles.&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/Rust_%28programming_language%29&amp;lt;/ref&amp;gt; Being a modern systems programming language focusing on safety and speed, it accomplishes these goals by being memory safe without using garbage collection.&amp;lt;ref&amp;gt;http://doc.rust-lang.org/nightly/intro.html&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Servo===&lt;br /&gt;
Servo is an experimental project to build a Web browser engine for a new generation of hardware: mobile devices, multi-core processors and high-performance GPUs. With Servo, we are rethinking the browser at every level of the technology stack — from input parsing to page layout to graphics rendering — to optimize for power efficiency and maximum parallelism.&lt;br /&gt;
Servo builds on top of Rust to provide a secure and reliable foundation. Memory safety at the core of the platform ensures a high degree of assurance in the browser’s trusted computing base. Rust’s lightweight task mechanism also promises to allow fine-grained isolation between browser components, such as tabs and extensions, without the need for expensive runtime protection schemes, like operating system process isolation.&amp;lt;ref&amp;gt;https://www.mozilla.org/en-US/research/projects/&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=='''Background'''==&lt;br /&gt;
===Remote Developer Tools===&lt;br /&gt;
&lt;br /&gt;
Firefox supports remote developer tools - ie. communicating with an arbitrary server that implements a protocol for exposing information about web content. You can use the [https://developer.mozilla.org/en-US/docs/Tools Firefox developer tools] on your desktop to debug Web sites and Web apps running in other browsers or runtimes. The other browser might be on the same device as the tools themselves or on a different device, such as a phone connected over USB.There are two types of runtime supported.a. Gecko-based runtimes- like Firefox Desktop, Firefox for Android, Firefox OS, and Thunderbird and b. Other runtimes- like Google Chrome Desktop, Chrome on Android, and Safari on iOS }}&lt;br /&gt;
&lt;br /&gt;
==Build Process==&lt;br /&gt;
&lt;br /&gt;
Following commands need to be entered for a normal build:-&lt;br /&gt;
**git clone https://github.com/servo/servo&lt;br /&gt;
**cd servo&lt;br /&gt;
**./mach build --dev&lt;br /&gt;
**./mach run tests/html/about-mozilla.html&lt;br /&gt;
&lt;br /&gt;
==Run==&lt;br /&gt;
&lt;br /&gt;
**./mach run [url] where [url] is the web address you want to run Servo for.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=='''Project Description'''==&lt;br /&gt;
Servo implements a very basic developer tools server that currently supports executing JS remotely and investigating the DOM tree in the document inspector. We want to expand these capabilities by completing previous work that enables remote logging from web content, and add new capabilities to log HTTP requests and responses to allow for easier debugging of network-related problems in Servo.&lt;br /&gt;
&lt;br /&gt;
=='''Requirement Analysis'''==&lt;br /&gt;
&lt;br /&gt;
Below are the requirements that will addressed in the final semester project.&lt;br /&gt;
&lt;br /&gt;
**Implement the getRequestHeaders/getRequestPostData message handlers in components/devtools/actors/network_event.rs based on the values in theHttpReqest struct&lt;br /&gt;
**Add support for more flavours of the networkEventUpdate message than justresponseStart, by building the NetworkEventUpdateMsg` from a freeform JSON  object instead of a serialized struct declaration&lt;br /&gt;
**Send real values for the fields of ResponseStartMsg (requires obtaining those values inhttp_loader.rs and sending them in send_response_to_devtools)&lt;br /&gt;
**Implement the getRequestCookies and getResponseCookies message handlers incomponents/devtools/actors/network_event.rs based on the Cookie/Set-Cookieheaders in the HttpRequest/HttpResponse structs&lt;br /&gt;
**Implement the getResponseContent/getResponseHeaders message handlers based on the data obtained in add_http_response&lt;br /&gt;
**Implement remaining flavours of networkEventUpdate message&lt;br /&gt;
**Address the TODO for event_actor in network_event.rs by providing the missing information as part of the original message transmitted by send_request_to_devtools&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=='''Approach'''==&lt;br /&gt;
&lt;br /&gt;
For task1 -we would use the ‘self’ variable (of type NetworkEvent) to extract the headers information.&lt;br /&gt;
&lt;br /&gt;
For task2 – Modify handle_network_event such that NetworkEventUpdateMsg is created using a JSON object instead of a struct.(inside lib.rs)&lt;br /&gt;
&lt;br /&gt;
For task 3 – Change response_start in network_event.rs file to include real values instead of the fake ones that is being sent till now.&lt;br /&gt;
&lt;br /&gt;
For task 4 – Similar to task 1(located in the same file – network_event.rs), we will use the cookie information from the HttpRequest, HttpResponse structs.&lt;br /&gt;
&lt;br /&gt;
For task 5 – Similar changes have to be made as in task 4 for this task.&lt;br /&gt;
&lt;br /&gt;
For task 7 – This task will make use of the information added in the initial steps for our project.&lt;br /&gt;
&lt;br /&gt;
=='''Design Patterns'''==&lt;br /&gt;
No design pattern required for this project.&lt;br /&gt;
&lt;br /&gt;
=='''Reference'''==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
https://github.com/servo/servo/wiki/Expand-HTTP-request-response-monitoring&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Tools/Remote_Debugging&lt;br /&gt;
http://www-archive.mozilla.org/roadmap/app-architecture-diagram.png&lt;/div&gt;</summary>
		<author><name>Abhina</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015/oss/M1502/AAAASS&amp;diff=98710</id>
		<title>CSC/ECE 517 Fall 2015/oss/M1502/AAAASS</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015/oss/M1502/AAAASS&amp;diff=98710"/>
		<updated>2015-11-07T03:58:44Z</updated>

		<summary type="html">&lt;p&gt;Abhina: /* Adding pipeline Id */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''M1502: Improve HTTP monitoring devtool support'''==&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. We want to expand these capabilities by exposing further information about HTTP requests and responses that web content initiates. &lt;br /&gt;
&amp;lt;ref&amp;gt;https://github.com/servo/servo/wiki/Expand-HTTP-request-response-monitoring&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==''' Github Location''' ==&lt;br /&gt;
 https://github.com/akumar21NCSU/servo&lt;br /&gt;
&lt;br /&gt;
==''' Build Process''' ==&lt;br /&gt;
git clone https://github.com/servo/servo&lt;br /&gt;
cd servo&lt;br /&gt;
./mach build --dev&lt;br /&gt;
./mach run tests/html/about-mozilla.html&lt;br /&gt;
&lt;br /&gt;
==''' Forked Branch''' ==&lt;br /&gt;
A branch was forked from https://github.com/servo/servo and placed at the following location:  https://github.com/akumar21NCSU/servo&lt;br /&gt;
&lt;br /&gt;
==''' Development''' ==&lt;br /&gt;
The primary goal of the development effort is to support the presence of a pipeline id.&lt;br /&gt;
The goal is to pass values to send_request_to_devtools derived from the actual request. The request containing the new pipeline id. &lt;br /&gt;
The development command is: ./mach build --dev&lt;br /&gt;
&lt;br /&gt;
=='''Code Changes'''==&lt;br /&gt;
&lt;br /&gt;
==='''Adding pipeline Id'''===&lt;br /&gt;
&lt;br /&gt;
Pipeline id was added in http_loader.rs file for request and response messages.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fn send_request_to_devtools(devtools_chan: Option&amp;lt;Sender&amp;lt;DevtoolsControlMsg&amp;gt;&amp;gt;,&lt;br /&gt;
                            request_id: String,&lt;br /&gt;
                            url: Url,&lt;br /&gt;
                            method: Method,&lt;br /&gt;
                            headers: Headers,&lt;br /&gt;
                            body: Option&amp;lt;Vec&amp;lt;u8&amp;gt;&amp;gt;,&lt;br /&gt;
                            pipeline_id: PipelineId) {&lt;br /&gt;
&lt;br /&gt;
    if let Some(ref chan) = devtools_chan {&lt;br /&gt;
        let request = DevtoolsHttpRequest {&lt;br /&gt;
            url: url, method: method, headers: headers, body: body, pipeline_id: pipeline_id };&lt;br /&gt;
        let net_event = NetworkEvent::HttpRequest(request);&lt;br /&gt;
&lt;br /&gt;
        let msg = ChromeToDevtoolsControlMsg::NetworkEvent(request_id, net_event);&lt;br /&gt;
        chan.send(DevtoolsControlMsg::FromChrome(msg)).unwrap();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fn send_response_to_devtools(devtools_chan: Option&amp;lt;Sender&amp;lt;DevtoolsControlMsg&amp;gt;&amp;gt;,&lt;br /&gt;
                             request_id: String,&lt;br /&gt;
                             headers: Option&amp;lt;Headers&amp;gt;,&lt;br /&gt;
                             status: Option&amp;lt;RawStatus&amp;gt;,&lt;br /&gt;
                             pipeline_id: PipelineId) {&lt;br /&gt;
    if let Some(ref chan) = devtools_chan {&lt;br /&gt;
        let response = DevtoolsHttpResponse { headers: headers, status: status, body: None, pipeline_id: pipeline_id };&lt;br /&gt;
        let net_event_response = NetworkEvent::HttpResponse(response);&lt;br /&gt;
&lt;br /&gt;
        let msg = ChromeToDevtoolsControlMsg::NetworkEvent(request_id, net_event_response);&lt;br /&gt;
        chan.send(DevtoolsControlMsg::FromChrome(msg)).unwrap();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This required us to change HttpRequest and HttpResponse structs in lib.rs file inside devtool_traits.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pub struct HttpRequest {&lt;br /&gt;
    pub url: Url,&lt;br /&gt;
    pub method: Method,&lt;br /&gt;
    pub headers: Headers,&lt;br /&gt;
    pub body: Option&amp;lt;Vec&amp;lt;u8&amp;gt;&amp;gt;,&lt;br /&gt;
    pub pipeline_id: PipelineId,&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pub struct HttpResponse {&lt;br /&gt;
    pub headers: Option&amp;lt;Headers&amp;gt;,&lt;br /&gt;
    pub status: Option&amp;lt;RawStatus&amp;gt;,&lt;br /&gt;
    pub body: Option&amp;lt;Vec&amp;lt;u8&amp;gt;&amp;gt;,&lt;br /&gt;
    pub pipeline_id: PipelineId,&lt;br /&gt;
} &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Changes were also made to the load_whole_resource function inside lib.rs for adding pipeline id&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pub fn load_whole_resource(resource_task: &amp;amp;ResourceTask, url: Url, pipeline_id: Option&amp;lt;PipelineId&amp;gt;)&lt;br /&gt;
        -&amp;gt; Result&amp;lt;(Metadata, Vec&amp;lt;u8&amp;gt;), String&amp;gt; {&lt;br /&gt;
    let (start_chan, start_port) = ipc::channel().unwrap();&lt;br /&gt;
    resource_task.send(ControlMsg::Load(LoadData::new(url, pipeline_id),&lt;br /&gt;
                       LoadConsumer::Channel(start_chan))).unwrap();&lt;br /&gt;
    let response = start_port.recv().unwrap();&lt;br /&gt;
&lt;br /&gt;
    let mut buf = vec!();&lt;br /&gt;
    loop {&lt;br /&gt;
        match response.progress_port.recv().unwrap() {&lt;br /&gt;
            ProgressMsg::Payload(data) =&amp;gt; buf.push_all(&amp;amp;data),&lt;br /&gt;
            ProgressMsg::Done(Ok(())) =&amp;gt; return Ok((response.metadata, buf)),&lt;br /&gt;
            ProgressMsg::Done(Err(e)) =&amp;gt; return Err(e)&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==='''Refactoring '''===&lt;br /&gt;
&lt;br /&gt;
== '''Test '''==&lt;br /&gt;
A unit test is added to test the new functionality of the pipeline id.&lt;br /&gt;
The testing is run by performing the following command in the command line: ./mach test-wpt&lt;br /&gt;
&lt;br /&gt;
==''' Implementation''' ==&lt;br /&gt;
Servo implements a very basic developer tools server that currently supports executing JS remotely and investigating the DOM tree in the document inspector. We want to expand these capabilities by exposing further information about HTTP requests and responses that web content initiates.&lt;br /&gt;
&amp;lt;ref&amp;gt;https://github.com/servo/servo/wiki/Expand-HTTP-request-response-monitoring&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==''' Project Benefits &amp;amp; Challenges ''' ==&lt;br /&gt;
'''Benefits''':&lt;br /&gt;
&amp;lt;p&amp;gt;1. Helps add additional debug to the HTTP monitoring in Servo&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;2. Provides developers capability of monitoring the data traffic&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;3. Mozilla messages are clearly analyzed using Servo&amp;lt;/p&amp;gt;&lt;br /&gt;
'''Challenges''':&lt;br /&gt;
&amp;lt;p&amp;gt;Rust code development presents a challenge as the build environment takes time to build. Adding additional filters to the Servo causes failures initially as development tends to be a hit or miss. Communicating with both the TA and the Mozilla team members is critical. &lt;br /&gt;
It is generally expected that new changes should not introduce new crashes in the testsuite however this was not the case. The team did encounter crashes when unit tests were carried out.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Design Pattern'''==&lt;br /&gt;
The requirements did not require us to implement any design pattern.&lt;br /&gt;
&lt;br /&gt;
== '''External Links'''==&lt;br /&gt;
Also see:&lt;br /&gt;
&amp;lt;p&amp;gt;[http://doc.servo.org/servo/index.html/ Development]&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;[https://github.com/servo/servo/wiki/Devtools/ Attaching Developer Tools]&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''References''' ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Abhina</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015/oss/M1502/AAAASS&amp;diff=98709</id>
		<title>CSC/ECE 517 Fall 2015/oss/M1502/AAAASS</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015/oss/M1502/AAAASS&amp;diff=98709"/>
		<updated>2015-11-07T03:55:37Z</updated>

		<summary type="html">&lt;p&gt;Abhina: /* Code Changes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''M1502: Improve HTTP monitoring devtool support'''==&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. We want to expand these capabilities by exposing further information about HTTP requests and responses that web content initiates. &lt;br /&gt;
&amp;lt;ref&amp;gt;https://github.com/servo/servo/wiki/Expand-HTTP-request-response-monitoring&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==''' Github Location''' ==&lt;br /&gt;
 https://github.com/akumar21NCSU/servo&lt;br /&gt;
&lt;br /&gt;
==''' Build Process''' ==&lt;br /&gt;
git clone https://github.com/servo/servo&lt;br /&gt;
cd servo&lt;br /&gt;
./mach build --dev&lt;br /&gt;
./mach run tests/html/about-mozilla.html&lt;br /&gt;
&lt;br /&gt;
==''' Forked Branch''' ==&lt;br /&gt;
A branch was forked from https://github.com/servo/servo and placed at the following location:  https://github.com/akumar21NCSU/servo&lt;br /&gt;
&lt;br /&gt;
==''' Development''' ==&lt;br /&gt;
The primary goal of the development effort is to support the presence of a pipeline id.&lt;br /&gt;
The goal is to pass values to send_request_to_devtools derived from the actual request. The request containing the new pipeline id. &lt;br /&gt;
The development command is: ./mach build --dev&lt;br /&gt;
&lt;br /&gt;
=='''Code Changes'''==&lt;br /&gt;
&lt;br /&gt;
==='''Adding pipeline Id'''===&lt;br /&gt;
&lt;br /&gt;
Pipeline id was added in http_loader.rs file for request and response messages.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fn send_request_to_devtools(devtools_chan: Option&amp;lt;Sender&amp;lt;DevtoolsControlMsg&amp;gt;&amp;gt;,&lt;br /&gt;
                            request_id: String,&lt;br /&gt;
                            url: Url,&lt;br /&gt;
                            method: Method,&lt;br /&gt;
                            headers: Headers,&lt;br /&gt;
                            body: Option&amp;lt;Vec&amp;lt;u8&amp;gt;&amp;gt;,&lt;br /&gt;
                            pipeline_id: PipelineId) {&lt;br /&gt;
&lt;br /&gt;
    if let Some(ref chan) = devtools_chan {&lt;br /&gt;
        let request = DevtoolsHttpRequest {&lt;br /&gt;
            url: url, method: method, headers: headers, body: body, pipeline_id: pipeline_id };&lt;br /&gt;
        let net_event = NetworkEvent::HttpRequest(request);&lt;br /&gt;
&lt;br /&gt;
        let msg = ChromeToDevtoolsControlMsg::NetworkEvent(request_id, net_event);&lt;br /&gt;
        chan.send(DevtoolsControlMsg::FromChrome(msg)).unwrap();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fn send_response_to_devtools(devtools_chan: Option&amp;lt;Sender&amp;lt;DevtoolsControlMsg&amp;gt;&amp;gt;,&lt;br /&gt;
                             request_id: String,&lt;br /&gt;
                             headers: Option&amp;lt;Headers&amp;gt;,&lt;br /&gt;
                             status: Option&amp;lt;RawStatus&amp;gt;,&lt;br /&gt;
                             pipeline_id: PipelineId) {&lt;br /&gt;
    if let Some(ref chan) = devtools_chan {&lt;br /&gt;
        let response = DevtoolsHttpResponse { headers: headers, status: status, body: None, pipeline_id: pipeline_id };&lt;br /&gt;
        let net_event_response = NetworkEvent::HttpResponse(response);&lt;br /&gt;
&lt;br /&gt;
        let msg = ChromeToDevtoolsControlMsg::NetworkEvent(request_id, net_event_response);&lt;br /&gt;
        chan.send(DevtoolsControlMsg::FromChrome(msg)).unwrap();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This required us to change HttpRequest and HttpResponse structs in lib.rs file inside devtool_traits.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pub struct HttpRequest {&lt;br /&gt;
    pub url: Url,&lt;br /&gt;
    pub method: Method,&lt;br /&gt;
    pub headers: Headers,&lt;br /&gt;
    pub body: Option&amp;lt;Vec&amp;lt;u8&amp;gt;&amp;gt;,&lt;br /&gt;
    pub pipeline_id: PipelineId,&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pub struct HttpResponse {&lt;br /&gt;
    pub headers: Option&amp;lt;Headers&amp;gt;,&lt;br /&gt;
    pub status: Option&amp;lt;RawStatus&amp;gt;,&lt;br /&gt;
    pub body: Option&amp;lt;Vec&amp;lt;u8&amp;gt;&amp;gt;,&lt;br /&gt;
    pub pipeline_id: PipelineId,&lt;br /&gt;
} &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==='''Refactoring '''===&lt;br /&gt;
&lt;br /&gt;
== '''Test '''==&lt;br /&gt;
A unit test is added to test the new functionality of the pipeline id.&lt;br /&gt;
The testing is run by performing the following command in the command line: ./mach test-wpt&lt;br /&gt;
&lt;br /&gt;
==''' Implementation''' ==&lt;br /&gt;
Servo implements a very basic developer tools server that currently supports executing JS remotely and investigating the DOM tree in the document inspector. We want to expand these capabilities by exposing further information about HTTP requests and responses that web content initiates.&lt;br /&gt;
&amp;lt;ref&amp;gt;https://github.com/servo/servo/wiki/Expand-HTTP-request-response-monitoring&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==''' Project Benefits &amp;amp; Challenges ''' ==&lt;br /&gt;
'''Benefits''':&lt;br /&gt;
&amp;lt;p&amp;gt;1. Helps add additional debug to the HTTP monitoring in Servo&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;2. Provides developers capability of monitoring the data traffic&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;3. Mozilla messages are clearly analyzed using Servo&amp;lt;/p&amp;gt;&lt;br /&gt;
'''Challenges''':&lt;br /&gt;
&amp;lt;p&amp;gt;Rust code development presents a challenge as the build environment takes time to build. Adding additional filters to the Servo causes failures initially as development tends to be a hit or miss. Communicating with both the TA and the Mozilla team members is critical. &lt;br /&gt;
It is generally expected that new changes should not introduce new crashes in the testsuite however this was not the case. The team did encounter crashes when unit tests were carried out.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Design Pattern'''==&lt;br /&gt;
The requirements did not require us to implement any design pattern.&lt;br /&gt;
&lt;br /&gt;
== '''External Links'''==&lt;br /&gt;
Also see:&lt;br /&gt;
&amp;lt;p&amp;gt;[http://doc.servo.org/servo/index.html/ Development]&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;[https://github.com/servo/servo/wiki/Devtools/ Attaching Developer Tools]&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''References''' ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Abhina</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015/oss/M1502/AAAASS&amp;diff=98708</id>
		<title>CSC/ECE 517 Fall 2015/oss/M1502/AAAASS</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015/oss/M1502/AAAASS&amp;diff=98708"/>
		<updated>2015-11-07T03:49:07Z</updated>

		<summary type="html">&lt;p&gt;Abhina: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''M1502: Improve HTTP monitoring devtool support'''==&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. We want to expand these capabilities by exposing further information about HTTP requests and responses that web content initiates. &lt;br /&gt;
&amp;lt;ref&amp;gt;https://github.com/servo/servo/wiki/Expand-HTTP-request-response-monitoring&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==''' Github Location''' ==&lt;br /&gt;
 https://github.com/akumar21NCSU/servo&lt;br /&gt;
&lt;br /&gt;
==''' Build Process''' ==&lt;br /&gt;
git clone https://github.com/servo/servo&lt;br /&gt;
cd servo&lt;br /&gt;
./mach build --dev&lt;br /&gt;
./mach run tests/html/about-mozilla.html&lt;br /&gt;
&lt;br /&gt;
==''' Forked Branch''' ==&lt;br /&gt;
A branch was forked from https://github.com/servo/servo and placed at the following location:  https://github.com/akumar21NCSU/servo&lt;br /&gt;
&lt;br /&gt;
==''' Development''' ==&lt;br /&gt;
The primary goal of the development effort is to support the presence of a pipeline id.&lt;br /&gt;
The goal is to pass values to send_request_to_devtools derived from the actual request. The request containing the new pipeline id. &lt;br /&gt;
The development command is: ./mach build --dev&lt;br /&gt;
&lt;br /&gt;
=='''Code Changes'''==&lt;br /&gt;
&lt;br /&gt;
Pipeline id was added in http_loader.rs file for request and response messages.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fn send_request_to_devtools(devtools_chan: Option&amp;lt;Sender&amp;lt;DevtoolsControlMsg&amp;gt;&amp;gt;,&lt;br /&gt;
                            request_id: String,&lt;br /&gt;
                            url: Url,&lt;br /&gt;
                            method: Method,&lt;br /&gt;
                            headers: Headers,&lt;br /&gt;
                            body: Option&amp;lt;Vec&amp;lt;u8&amp;gt;&amp;gt;,&lt;br /&gt;
                            pipeline_id: PipelineId) {&lt;br /&gt;
&lt;br /&gt;
    if let Some(ref chan) = devtools_chan {&lt;br /&gt;
        let request = DevtoolsHttpRequest {&lt;br /&gt;
            url: url, method: method, headers: headers, body: body, pipeline_id: pipeline_id };&lt;br /&gt;
        let net_event = NetworkEvent::HttpRequest(request);&lt;br /&gt;
&lt;br /&gt;
        let msg = ChromeToDevtoolsControlMsg::NetworkEvent(request_id, net_event);&lt;br /&gt;
        chan.send(DevtoolsControlMsg::FromChrome(msg)).unwrap();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fn send_response_to_devtools(devtools_chan: Option&amp;lt;Sender&amp;lt;DevtoolsControlMsg&amp;gt;&amp;gt;,&lt;br /&gt;
                             request_id: String,&lt;br /&gt;
                             headers: Option&amp;lt;Headers&amp;gt;,&lt;br /&gt;
                             status: Option&amp;lt;RawStatus&amp;gt;,&lt;br /&gt;
                             pipeline_id: PipelineId) {&lt;br /&gt;
    if let Some(ref chan) = devtools_chan {&lt;br /&gt;
        let response = DevtoolsHttpResponse { headers: headers, status: status, body: None, pipeline_id: pipeline_id };&lt;br /&gt;
        let net_event_response = NetworkEvent::HttpResponse(response);&lt;br /&gt;
&lt;br /&gt;
        let msg = ChromeToDevtoolsControlMsg::NetworkEvent(request_id, net_event_response);&lt;br /&gt;
        chan.send(DevtoolsControlMsg::FromChrome(msg)).unwrap();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This required us to change HttpRequest and HttpResponse structs in lib.rs file inside devtool_traits.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pub struct HttpRequest {&lt;br /&gt;
    pub url: Url,&lt;br /&gt;
    pub method: Method,&lt;br /&gt;
    pub headers: Headers,&lt;br /&gt;
    pub body: Option&amp;lt;Vec&amp;lt;u8&amp;gt;&amp;gt;,&lt;br /&gt;
    pub pipeline_id: PipelineId,&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pub struct HttpResponse {&lt;br /&gt;
    pub headers: Option&amp;lt;Headers&amp;gt;,&lt;br /&gt;
    pub status: Option&amp;lt;RawStatus&amp;gt;,&lt;br /&gt;
    pub body: Option&amp;lt;Vec&amp;lt;u8&amp;gt;&amp;gt;,&lt;br /&gt;
    pub pipeline_id: PipelineId,&lt;br /&gt;
} &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Test '''==&lt;br /&gt;
A unit test is added to test the new functionality of the pipeline id.&lt;br /&gt;
The testing is run by performing the following command in the command line: ./mach test-wpt&lt;br /&gt;
&lt;br /&gt;
==''' Implementation''' ==&lt;br /&gt;
Servo implements a very basic developer tools server that currently supports executing JS remotely and investigating the DOM tree in the document inspector. We want to expand these capabilities by exposing further information about HTTP requests and responses that web content initiates.&lt;br /&gt;
&amp;lt;ref&amp;gt;https://github.com/servo/servo/wiki/Expand-HTTP-request-response-monitoring&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==''' Project Benefits &amp;amp; Challenges ''' ==&lt;br /&gt;
'''Benefits''':&lt;br /&gt;
&amp;lt;p&amp;gt;1. Helps add additional debug to the HTTP monitoring in Servo&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;2. Provides developers capability of monitoring the data traffic&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;3. Mozilla messages are clearly analyzed using Servo&amp;lt;/p&amp;gt;&lt;br /&gt;
'''Challenges''':&lt;br /&gt;
&amp;lt;p&amp;gt;Rust code development presents a challenge as the build environment takes time to build. Adding additional filters to the Servo causes failures initially as development tends to be a hit or miss. Communicating with both the TA and the Mozilla team members is critical. &lt;br /&gt;
It is generally expected that new changes should not introduce new crashes in the testsuite however this was not the case. The team did encounter crashes when unit tests were carried out.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Design Pattern'''==&lt;br /&gt;
The requirements did not require us to implement any design pattern.&lt;br /&gt;
&lt;br /&gt;
== '''External Links'''==&lt;br /&gt;
Also see:&lt;br /&gt;
&amp;lt;p&amp;gt;[http://doc.servo.org/servo/index.html/ Development]&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;[https://github.com/servo/servo/wiki/Devtools/ Attaching Developer Tools]&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''References''' ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Abhina</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015/oss/M1502/AAAASS&amp;diff=98707</id>
		<title>CSC/ECE 517 Fall 2015/oss/M1502/AAAASS</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015/oss/M1502/AAAASS&amp;diff=98707"/>
		<updated>2015-11-07T03:40:35Z</updated>

		<summary type="html">&lt;p&gt;Abhina: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''M1502: Improve HTTP monitoring devtool support'''==&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. We want to expand these capabilities by exposing further information about HTTP requests and responses that web content initiates. &lt;br /&gt;
&amp;lt;ref&amp;gt;https://github.com/servo/servo/wiki/Expand-HTTP-request-response-monitoring&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==''' Github Location''' ==&lt;br /&gt;
 https://github.com/akumar21NCSU/servo&lt;br /&gt;
&lt;br /&gt;
==''' Build Process''' ==&lt;br /&gt;
git clone https://github.com/servo/servo&lt;br /&gt;
cd servo&lt;br /&gt;
./mach build --dev&lt;br /&gt;
./mach run tests/html/about-mozilla.html&lt;br /&gt;
&lt;br /&gt;
==''' Forked Branch''' ==&lt;br /&gt;
A branch was forked from https://github.com/servo/servo and placed at the following location:  https://github.com/akumar21NCSU/servo&lt;br /&gt;
&lt;br /&gt;
==''' Development''' ==&lt;br /&gt;
The primary goal of the development effort is to support the presence of a pipeline id.&lt;br /&gt;
The goal is to pass values to send_request_to_devtools derived from the actual request. The request containing the new pipeline id. &lt;br /&gt;
The development command is: ./mach build --dev&lt;br /&gt;
&lt;br /&gt;
=='''Code Changes'''==&lt;br /&gt;
&lt;br /&gt;
Pipeline id was added in http_loader.rs file for request and response messages.&lt;br /&gt;
&lt;br /&gt;
fn send_request_to_devtools(devtools_chan: Option&amp;lt;Sender&amp;lt;DevtoolsControlMsg&amp;gt;&amp;gt;,&lt;br /&gt;
                            request_id: String,&lt;br /&gt;
                            url: Url,&lt;br /&gt;
                            method: Method,&lt;br /&gt;
                            headers: Headers,&lt;br /&gt;
                            body: Option&amp;lt;Vec&amp;lt;u8&amp;gt;&amp;gt;,&lt;br /&gt;
                            pipeline_id: PipelineId) {&lt;br /&gt;
&lt;br /&gt;
    if let Some(ref chan) = devtools_chan {&lt;br /&gt;
        let request = DevtoolsHttpRequest {&lt;br /&gt;
            url: url, method: method, headers: headers, body: body, pipeline_id: pipeline_id };&lt;br /&gt;
        let net_event = NetworkEvent::HttpRequest(request);&lt;br /&gt;
&lt;br /&gt;
        let msg = ChromeToDevtoolsControlMsg::NetworkEvent(request_id, net_event);&lt;br /&gt;
        chan.send(DevtoolsControlMsg::FromChrome(msg)).unwrap();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
fn send_response_to_devtools(devtools_chan: Option&amp;lt;Sender&amp;lt;DevtoolsControlMsg&amp;gt;&amp;gt;,&lt;br /&gt;
                             request_id: String,&lt;br /&gt;
                             headers: Option&amp;lt;Headers&amp;gt;,&lt;br /&gt;
                             status: Option&amp;lt;RawStatus&amp;gt;,&lt;br /&gt;
                             pipeline_id: PipelineId) {&lt;br /&gt;
    if let Some(ref chan) = devtools_chan {&lt;br /&gt;
        let response = DevtoolsHttpResponse { headers: headers, status: status, body: None, pipeline_id: pipeline_id };&lt;br /&gt;
        let net_event_response = NetworkEvent::HttpResponse(response);&lt;br /&gt;
&lt;br /&gt;
        let msg = ChromeToDevtoolsControlMsg::NetworkEvent(request_id, net_event_response);&lt;br /&gt;
        chan.send(DevtoolsControlMsg::FromChrome(msg)).unwrap();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
This required us to change HttpRequest and HttpResponse structs in lib.rs file inside devtool_traits.&lt;br /&gt;
&lt;br /&gt;
pub struct HttpRequest {&lt;br /&gt;
    pub url: Url,&lt;br /&gt;
    pub method: Method,&lt;br /&gt;
    pub headers: Headers,&lt;br /&gt;
    pub body: Option&amp;lt;Vec&amp;lt;u8&amp;gt;&amp;gt;,&lt;br /&gt;
    pub pipeline_id: PipelineId,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#[derive(Debug, PartialEq)]&lt;br /&gt;
pub struct HttpResponse {&lt;br /&gt;
    pub headers: Option&amp;lt;Headers&amp;gt;,&lt;br /&gt;
    pub status: Option&amp;lt;RawStatus&amp;gt;,&lt;br /&gt;
    pub body: Option&amp;lt;Vec&amp;lt;u8&amp;gt;&amp;gt;,&lt;br /&gt;
    pub pipeline_id: PipelineId,&lt;br /&gt;
} &lt;br /&gt;
&lt;br /&gt;
== '''Test '''==&lt;br /&gt;
A unit test is added to test the new functionality of the pipeline id.&lt;br /&gt;
The testing is run by performing the following command in the command line: ./mach test-wpt&lt;br /&gt;
&lt;br /&gt;
==''' Implementation''' ==&lt;br /&gt;
Servo implements a very basic developer tools server that currently supports executing JS remotely and investigating the DOM tree in the document inspector. We want to expand these capabilities by exposing further information about HTTP requests and responses that web content initiates.&lt;br /&gt;
&amp;lt;ref&amp;gt;https://github.com/servo/servo/wiki/Expand-HTTP-request-response-monitoring&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==''' Project Benefits &amp;amp; Challenges ''' ==&lt;br /&gt;
'''Benefits''':&lt;br /&gt;
&amp;lt;p&amp;gt;1. Helps add additional debug to the HTTP monitoring in Servo&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;2. Provides developers capability of monitoring the data traffic&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;3. Mozilla messages are clearly analyzed using Servo&amp;lt;/p&amp;gt;&lt;br /&gt;
'''Challenges''':&lt;br /&gt;
&amp;lt;p&amp;gt;Rust code development presents a challenge as the build environment takes time to build. Adding additional filters to the Servo causes failures initially as development tends to be a hit or miss. Communicating with both the TA and the Mozilla team members is critical. &lt;br /&gt;
It is generally expected that new changes should not introduce new crashes in the testsuite however this was not the case. The team did encounter crashes when unit tests were carried out.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Design Pattern'''==&lt;br /&gt;
The requirements did not require us to implement any design pattern.&lt;br /&gt;
&lt;br /&gt;
== '''External Links'''==&lt;br /&gt;
Also see:&lt;br /&gt;
&amp;lt;p&amp;gt;[http://doc.servo.org/servo/index.html/ Development]&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;[https://github.com/servo/servo/wiki/Devtools/ Attaching Developer Tools]&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''References''' ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Abhina</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015/oss/M1502/AAAASS&amp;diff=98702</id>
		<title>CSC/ECE 517 Fall 2015/oss/M1502/AAAASS</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2015/oss/M1502/AAAASS&amp;diff=98702"/>
		<updated>2015-11-07T03:22:33Z</updated>

		<summary type="html">&lt;p&gt;Abhina: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''M1502: Improve HTTP monitoring devtool support'''==&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. We want to expand these capabilities by exposing further information about HTTP requests and responses that web content initiates. &lt;br /&gt;
&amp;lt;ref&amp;gt;https://github.com/servo/servo/wiki/Expand-HTTP-request-response-monitoring&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==''' Github Location''' ==&lt;br /&gt;
 https://github.com/akumar21NCSU/servo&lt;br /&gt;
&lt;br /&gt;
==''' Build Process''' ==&lt;br /&gt;
git clone https://github.com/servo/servo&lt;br /&gt;
cd servo&lt;br /&gt;
./mach build --dev&lt;br /&gt;
./mach run tests/html/about-mozilla.html&lt;br /&gt;
&lt;br /&gt;
==''' Forked Branch''' ==&lt;br /&gt;
A branch was forked from https://github.com/servo/servo and placed at the following location:  https://github.com/akumar21NCSU/servo&lt;br /&gt;
&lt;br /&gt;
==''' Development''' ==&lt;br /&gt;
The primary goal of the development effort is to support the presence of a pipeline id.&lt;br /&gt;
The goal is to pass values to send_request_to_devtools derived from the actual request. The request containing the new pipeline id. &lt;br /&gt;
The development command is: ./mach build --dev&lt;br /&gt;
&lt;br /&gt;
== '''Test '''==&lt;br /&gt;
A unit test is added to test the new functionality of the pipeline id.&lt;br /&gt;
The testing is run by performing the following command in the command line: ./mach test-wpt&lt;br /&gt;
&lt;br /&gt;
==''' Implementation''' ==&lt;br /&gt;
Servo implements a very basic developer tools server that currently supports executing JS remotely and investigating the DOM tree in the document inspector. We want to expand these capabilities by exposing further information about HTTP requests and responses that web content initiates.&lt;br /&gt;
&amp;lt;ref&amp;gt;https://github.com/servo/servo/wiki/Expand-HTTP-request-response-monitoring&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==''' Project Benefits &amp;amp; Challenges ''' ==&lt;br /&gt;
'''Benefits''':&lt;br /&gt;
&amp;lt;p&amp;gt;1. Helps add additional debug to the HTTP monitoring in Servo&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;2. Provides developers capability of monitoring the data traffic&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;3. Mozilla messages are clearly analyzed using Servo&amp;lt;/p&amp;gt;&lt;br /&gt;
'''Challenges''':&lt;br /&gt;
&amp;lt;p&amp;gt;Rust code development presents a challenge as the build environment takes time to build. Adding additional filters to the Servo causes failures initially as development tends to be a hit or miss. Communicating with both the TA and the Mozilla team members is critical. &lt;br /&gt;
It is generally expected that new changes should not introduce new crashes in the testsuite however this was not the case. The team did encounter crashes when unit tests were carried out.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Design Pattern'''==&lt;br /&gt;
The requirements did not require us to implement any design pattern.&lt;br /&gt;
&lt;br /&gt;
== '''External Links'''==&lt;br /&gt;
Also see:&lt;br /&gt;
&amp;lt;p&amp;gt;[http://doc.servo.org/servo/index.html/ Development]&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;[https://github.com/servo/servo/wiki/Devtools/ Attaching Developer Tools]&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''References''' ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Abhina</name></author>
	</entry>
</feed>