Difference between revisions of "Contribute to Private Browsing Tests"
m (→Project Details) |
m (→Milestone 0.3 (Audio / Video HTML5 Unit Tests)) |
||
(59 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
− | = Private Browsing Tests = | + | = Private Browsing Tests (and Video/Audio HTML5) = |
* Project assigned to [[User:AaronMT|AaronMT]] | * Project assigned to [[User:AaronMT|AaronMT]] | ||
== An Introduction == | == An Introduction == | ||
Line 44: | Line 44: | ||
*Milestone 0.1 will contain the History component unit test. | *Milestone 0.1 will contain the History component unit test. | ||
*Milestone 0.2 will contain the Session Store component unit test. | *Milestone 0.2 will contain the Session Store component unit test. | ||
+ | **Private Browsing Has Landed | ||
+ | *Milestone 0.3 will move on to a different testing area: [https://wiki.mozilla.org/QA/Firefox3.1/Video_And_Audio_TestPlan#Functional_Tests Video and Audio Tests] | ||
Note: '''Some areas already covered by Ehsan and others working on Bug #248970.''' | Note: '''Some areas already covered by Ehsan and others working on Bug #248970.''' | ||
Line 76: | Line 78: | ||
=== What to expect for 0.2 release? === | === What to expect for 0.2 release? === | ||
* I plan to have a unit test complete for the testing area involved with session storage. This will be submitted to Ehsan as well. | * I plan to have a unit test complete for the testing area involved with session storage. This will be submitted to Ehsan as well. | ||
+ | ** Session store unit test - Chrome Browser Test reviewed by Ehsan and Simon | ||
+ | ** Session store unit test - Browser Test reviewed by Ehsan and Simon | ||
+ | ** Blogged about it | ||
+ | ** Post both tests | ||
+ | ** Screenshots | ||
+ | ** Submit deliverables | ||
+ | |||
+ | === What to expect for 0.3 release? === | ||
+ | * I plan to have a unit test complete for the testing area involved with session storage. This will be submitted to Ehsan as well. | ||
+ | ** I hope to have around 5-6 tests written for audio/video | ||
+ | *** test_readonly.html | ||
+ | *** test_mimetypes.html | ||
+ | *** test_continueplay.html | ||
+ | *** test_reload.html | ||
+ | *** test_tableembed.html | ||
+ | *** test_multipleplayback.html | ||
+ | |||
+ | ** http://matrix.senecac.on.ca/~amtrain/BSD/DPS909/Mozilla/AV/mochitest/ | ||
+ | |||
+ | * I will be working on <audio> and <video> tag testing | ||
+ | [http://ehsanakhgari.org/blog/2008-10-19/first-bits-private-browsing-patch-landed Private Browsing Patch has Landed!] | ||
+ | * Bug Number #: [https://bugzilla.mozilla.org/show_bug.cgi?id=382267 382267] | ||
+ | * Testing Plan: [https://wiki.mozilla.org/QA/Firefox3.1/Video_And_Audio_TestPlan#Functional_Tests Video and Audio Tests] | ||
== Project Deliverables == | == Project Deliverables == | ||
Line 119: | Line 144: | ||
3. Of course the friendly help of peers and professors and other Mozilla developers derived from channels on ''irc.Mozilla.org, IRC''. | 3. Of course the friendly help of peers and professors and other Mozilla developers derived from channels on ''irc.Mozilla.org, IRC''. | ||
+ | |||
+ | === Milestone 0.2 === | ||
+ | <font color="green">'''Session Store Unit Test(s) - Complete'''</font> | ||
+ | {| border="1" | ||
+ | !Private Browsing Testing Area | ||
+ | !Private Browsing Unit Test (My Work) | ||
+ | |- | ||
+ | | [https://wiki.mozilla.org/Firefox3.1/PrivateBrowsing/TestPlan#Session_store Session Store Unit Test] | ||
+ | | [http://matrix.senecac.on.ca/~amtrain/BSD/DPS909/Mozilla/PB/unit/browser_248970_a.js browser_248970_a.js] & [http://matrix.senecac.on.ca/~amtrain/BSD/DPS909/Mozilla/PB/unit/browser_248970_b.js browser_248970_b.js] & [http://matrix.senecac.on.ca/~amtrain/BSD/DPS909/Mozilla/PB/unit/browser_248970_b_sample.html browser_248970_b_sample.html] | ||
+ | |- | ||
+ | |} | ||
+ | <br/> | ||
+ | <font color="green">Visual Representation of Session store testing area -> [http://aaronmt.wordpress.com/2008/10/04/a-visual-representation-of-my-projects-second-testing-area/ My Blog - Click Here]</font> | ||
+ | |||
+ | '''My tests have landed into the mozilla cross reference and are included in the trunk ready for Firefox 3.1!''' | ||
+ | [[Image:Ss_landing.jpg]] | ||
+ | |||
+ | '''E-Mail appraisal from Ehsan (Example)''' | ||
+ | http://matrix.senecac.on.ca/~amtrain/other/email2.jpg | ||
+ | |||
+ | ==== What I learned? ==== | ||
+ | * October / November | ||
+ | ** More on Private Browsing - Functionality, features and usage, specifically session store, downloader manager, memory hashtables | ||
+ | ** Chrome Browser Tests - Similarities and differences between these forms of tests and XPCSHell unit tests | ||
+ | ** Writing Browser Tests using sample HTML files, manipulating session store data across entry and exit of private browsing mode | ||
+ | ** Other, multitude of other associated bugs related to [https://bugzilla.mozilla.org/show_bug.cgi?id=248970 #248970] | ||
+ | |||
+ | With the completion of milestone 0.2, the deadline for Private Browsing testing has expired! Private Browsing has landed into Firefox 3.1! | ||
+ | |||
+ | Next milestone release will shift focus into a separate area. | ||
+ | |||
+ | |||
+ | ==== Community Interaction ==== | ||
+ | |||
+ | Unlike in Milestone 0.1, this time around I primarily interacted through #developers and through conversation in email. | ||
+ | |||
+ | *'''(1) Primarily''': Tremendous aid, assitance and conversations with [http://ehsanakhgari.org/ Ehsan Akhgari] | ||
+ | *'''(2) Secondary''': IRC #seneca #ext #mozdev #places | ||
+ | *'''(3) Thirdly''': http://developer.mozilla.org/En | ||
+ | |||
+ | === Milestone 0.3 (Audio / Video HTML5 Unit Tests) === | ||
+ | <font color="green">'''My HTML5 Audio / Video Unit Test(s) - Complete'''</font> | ||
+ | {| border="1" | ||
+ | !Video/Audio Testing Area | ||
+ | !Video/Audio Unit Test (My Work) | ||
+ | |- | ||
+ | | [https://wiki.mozilla.org/QA/Firefox3.1/Video_And_Audio_TestPlan Video and Audio Test Plan] | ||
+ | | [http://matrix.senecac.on.ca/~amtrain/BSD/DPS909/Mozilla/AV/mochitest/test_readonly.html test_readonly.html] & [http://matrix.senecac.on.ca/~amtrain/BSD/DPS909/Mozilla/AV/mochitest/test_continuePlay.html test_continueplay.html] & [http://matrix.senecac.on.ca/~amtrain/BSD/DPS909/Mozilla/AV/mochitest/test_multipleplayback.html test_multipleplayback] & [http://matrix.senecac.on.ca/~amtrain/BSD/DPS909/Mozilla/AV/mochitest/test_reload.html test_reload.html] [http://matrix.senecac.on.ca/~amtrain/BSD/DPS909/Mozilla/AV/mochitest/file.html file.html] & [http://matrix.senecac.on.ca/~amtrain/BSD/DPS909/Mozilla/AV/mochitest/test_mimetype.html test_mimetype.html] & [http://matrix.senecac.on.ca/~amtrain/BSD/DPS909/Mozilla/AV/mochitest/test_tableembed.html test_tableembed.html] & [http://matrix.senecac.on.ca/~amtrain/BSD/DPS909/Mozilla/AV/mochitest/seek.ogg seek.ogg]& [http://matrix.senecac.on.ca/~amtrain/BSD/DPS909/Mozilla/AV/mochitest/320x240.ogg 320x240.ogg] [http://matrix.senecac.on.ca/~amtrain/BSD/DPS909/Mozilla/AV/mochitest/r11025_s16_c1.wav r11025_s16_c1.wav] & [http://matrix.senecac.on.ca/~amtrain/BSD/DPS909/Mozilla/AV/mochitest/r11025_u8_c1.wav r11025_u8_c1.wav] | ||
+ | |- | ||
+ | |} | ||
+ | <br/> | ||
+ | |||
+ | '''These are mochitests, which must be ran using 'python runtests.py' in obj/_tests/testing/content/media/video/test''' - you will see nothing if you just click on them (otherwise you can hit Ctrl-U to view source on them) | ||
+ | |||
+ | Package Archive: [http://matrix.senecac.on.ca/~amtrain/BSD/DPS909/Mozilla/AV/mochitest/HTML5_Firefox_AV_Tests.zip click here] | ||
+ | |||
+ | *'''My Video/Audio Tests''': | ||
+ | ** test_readonly - '''tests that attributes pertaining to video/audio can not be changed or altered''' | ||
+ | ** test_reload / file - '''tests that both a reload of a window and video work correctly, i.e., playback restarts''' | ||
+ | ** test_multipleplayback - '''tests that six or more videos work properly when played simultaneously, playback works''' | ||
+ | ** test_tableembed - '''tests that the new video element functions correctly when embedded in a table''' | ||
+ | ** test_mimetype - '''a future test that will test canPlayType() [upon implementation] testing obscure codecs and media MIMETYPES''' | ||
+ | ** test_continuePlay - '''tests that playback on a video will continue to play regardless if focus is in a newly opened tab''' | ||
+ | |||
+ | '''E-Mail convesations with Clint Talbert(Example)''' | ||
+ | http://matrix.senecac.on.ca/~amtrain/other/email3.jpg | ||
+ | |||
+ | ==== What I learned? ==== | ||
+ | * October / November | ||
+ | ** Audio / Video HTML5 WHATWG Elements | ||
+ | ** Mochitests - What/Why/How | ||
+ | ** Chrome Elevation Techniques for Mochitests | ||
+ | ** Observers/EventListeners | ||
+ | |||
+ | With the completion of milestone 0.3, I have learned so much from one course over the course of four months that I am tremendously appreciative of. Coming into Mozilla, I had only touched on Unit Tests once in my programming diploma program. Now I feel comfortable in writing any test. | ||
+ | |||
+ | ==== Community Interaction ==== | ||
+ | |||
+ | Unlike in Milestone 0.3, this time around I primarily interacted through #qa and through conversation in email. | ||
+ | |||
+ | *'''(1) Primarily''': Tremendous aid, assistance and conversations with [http://cmtalbert.wordpress.com/ Clint Talbert] | ||
+ | *'''(2) Secondary''': IRC #qa | ||
+ | *'''(3) Thirdly''': http://developer.mozilla.org/En | ||
+ | |||
+ | |||
+ | ==== Challenges ==== | ||
+ | |||
+ | Major challenges: | ||
+ | |||
+ | *'''(1)''' Halting focus on Private Browsing and leaping into Audio Visual / HTML5 provided was for me challenging as I had felt comfortable in the area I was originally focusing on. | ||
+ | *'''(2)''' Seeking assistance from those working on Audio Visual / HTML5 aspects rather than those working on Private Browsing | ||
+ | *'''(3)''' <u>Much</u> quieter bug on Bugzilla - a challenge seeing what's new/what's happening. | ||
+ | *'''(4)''' Mochitest Chrome Privilege Elevation -> Netscape thing! | ||
+ | *'''(5)''' Picking unit tests that I felt comfortable in persuing. | ||
== Quick Project Notes == | == Quick Project Notes == | ||
+ | * nsiSessionStore -> [http://developer.mozilla.org/en/nsISessionStore nsiSessionStore Doc] | ||
* File/IO Session Store (sessionstore.js) | * File/IO Session Store (sessionstore.js) | ||
** http://developer.mozilla.org/en/Code_snippets/File_I%2f%2fO#Getting_special_files | ** http://developer.mozilla.org/en/Code_snippets/File_I%2f%2fO#Getting_special_files | ||
Line 138: | Line 258: | ||
* [[User:AaronMT|AaronMT]] | * [[User:AaronMT|AaronMT]] | ||
== Project Contributor(s) == | == Project Contributor(s) == | ||
− | + | ===Private Browsing contributions=== | |
'''Area's where you could contribute to my project''' | '''Area's where you could contribute to my project''' | ||
Line 153: | Line 273: | ||
* Build Firefox. | * Build Firefox. | ||
* Open Firefox. | * Open Firefox. | ||
− | * '''Follow this test plan''': | + | * '''Follow this test plan or the following test plan''': |
− | ** Visit a bunch of websites, ranging from anything in particular. | + | ** Test Plan - Places (History / Bookmarks) |
− | ** Create a bookmark from one of the sites. | + | *** Visit a bunch of websites, ranging from anything in particular. |
− | ** Enter private browsing mode '''Tools -> Private Browsing Mode''' with a new session. | + | *** Create a bookmark from one of the sites. |
− | ** Open your history and visit the same sites, the visit count should not increase (this is visible in History -> Show All History, add the new column). | + | *** Enter private browsing mode '''Tools -> Private Browsing Mode''' with a new session. |
− | ** Check if your bookmark has been visited, it should not. | + | *** Open your history and visit the same sites, the visit count should not increase (this is visible in History -> Show All History, add the new column). |
− | ** Visit new web sites, they should not be added to your history list. | + | *** Check if your bookmark has been visited, it should not. |
− | ** Add a bookmark from a new website. | + | *** Visit new web sites, they should not be added to your history list. |
− | ** Exit private browsing mode. | + | *** Add a bookmark from a new website. |
− | ** Both bookmarks should still be accessible. | + | *** Exit private browsing mode. |
− | ** Visit the sites in your history again, the visit count should now increase (History -> Show All History). | + | *** Both bookmarks should still be accessible. |
+ | *** Visit the sites in your history again, the visit count should now increase (History -> Show All History). | ||
+ | ** Test Plan - Session Store (Tabs) | ||
+ | *** Clear all Private Data (Ctrl-Shit-Del) including cookies and offline website data | ||
+ | *** Open a new tab and visit a website - (Tab A) | ||
+ | *** Close (Tab A) | ||
+ | *** Verify that (Tab A) is listed in '''History -> Recently Closed Tabs''' | ||
+ | *** Enter private browsing mode '''Tools -> Private Browsing Mode''' with the same session. | ||
+ | *** Open a new tab and visit a website - (Tab B) | ||
+ | *** Open a new tab and visit a website - (Tab C) | ||
+ | *** Close (Tab B). | ||
+ | *** Verify that (Tab B) is listed in '''History -> Recently Closed Tabs''' | ||
+ | *** Close (Tab C). | ||
+ | *** Verify that (Tab C) is listed in '''History -> Recently Closed Tabs''' | ||
+ | *** Exit Private Browsing Mode | ||
+ | *** Verify that (Tab A) is '''only''' listed in '''History -> Recently Closed Tabs''' | ||
* If everything follows according to plan, let me know and I can add your name as a contributor. | * If everything follows according to plan, let me know and I can add your name as a contributor. | ||
* If there is a problem let me know, I will add your name as a contributor and forward the problem to the '''Bug #248970'''. | * If there is a problem let me know, I will add your name as a contributor and forward the problem to the '''Bug #248970'''. | ||
Line 212: | Line 347: | ||
| | | | ||
|} | |} | ||
+ | |||
+ | ===HTML5 <video> and <audio> contributions=== | ||
+ | *[[User:jtarka|Jason Tarka]] | ||
+ | **''Testing the video website n Minefield 3.1b2pre on Windows XP, I've noticed one main oddity: When opening multiple tabs worth of videos, occasionally when you move the mouse cursor over the video, or click the Play button, the tab will suddenly pop into its own new window, fully loaded. The video, however, still has to be clicked again to play. The tab no longer exists in the old window.'' | ||
+ | *** Linux 2.6.27.5 Fedora Core 10 & Firefox 3.1b2pre | ||
+ | *[[User:Crulshorukh|Sid Kalra]] | ||
+ | **''Testing the video website on Firefox 3.1b1pre on Ubuntu. I've noticed that if I have many tabs open at once and if videos are running at the same time the pop up play tab (in grey) that appears when you mouse over the bottom of the video area comes to a crawl. I ran this on a virtual machine and thus I'm not giving the OS a lot of resources which means it is simulating a slow machine. The Grey area lagged a lot onMouseOver, almost every time it took forever to show up. | ||
+ | *** Linux Ubuntu & Firefox 3.1b1pre | ||
+ | *[[User:Nadavers|Nino D'Aversa]] | ||
+ | **''I tried this out, only thing I could get to act funny was text selecting the time stamp (since its just text in html). I got an assert when I tired that, otherwise things seemed to work fine'' | ||
+ | ***''Testing with OSX & Firefox 3.1b2pre | ||
== Project Details == | == Project Details == | ||
Line 224: | Line 370: | ||
** [https://bugzilla.mozilla.org/show_bug.cgi?id=456884 Bug #456884] - Provide a way to open a link into private browsing mode | ** [https://bugzilla.mozilla.org/show_bug.cgi?id=456884 Bug #456884] - Provide a way to open a link into private browsing mode | ||
** [https://bugzilla.mozilla.org/show_bug.cgi?id=460346 Bug #460346] - Privacy pref for "Always on" Private Browsing Mode | ** [https://bugzilla.mozilla.org/show_bug.cgi?id=460346 Bug #460346] - Privacy pref for "Always on" Private Browsing Mode | ||
+ | ** [https://bugzilla.mozilla.org/show_bug.cgi?id=411929 Bug #411929] - Private Browsing UI | ||
+ | |||
+ | === Session Store Unit Test Notes === | ||
+ | * Test to determine the current window's closed tab count | ||
+ | {|class="collapsible" style="background: #c0c0c0" width="80%" | ||
+ | !browser_248970 - getClosedTabCount(window) | ||
+ | |- | ||
+ | | <pre> | ||
+ | let count = ss.getClosedTabCount(window); | ||
+ | let max_tabs_undo = gPrefService.getIntPref("browser.sessionstore.max_tabs_undo"); | ||
+ | ok(0 <= count && count <= max_tabs_undo,"getClosedTabCount returns zero or at most max_tabs_undo"); | ||
+ | </pre> | ||
+ | |} | ||
+ | * Setting up a state for a tab | ||
+ | {|class="collapsible" style="background: #c0c0c0" width="80%" | ||
+ | !browser_248970 - Setup a state for a tab | ||
+ | |- | ||
+ | | <pre> | ||
+ | // setup a state for a tab | ||
+ | let key1 = "key"; | ||
+ | let value1 = "Value " + Math.random(); | ||
+ | let state1 = { entries: [{ url: testURL }], extData: { key: value1 } }; | ||
+ | </pre> | ||
+ | |} | ||
=== History Unit Test Notes=== | === History Unit Test Notes=== | ||
Line 315: | Line 485: | ||
|} | |} | ||
+ | |||
+ | === Video and Audio Testing Area 0.3 === | ||
+ | ''' Post Private Browsing Landing - 0.3 New Area (Implement WHATWG Video/Audio spec)''' | ||
+ | * [https://wiki.mozilla.org/QA/Firefox3.1/Video_And_Audio_TestPlan Video and Audio Test Plan] | ||
+ | |||
+ | Bugs associated with [https://bugzilla.mozilla.org/show_bug.cgi?id=382267 Bug #382267] | ||
+ | * '''Depends On''' | ||
+ | ** [https://bugzilla.mozilla.org/buglist.cgi?bug_id=463830,451004,452698,462958,454686,462957,462082,462962,448910,462961,462956,462959,456648,462570,463950,462960,462954 Bug list] | ||
== Project Weekly TODO == | == Project Weekly TODO == | ||
{|class="collapsible" | {|class="collapsible" | ||
− | !My Weekly TODO for | + | !My Weekly TODO for November |
|- | |- | ||
| | | | ||
+ | * [[User:AaronMT|AaronMT]] 03:47, 6 December 2008 (UTC) | ||
+ | ** 0.3 Complete | ||
+ | * Week of the 23rd | ||
+ | ** <strike>Continue work on first cases of the <audio> and <video> tags ['''readonly'''] attributes and <source> element unit tests.</strike> | ||
+ | * Weekend 15th-16th | ||
+ | ** <strike>Select a scope of an area to which I can focus on <audio> and <video> tags for Firefox 3.1</strike> | ||
+ | * Week of Nov 3rd | ||
+ | ** <strike>Converse with Ehsan/Marcia and Clint about possible areas to focus on 0.3</strike> | ||
+ | * Week of October 27th | ||
+ | ** <strike>Fix ups on the session store unit test, finalization and landing of private browsing in Firefox 3.1</strike> | ||
+ | * Week of October 20th | ||
+ | ** <strike>Work & completion of second testing area, session store & browsing tests - submission for review</strike> | ||
*Week of October 15th | *Week of October 15th | ||
− | ** Submission of first testing area, research into second testing area. Produce a working clean build with all the necessary patches depending on [https://bugzilla.mozilla.org/show_bug.cgi?id=248970 #248970] | + | ** <strike>Submission of first testing area, research into second testing area. Produce a working clean build with all the necessary patches depending on [https://bugzilla.mozilla.org/show_bug.cgi?id=248970 #248970]</strike> |
*Week of October 6th, | *Week of October 6th, | ||
**<strike>Goal is to have my places unit test reviewed by Ehsan, ready to go and onwards to the next area of testing.</strike> | **<strike>Goal is to have my places unit test reviewed by Ehsan, ready to go and onwards to the next area of testing.</strike> | ||
Line 341: | Line 531: | ||
== Project News == | == Project News == | ||
+ | === November === | ||
+ | {|class="collapsible" | ||
+ | !News Items | ||
+ | |- | ||
+ | | | ||
+ | * [[User:AaronMT|AaronMT]] 03:48, 6 December 2008 (UTC) | ||
+ | ** 0.3 Complete! | ||
+ | * [[User:AaronMT|AaronMT]] 17:25, 2 December 2008 (UTC) | ||
+ | ** Initial work on small tests whose functionality is not yet implemented | ||
+ | * [[User:AaronMT|AaronMT]] 17:26, 25 November 2008 (UTC) | ||
+ | ** Working on the '''readonly''' attribute and <source> tag element unit tests. | ||
+ | * [[User:AaronMT|AaronMT]] 17:49, 16 November 2008 (UTC) | ||
+ | ** Awaiting E-Mail from Clint in order to figure out a pinpointed area to which I may focus on | ||
+ | * [[User:AaronMT|AaronMT]] 00:16, 15 November 2008 (UTC) | ||
+ | ** Conversed with Clint and Marcia, I will be working my 0.3 release on <audio> and <video> HTML5 tags that are now supported in Firefox 3.1 | ||
+ | * [[User:AaronMT|AaronMT]] 00:58, 5 November 2008 (UTC) | ||
+ | ** Private Browsing landed into 3.1b2pre! My tests are now available in the repository [http://mxr.mozilla.org/mozilla-central/source/browser/components/sessionstore/test/browser/browser_248970_a.js A] & [http://mxr.mozilla.org/mozilla-central/source/browser/components/sessionstore/test/browser/browser_248970_b.js B!] | ||
+ | |} | ||
+ | |||
=== October === | === October === | ||
{|class="collapsible" | {|class="collapsible" | ||
Line 346: | Line 555: | ||
|- | |- | ||
| | | | ||
+ | * [[User:AaronMT|AaronMT]] 15:10, 29 October 2008 (UTC) | ||
+ | ** Unit Test for Session Store and Browsing Tests for private browsing complete, and reviewed '''+''' by Ehsan and Simon | ||
+ | ** Private Browsing is close to landing! | ||
+ | * [[User:AaronMT|AaronMT]] 15:40, 21 October 2008 (UTC) | ||
+ | ** Unit Test for Session Store and Browsing Tests for private browsing mode near complete. | ||
+ | ** Submission for review shortly. | ||
* [[User:AaronMT|AaronMT]] 18:13, 16 October 2008 (UTC) | * [[User:AaronMT|AaronMT]] 18:13, 16 October 2008 (UTC) | ||
** Clean build with patch 2.13 , ready for working with the session store | ** Clean build with patch 2.13 , ready for working with the session store | ||
Line 389: | Line 604: | ||
== External Links == | == External Links == | ||
+ | *[http://developer.mozilla.org/en/nsISessionStore nsiSessionStore] | ||
*[https://wiki.mozilla.org/User:Mconnor/PrivateBrowsing Detailed Private Browsing Spec (Mozilla)] | *[https://wiki.mozilla.org/User:Mconnor/PrivateBrowsing Detailed Private Browsing Spec (Mozilla)] | ||
*[https://wiki.mozilla.org/PrivateBrowsing Private Browsing (Mozilla)] | *[https://wiki.mozilla.org/PrivateBrowsing Private Browsing (Mozilla)] | ||
*[https://wiki.mozilla.org/Build:TryServer Build:TryServer (Mozilla)] | *[https://wiki.mozilla.org/Build:TryServer Build:TryServer (Mozilla)] | ||
*[http://tinderbox.mozilla.org/showbuilds.cgi?tree=MozillaTry Tinderbox:Tree(MozillaTry) (Mozilla)] | *[http://tinderbox.mozilla.org/showbuilds.cgi?tree=MozillaTry Tinderbox:Tree(MozillaTry) (Mozilla)] | ||
− | * [http://developer.mozilla.org/en/Writing_xpcshell-based_unit_tests XPCShell Based Unit Tests] | + | *[http://developer.mozilla.org/en/Writing_xpcshell-based_unit_tests XPCShell Based Unit Tests] |
+ | *[https://wiki.mozilla.org/QA/Firefox3.1/Video_And_Audio_TestPlan Firefox Audio Video Test Plan] | ||
''Non-Related to project'' | ''Non-Related to project'' | ||
*[[User:AaronMT|AaronMT]] | *[[User:AaronMT|AaronMT]] |
Latest revision as of 14:47, 8 December 2008
Contents
- 1 Private Browsing Tests (and Video/Audio HTML5)
Private Browsing Tests (and Video/Audio HTML5)
- Project assigned to AaronMT
An Introduction
Background history
"The purpose of private browsing is to put Firefox into a temporary state where no information about the user's browsing session is stored locally. Firefox currently handles the user's privacy with a feature in preferences to clear all private data. This feature forces the user to choose between having privacy (even if only momentary), and other useful features like browsing history, and saved passwords. Users should be able to go "off the record", they shouldn't have to shoot the reporter. " wiki.mozilla.org/PrivateBrowsing
The Project Offered
The new Private Browsing feature (see bug 248970 and the test plan) needs thorough tests written in order to insure its proper functionality. This will involve collaborating with those writing the patch and tests in order to develop a full suite of tests. Resources: ehsan, discussion of Private Browsing
- Helpful Contacts:
- Ehsan Akhgari
- E-Mail: (ehsan dot akhgari at gmail dot com)
- Marcia Knous (QA)
- E-Mail: (marcia at mozilla dot org)
- Clint Talbert (QA Dev Engineer)
- E-Mail: (ctalbert at mozilla dot com)
- IRC: ctalbert
- Ehsan Akhgari
Project Description
- Private Browsing Test Plan (Outlined by Marcia Knous)
- Private Browsing - Unit Tests
- Possible Project Release Iteration
- Unit Tests
- Areas Started / Perhaps finished by Ehsan
-
Cookies -> Cookie Service -
Site Permissions -
Content Prefs -
Passwords -
Authenticated Sessions -
Cache -
DOM Storage -
AutoComplete -
Downloads
-
- History (Places)-> History Service and Bookmark Service -> Milestone 0.1
- Session Store & Browser Tests -> Session Store -> Milestone 0.2
- Areas Started / Perhaps finished by Ehsan
- Unit Tests
- Milestone 0.1 will contain the History component unit test.
- Milestone 0.2 will contain the Session Store component unit test.
- Private Browsing Has Landed
- Milestone 0.3 will move on to a different testing area: Video and Audio Tests
Note: Some areas already covered by Ehsan and others working on Bug #248970.
Private Browsing Test Plan
Private Browsing Unit Tests
Project Milestone Information
- For the first milestone phase, I plan to have complete
- Testing Areas
- Unit Tests
- Places/History
- Spec: Outline Plan
- Places/History
- Unit Tests
- Testing Areas
- For the second milestone phase, I plan to have complete
- Testing Areas
- Unit Tests
- Session Store
- Spec: Session Store
- Session Store
- Unit Tests
- Testing Areas
What to expect for 0.1 release?
- I plan to have a unit test complete for the testing area involved with places and history. This will be submitted to Ehsan as well.
- Places unit test reviewed by Ehsan
- Blogged about it
- Post unit test
- Screenshots
- Submit deliverables
Visual Representation of Places testing area -> my blog
What to expect for 0.2 release?
- I plan to have a unit test complete for the testing area involved with session storage. This will be submitted to Ehsan as well.
- Session store unit test - Chrome Browser Test reviewed by Ehsan and Simon
- Session store unit test - Browser Test reviewed by Ehsan and Simon
- Blogged about it
- Post both tests
- Screenshots
- Submit deliverables
What to expect for 0.3 release?
- I plan to have a unit test complete for the testing area involved with session storage. This will be submitted to Ehsan as well.
- I hope to have around 5-6 tests written for audio/video
- test_readonly.html
- test_mimetypes.html
- test_continueplay.html
- test_reload.html
- test_tableembed.html
- test_multipleplayback.html
- I hope to have around 5-6 tests written for audio/video
- I will be working on <audio> and <video> tag testing
Private Browsing Patch has Landed!
- Bug Number #: 382267
- Testing Plan: Video and Audio Tests
Project Deliverables
Milestone 0.1
History Unit Test - Complete
Private Browsing Testing Area | Private Browsing Unit Test (My Work) |
---|---|
History/Places/Bookmarks Unit Test | test_248970_history.js |
Visual Representation of Places testing area -> My Blog - Click Here
E-Mail Conversations with Ehsan (Example)
http://matrix.senecac.on.ca/~amtrain/other/email.jpg
What I learned?
- September / October
- Mozilla Tree - Structural Layout
- Unit Testing - How to write a unit test
- Private Browsing - Functionality, features and usage
- XPCShell - When it's used, how it's used, why it's used
- Blocker/Dependancy Bugs -
- Patches - How to apply the following patches: #248970, #457110, and #458954.
- Building - Clean builds with fresh applied patches
- Philosophical Question + New Bug - Bug 454792 - Should safebrowsing code react to private browsing mode? - very interesting
Community Interaction
- (1) Primarily: http://developer.mozilla.org/En
- (2) Secondary: Tremendous aid, assitance and conversations with Ehsan Akhgari
- (3) Thirdly: IRC #seneca #ext #mozdev #places
1. Whenever I ran into trouble, I confronted the Mozilla Developer Centre. Majority of the time my answers were addressed there to questions raised. When I could not find an answer to a specific issue, I contacted (2) Ehsan.
2. Ehsan, very kindly without hesitance provided me with the support I needed in jumping into the unfamiliar world of Mozilla. During the first milestone phase we discussed many topics such as: private browsing, patches, places, session store, unit testing, XPCShell testing, chrome browser testing.
3. Of course the friendly help of peers and professors and other Mozilla developers derived from channels on irc.Mozilla.org, IRC.
Milestone 0.2
Session Store Unit Test(s) - Complete
Private Browsing Testing Area | Private Browsing Unit Test (My Work) |
---|---|
Session Store Unit Test | browser_248970_a.js & browser_248970_b.js & browser_248970_b_sample.html |
Visual Representation of Session store testing area -> My Blog - Click Here
My tests have landed into the mozilla cross reference and are included in the trunk ready for Firefox 3.1!
E-Mail appraisal from Ehsan (Example) http://matrix.senecac.on.ca/~amtrain/other/email2.jpg
What I learned?
- October / November
- More on Private Browsing - Functionality, features and usage, specifically session store, downloader manager, memory hashtables
- Chrome Browser Tests - Similarities and differences between these forms of tests and XPCSHell unit tests
- Writing Browser Tests using sample HTML files, manipulating session store data across entry and exit of private browsing mode
- Other, multitude of other associated bugs related to #248970
With the completion of milestone 0.2, the deadline for Private Browsing testing has expired! Private Browsing has landed into Firefox 3.1!
Next milestone release will shift focus into a separate area.
Community Interaction
Unlike in Milestone 0.1, this time around I primarily interacted through #developers and through conversation in email.
- (1) Primarily: Tremendous aid, assitance and conversations with Ehsan Akhgari
- (2) Secondary: IRC #seneca #ext #mozdev #places
- (3) Thirdly: http://developer.mozilla.org/En
Milestone 0.3 (Audio / Video HTML5 Unit Tests)
My HTML5 Audio / Video Unit Test(s) - Complete
Video/Audio Testing Area | Video/Audio Unit Test (My Work) |
---|---|
Video and Audio Test Plan | test_readonly.html & test_continueplay.html & test_multipleplayback & test_reload.html file.html & test_mimetype.html & test_tableembed.html & seek.ogg& 320x240.ogg r11025_s16_c1.wav & r11025_u8_c1.wav |
These are mochitests, which must be ran using 'python runtests.py' in obj/_tests/testing/content/media/video/test - you will see nothing if you just click on them (otherwise you can hit Ctrl-U to view source on them)
Package Archive: click here
- My Video/Audio Tests:
- test_readonly - tests that attributes pertaining to video/audio can not be changed or altered
- test_reload / file - tests that both a reload of a window and video work correctly, i.e., playback restarts
- test_multipleplayback - tests that six or more videos work properly when played simultaneously, playback works
- test_tableembed - tests that the new video element functions correctly when embedded in a table
- test_mimetype - a future test that will test canPlayType() [upon implementation] testing obscure codecs and media MIMETYPES
- test_continuePlay - tests that playback on a video will continue to play regardless if focus is in a newly opened tab
E-Mail convesations with Clint Talbert(Example) http://matrix.senecac.on.ca/~amtrain/other/email3.jpg
What I learned?
- October / November
- Audio / Video HTML5 WHATWG Elements
- Mochitests - What/Why/How
- Chrome Elevation Techniques for Mochitests
- Observers/EventListeners
With the completion of milestone 0.3, I have learned so much from one course over the course of four months that I am tremendously appreciative of. Coming into Mozilla, I had only touched on Unit Tests once in my programming diploma program. Now I feel comfortable in writing any test.
Community Interaction
Unlike in Milestone 0.3, this time around I primarily interacted through #qa and through conversation in email.
- (1) Primarily: Tremendous aid, assistance and conversations with Clint Talbert
- (2) Secondary: IRC #qa
- (3) Thirdly: http://developer.mozilla.org/En
Challenges
Major challenges:
- (1) Halting focus on Private Browsing and leaping into Audio Visual / HTML5 provided was for me challenging as I had felt comfortable in the area I was originally focusing on.
- (2) Seeking assistance from those working on Audio Visual / HTML5 aspects rather than those working on Private Browsing
- (3) Much quieter bug on Bugzilla - a challenge seeing what's new/what's happening.
- (4) Mochitest Chrome Privilege Elevation -> Netscape thing!
- (5) Picking unit tests that I felt comfortable in persuing.
Quick Project Notes
- nsiSessionStore -> nsiSessionStore Doc
- File/IO Session Store (sessionstore.js)
- To run browser chrome tests:
/obj-i686-pc-linux-gnu/_tests/testing/mochitest$ python runtests.py --browser-chrome
- To work on the session store area, I believe I'll need to work with browser chrome tests
- Session Store unit-tests are stored in
/browser/components/sessionstore/test/browser/
- Places unit-tests are stored in
toolkit/components/places/tests/unit
- To run a single unit-test use check-one SOLO_FILE
- Example
make SOLO_FILE=test_bug248970.js -C objdir/netwerk/test check-one
Project Leader(s)
Project Contributor(s)
Private Browsing contributions
Area's where you could contribute to my project
- (A) You have written an extension before
- Testing is needed on the private browsing service. If you have written an extension in the past or are going to, it would sweet if you also test the new API found here - Let me know if API calls are working, nothing fancy has to be done, just has to work properly. Send me feedback and I can pass this on back to Mozilla Devs.
- (B) You have not written an extension before
- It would be very helpful if you could test out the new private browsing feature, specifically testing out the history component of it.
Should you select (B)
- Make sure you have an updated trunk build of Mozilla Firefox.
- Download the newest patch off Bug #248970 which would make you manly, or download the latest try server build right here
- Install the patch, refer to week 4 lab.
- Build Firefox.
- Open Firefox.
- Follow this test plan or the following test plan:
- Test Plan - Places (History / Bookmarks)
- Visit a bunch of websites, ranging from anything in particular.
- Create a bookmark from one of the sites.
- Enter private browsing mode Tools -> Private Browsing Mode with a new session.
- Open your history and visit the same sites, the visit count should not increase (this is visible in History -> Show All History, add the new column).
- Check if your bookmark has been visited, it should not.
- Visit new web sites, they should not be added to your history list.
- Add a bookmark from a new website.
- Exit private browsing mode.
- Both bookmarks should still be accessible.
- Visit the sites in your history again, the visit count should now increase (History -> Show All History).
- Test Plan - Session Store (Tabs)
- Clear all Private Data (Ctrl-Shit-Del) including cookies and offline website data
- Open a new tab and visit a website - (Tab A)
- Close (Tab A)
- Verify that (Tab A) is listed in History -> Recently Closed Tabs
- Enter private browsing mode Tools -> Private Browsing Mode with the same session.
- Open a new tab and visit a website - (Tab B)
- Open a new tab and visit a website - (Tab C)
- Close (Tab B).
- Verify that (Tab B) is listed in History -> Recently Closed Tabs
- Close (Tab C).
- Verify that (Tab C) is listed in History -> Recently Closed Tabs
- Exit Private Browsing Mode
- Verify that (Tab A) is only listed in History -> Recently Closed Tabs
- Test Plan - Places (History / Bookmarks)
- If everything follows according to plan, let me know and I can add your name as a contributor.
- If there is a problem let me know, I will add your name as a contributor and forward the problem to the Bug #248970.
Please post your test results here for your path of testing
(A) - Results
Date | IRC Nick | Platform | Private Browsing API function called | Did it work? |
---|
(B) - Results
Date | IRC Nick | Platform | Private Browsing Patch Version | Expected Results for history and bookmarks? (Comments) | Other issues |
---|---|---|---|---|---|
14-Oct-2008 | AaronMT | Windows Vista Business 32-bit i386 | v2.13 (191.93 KB, patch) | No problems. | |
14-Oct-2008 | ezadkiel | Mac OSX 10.4.11 32-bit i386 | Mac-try-server-build | No problems | Clicked private browsing > Save and Close My Session upon exit Private Browsing Minefield crashes Mac OSX 10.4.11 when it tries to load back the previous session with multiple tabs) |
20-Oct-2008 | JesseV | Windows XP Pro SP2 | Patch (v2.15) (127.33 KB, patch) | No problems |
HTML5 <video> and <audio> contributions
- Jason Tarka
- Testing the video website n Minefield 3.1b2pre on Windows XP, I've noticed one main oddity: When opening multiple tabs worth of videos, occasionally when you move the mouse cursor over the video, or click the Play button, the tab will suddenly pop into its own new window, fully loaded. The video, however, still has to be clicked again to play. The tab no longer exists in the old window.
- Linux 2.6.27.5 Fedora Core 10 & Firefox 3.1b2pre
- Testing the video website n Minefield 3.1b2pre on Windows XP, I've noticed one main oddity: When opening multiple tabs worth of videos, occasionally when you move the mouse cursor over the video, or click the Play button, the tab will suddenly pop into its own new window, fully loaded. The video, however, still has to be clicked again to play. The tab no longer exists in the old window.
- Sid Kalra
- Testing the video website on Firefox 3.1b1pre on Ubuntu. I've noticed that if I have many tabs open at once and if videos are running at the same time the pop up play tab (in grey) that appears when you mouse over the bottom of the video area comes to a crawl. I ran this on a virtual machine and thus I'm not giving the OS a lot of resources which means it is simulating a slow machine. The Grey area lagged a lot onMouseOver, almost every time it took forever to show up.
- Linux Ubuntu & Firefox 3.1b1pre
- Testing the video website on Firefox 3.1b1pre on Ubuntu. I've noticed that if I have many tabs open at once and if videos are running at the same time the pop up play tab (in grey) that appears when you mouse over the bottom of the video area comes to a crawl. I ran this on a virtual machine and thus I'm not giving the OS a lot of resources which means it is simulating a slow machine. The Grey area lagged a lot onMouseOver, almost every time it took forever to show up.
- Nino D'Aversa
- I tried this out, only thing I could get to act funny was text selecting the time stamp (since its just text in html). I got an assert when I tired that, otherwise things seemed to work fine
- Testing with OSX & Firefox 3.1b2pre
- I tried this out, only thing I could get to act funny was text selecting the time stamp (since its just text in html). I got an assert when I tired that, otherwise things seemed to work fine
Project Details
Bugs associated with Bug #248970
- Depends On
- Bug #460608 - Download of temporary files for helper applications are stored in downloads.sqlite while private browsing is active
- Bug #460609 - (Temporary files for helper applications are not deleted when leaving Private Browsing mode
- Blocker
- Bug #454792 - Should safe browsing code react to private browsing mode?
- Bug #456884 - Provide a way to open a link into private browsing mode
- Bug #460346 - Privacy pref for "Always on" Private Browsing Mode
- Bug #411929 - Private Browsing UI
Session Store Unit Test Notes
- Test to determine the current window's closed tab count
browser_248970 - getClosedTabCount(window) |
---|
let count = ss.getClosedTabCount(window); let max_tabs_undo = gPrefService.getIntPref("browser.sessionstore.max_tabs_undo"); ok(0 <= count && count <= max_tabs_undo,"getClosedTabCount returns zero or at most max_tabs_undo"); |
- Setting up a state for a tab
browser_248970 - Setup a state for a tab |
---|
// setup a state for a tab let key1 = "key"; let value1 = "Value " + Math.random(); let state1 = { entries: [{ url: testURL }], extData: { key: value1 } }; |
History Unit Test Notes
- AaronMT 20:06, 5 October 2008 (UTC)
- Function performs a query on items Places items
test_248970_history - check_placesItemCount() |
---|
/** * Function performs a really simple query on our places entries, * and makes sure that the number of entries equal num_places_entries. * * @returns nothing */ function check_placesItem_Count(){ var options = histsvc.getNewQueryOptions(); options.includeHidden = true; var query = histsvc.getNewQuery(); var result = histsvc.executeQuery(query, options); var root = result.root; root.containerOpen = true; var cc = root.childCount; do_check_true(cc==num_places_entries); root.containerOpen = false; } |
- AaronMT 00:41, 27 September 2008 (UTC)
- Using a Mozilla function that checks to see if a URI exists in a database.
test_248970_history - uri_in_DB(URI) |
---|
/** * Checks to see that a URI is in the database. * * @param aURI * The URI to check. * @returns true if the URI is in the DB, false otherwise. */ function uri_in_db(aURI) { var options = histsvc.getNewQueryOptions(); options.maxResults = 1; options.resultType = options.RESULTS_AS_URI var query = histsvc.getNewQuery(); query.uri = aURI; var result = histsvc.executeQuery(query, options); var root = result.root; root.containerOpen = true; return (root.childCount == 1); } |
- AaronMT 23:45, 26 September 2008 (UTC)
- Wrote a new function that creates a handful of history items with various visit types.
test_248970_history - fill_history() |
---|
var dayLabels = [ "Today", "Yesterday", "2 days ago", "3 days ago", "4 days ago", "5 days ago", "6 days ago", "Older than 6 days" ]; /** * Function fills history and checks if date labels * are correct for partially filled history * * @returns nothing */ function fill_history() { const checkOlderOffset = 4; // add visits for the older days for (var i=checkOlderOffset; i<dayLabels.length; i++) { var testURI = uri("http://mirror"+i+".mozilla.com/b"); add_visit(testURI, -i); var testURI = uri("https://mirror"+i+".mozilla.com/a"); add_visit(testURI, -i); var testURI = uri("ftp://mirror"+i+".google.com/b"); add_visit(testURI, -i); var testURI = uri("http://mirror"+i+".google.com/a"); add_visit(testURI, -i); } } |
Video and Audio Testing Area 0.3
Post Private Browsing Landing - 0.3 New Area (Implement WHATWG Video/Audio spec)
Bugs associated with Bug #382267
- Depends On
Project Weekly TODO
My Weekly TODO for November |
---|
|
Project News
November
News Items |
---|
|
October
News Items |
---|
|
September
News Items |
---|
|
External Links
- nsiSessionStore
- Detailed Private Browsing Spec (Mozilla)
- Private Browsing (Mozilla)
- Build:TryServer (Mozilla)
- Tinderbox:Tree(MozillaTry) (Mozilla)
- XPCShell Based Unit Tests
- Firefox Audio Video Test Plan
Non-Related to project