QA/Use a separate content process for file:// URLs

From MozillaWiki
< QA
Jump to: navigation, search

Revision History

This section describes the modifications that have been made to this wiki page. A new row has been completed each time the content of this document is updated (small corrections for typographical errors do not need to be recorded). The description of the modification contains the differences from the prior version, in terms of what sections were updated and to what extent.

Date Version Author Description
02/23/2017 1.0 Simona Badau Created first draft

Overview

Purpose

Detail the purpose of this document. For example:

  • The test scope, focus areas and objectives
  • The test responsibilities
  • The test strategy for the levels and types of test for this release
  • The entry and exit criteria
  • The basis of the test estimates
  • Any risks, issues, assumptions and test dependencies
  • The test schedule and major milestones
  • The test deliverables

Scope

This wiki details the testing that will be performed by the project team for the Use a separate content process for file:// URLs project. It defines the overall testing requirements and provides an integrated view of the project test activities. Its purpose is to document:

  • What will be tested
  • How testing will be performed

Ownership

• Product Manager:

  • Jim Mathies (:jimm)

• Project Manager:

  • Jim Mathies (:jimm)

• Engineering:

  • Jim Mathies (:jimm)

• Developer:

  • Bob Owen (:bobowen)

• UX:

  • N/A

• QA Engineering Team - Nightly Testing

Testing summary

Scope of Testing

In Scope

Use a separate content process for file:// URLs feature aims to make some changes in the way the content is handled when loading file:// URIs. That is content loaded from the local file system hat is now loaded in a separate child content process.

The feature is controlled by the boolean preference browser.tabs.remote.separateFileUriProcess.

Another relevant preference is dom.ipc.processCount.file that allows multiple file content processes.

Out of Scope

Testing the other types of content processes that are not related to the file:// URIs such as processes allocated for web sites, extensions etc.

Requirements for testing

Environments

Full testing will be performed on the following OSes:

  • Windows (Windows 7 and Windows 10)
  • Ubuntu 16.04
  • Mac OS X (Mac OS X 10.11 and Mac OS X 10.12)

Other configuration/environmental setup needed:

  • In Firefox configuration settings, browser.tabs.remote.separateFileUriProcess preference needs to be set to true.
  • To allow multiple content processes, change the value of the preference dom.ipc.processCount.file.

Test Strategy

Risks Assessment and Coverage

ID Description / Threat Description Covered by Test Objective Magnitude Probability Priority Impact Score
RAC-1 A local content process is not opened when a local file is opened TO-1, TO-2, TO-3, TO-4, TO-5, TO-6 3-High 2-Possible 2-Medium 12
RAC-2 A local content process is not closed when it's correponding local file is closed TO-1, TO-2, TO-3, TO-4, TO-5, TO-6 3-High 2-Possible 2-Medium 12
RAC-3 The content process is not changed when navigating from a local file to a web site and viceversa TO-3, TO-4 3-High 2-Possible 2-Medium 12
Rac-4 The interaction between the different types of content processes TO-3, TO-4 2-Moderate 2-Possible 1 - Low 4

Values:

  • Magnitude: 1- Low , 2-Moderate, 3-High
  • Probability: 1-Unlikely, 2-Possible, 3-Almost Certain
  • Priority: 1 - Low, 2-Medium, 3-High

Impact Score Breakdown:

  • An impact value of 1, 2, 3, 4 would describe an area which although should be covered there aren't expected any discoveries of critical issues.
  • An impact value of 6, 8, 9, 12 would describe an area in which we expect to find issues but those issues are not expected to be critical.
  • An impact value of 18 or 27 would describe an area on which it is likely to find issues and those issues to be critical or blockers.

Test Objectives

This section details the progression test objectives that will be covered. Please note that this is at a high level. For large projects, a suite of test cases would be created which would reference directly back to this master. This could be documented in bullet form or in a table similar to the one below.

Ref Function Test Objective Evaluation Criteria Test Type Risk Assessment and Coverage(RAC) Owners
TO-1 A local file is opened The content of a local file is loaded in a separate child content process (local content process) The local file is opened and it's content is loaded in a local content process allocated for local files Manual RAC-1 Eng Team
TO-2 Multiple local files are opened The content of multiple local files are opened in one or more local content processes (depending on the value of pref dom.ipc.processCount.file) Local files are opened in the content processes allocated for the local files Manual RAC-1 Eng Team
TO-3 Local files and websites can be opened in the same tab Local files and websites are opened in the same tab and the type of the content process differs (local content processes and websites content processes) Local files and websites are opened in the same tab and the type of the content process differs (local content processes and websites content processes) Manual RAC-1, RAC-2, RAC-3 Eng Team
TO-4 Local files and websites can be opened in different tabs Local files and websites are opened in different tabs Local files and websites are opened in different tab and the type of the content process differs (local content processes and websites content processes) Manual RAC-1, RAC-2, RAC-3 Eng Team
TO-5 Accessibility Local files and their correspondent local content processes are not affected from the accessibility point of view Testing for accessibility includes:

- Screen Reader validation
- Keyboard-only

Manual RAC-1, RAC-2 Eng Team
TO-6 Local file is closed Local files are closed along with their corresponding local content processes The local content processes are closed when the local files are closed Manual RAC-2 Eng Team

Builds

This section should contain links for builds with the feature:

  • Links for Nightly builds - available since November 26th 2016 - link
  • Links for Beta builds - Fx55

Test Execution Schedule

The following table identifies the anticipated testing period available for test execution.

Project phase Start Date End Date
Start project 02.23.2017
Study documentation/specs received from developers 02.28.2017 02.29.2017
QA - Test plan creation 02.23.2017 02.24.2017
QA - Test cases/Env preparation 02.28.2017 03.30.2017
QA - Nightly Testing 02.28.2017 05.31.2017
QA - Beta Testing
Release Date

Testing Tools

Detail the tools to be used for testing, for example see the following table:

Process Tool
Test plan creation Mozilla wiki
Test case creation TestRail/ Google docs
Test case execution TestRail
Bugs management Bugzilla

Status

Overview

Use a separate content process for file:// URLs feature first landed in Nightly 53 - 53.0a1 (2016-11-26)
The feature remained in Nightly for the 54 and 55 cycle.

References

  • bug 1147911 - Use a separate content process for file:// URLs

Testcases

Full testsuites can be found on TestRail at link or in the PDF doc.

Test Areas

Test Areas Covered Details
Private Window Yes
Multi-Process Enabled Yes
Multi-process Disabled Yes
Theme (high contrast) No
UI
Mouse-only operation Yes
Keyboard-only operation Yes
Display (HiDPI) Yes
Interraction (scroll, zoom) No
Usable with a screen reader Yes e.g. with NVDA
Usability and/or discoverability testing No Is this feature user friendly
RTL build testing No
Help/Support
Help/support interface required No Make sure link to support/help page exist and is easy reachable.
Support documents planned(written) No Make sure support documents are written and are correct.
Install/Upgrade
Feature upgrades/downgrades data as expected Yes
Does sync work across upgrades No
Requires install testing No separate feature/application installation needed (not only Firefox)
Affects first-run or onboarding No Florin/Lawrence are investigating if there is a dedicated QA for this, or we should test? Should be an yes/no and if is yes should add in detail column the team/person assigned.
Does this affect partner builds? Partner build testing No yes/no options, add comment with details about who will lead testing
Enterprise Raise up the topic to developers to see if they are expecting to work different on ESR builds
Enterprise administration No
Network proxies/autoconfig No
ESR behavior changes No
Locked preferences No
Data Monitoring
Temporary or permanent telemetry monitoring Yes List of error conditions to monitor
Telemetry correctness testing No
Server integration testing No
Offline and server failure testing No
Load testing No
Add-ons If add-ons are available for testing feature, or is current feature will affect some add-ons, then API testing should be done for the add-on.
Addon API required? No
Comprehensive API testing No
Permissions No
Testing with existing/popular addons Yes
Security Security is in charge of Matt Wobensmith. We should contact his team to see if security testing is necessary for current feature.
3rd-party security review
Privilege escalation testing
Fuzzing
Web Compatibility depends on the feature
Testing against target sites No
Survey of many sites for compatibility No
Interoperability depends on the feature
Common protocol/data format with other software: specification available. Interop testing with other common clients or servers. No
Coordinated testing/interop across the Firefoxes: Desktop, Android, iOS No
Interaction of this feature with other browser features No

Test suite

Full Test suite - Link with the gdoc, follow the format from link

Bug Work

Meta bug: 1147911 - Use a separate content process for file:// URLs

Logged bugs ( blocking 1147911 )
Full Query
ID Priority Component Assigned to Summary Status Target milestone
1309900 -- DOM: Navigation Bob Owen (:bobowen) Subframe history navigation logic gives false positives. VERIFIED mozilla52
1312788 -- Security: Process Sandboxing David Parks [:handyman] Add console warning and telemetry if service workers are used in the file content process. RESOLVED mozilla53
1317293 -- Security: Process Sandboxing Bob Owen (:bobowen) Add remote type match check to nsFrameLoader::SwapWithOtherRemoteLoader RESOLVED mozilla54
1317921 -- Security: Process Sandboxing Bob Owen (:bobowen) Handle nested file URIs with the file content process RESOLVED mozilla54
1319051 P3 Security: Process Sandboxing Only allow top-level load for data: URIs in non-default remote type when opened from an existing page. NEW ---
1321020 -- Security: Process Sandboxing Bob Owen (:bobowen) When you open a new file content tab from the file content process the wrong remote type gets set. RESOLVED mozilla53
1324912 -- View Source e10s - View source can fail for file:/// urls opened in new tabs from other file:/// urls because we pick the wrong remote tab type RESOLVED ---
1327942 -- Security: Process Sandboxing Bob Owen (:bobowen) Browser can't load the page (urlbar and title twitch between 2 values) if it tries to access renamed local file VERIFIED mozilla54
1328829 P2 Security: Process Sandboxing Bob Owen (:bobowen) Can not open a local HTML file in a view-source tab VERIFIED mozilla54
1329822 -- Security: Process Sandboxing Haik Aftandilian [:haik] file:// documents can't use <a download=foo.txt> to set a download name/force a download VERIFIED mozilla54
1332522 -- Security: Process Sandboxing Haik Aftandilian [:haik] [Mac] remove ~/Library read restriction from file content process sandbox VERIFIED mozilla54
1338375 -- DOM: Content Processes Bob Owen (:bobowen) Opening in a new http(s) window broken from file URL pages VERIFIED mozilla54
1342205 -- Add-ons Manager Drag and drop of add-on/addon .xpi file from local file system on page unloads page/shows white page/empty page RESOLVED ---
1345871 -- Security: Process Sandboxing Local PDF files are not loaded after a Firefox restart RESOLVED ---
1347153 -- Security: Process Sandboxing Multiple file content processes are not allowed on Ubuntu RESOLVED ---
1347198 -- DOM: Navigation History tab is lost when a local PDF is opened RESOLVED ---
1351358 -- DOM: Content Processes Bob Owen (:bobowen) Can't submit form to http(s) URL using POST method from a file:// page VERIFIED mozilla55
1359021 -- DOM: Navigation Bob Owen (:bobowen) [e10s] Named popup window is opened in duplicate when open it from file: protocol VERIFIED ---
1364879 -- Security: Process Sandboxing Bob Owen (:bobowen) Local file opened from private window does not open in private window VERIFIED ---
1366091 -- General Voltage SecureMail (HPE SecureMail) is broken in nightly when email message loaded as file: URL VERIFIED ---
1368692 -- DOM: Content Processes (Linux) Web/local content processes get stuck and are not cleared after crash:restart RESOLVED ---
1460939 P3 DOM: Navigation Boris Zbarsky [:bzbarsky] Reload of wyciwyg toplevel page coming from file:// is broken in e10s RESOLVED mozilla67
1508551 P3 DOM: Content Processes back and forward buttons not working when dragging files into the window NEW ---
1634252 P1 DOM: Navigation Paul Bone [:pbone] Named popup window is opened in duplicate when open it from file: protocol RESOLVED mozilla79

24 Total; 2 Open (8.33%); 12 Resolved (50%); 10 Verified (41.67%);


Bug fix verification
Full Query
ID Priority Component Assigned to Summary Status Resolution Target milestone
1309900 -- DOM: Navigation Bob Owen (:bobowen) Subframe history navigation logic gives false positives. VERIFIED FIXED mozilla52
1312788 -- Security: Process Sandboxing David Parks [:handyman] Add console warning and telemetry if service workers are used in the file content process. RESOLVED FIXED mozilla53
1317293 -- Security: Process Sandboxing Bob Owen (:bobowen) Add remote type match check to nsFrameLoader::SwapWithOtherRemoteLoader RESOLVED FIXED mozilla54
1317921 -- Security: Process Sandboxing Bob Owen (:bobowen) Handle nested file URIs with the file content process RESOLVED FIXED mozilla54
1321020 -- Security: Process Sandboxing Bob Owen (:bobowen) When you open a new file content tab from the file content process the wrong remote type gets set. RESOLVED FIXED mozilla53
1327942 -- Security: Process Sandboxing Bob Owen (:bobowen) Browser can't load the page (urlbar and title twitch between 2 values) if it tries to access renamed local file VERIFIED FIXED mozilla54
1328829 P2 Security: Process Sandboxing Bob Owen (:bobowen) Can not open a local HTML file in a view-source tab VERIFIED FIXED mozilla54
1329822 -- Security: Process Sandboxing Haik Aftandilian [:haik] file:// documents can't use <a download=foo.txt> to set a download name/force a download VERIFIED FIXED mozilla54
1332522 -- Security: Process Sandboxing Haik Aftandilian [:haik] [Mac] remove ~/Library read restriction from file content process sandbox VERIFIED FIXED mozilla54
1338375 -- DOM: Content Processes Bob Owen (:bobowen) Opening in a new http(s) window broken from file URL pages VERIFIED FIXED mozilla54
1351358 -- DOM: Content Processes Bob Owen (:bobowen) Can't submit form to http(s) URL using POST method from a file:// page VERIFIED FIXED mozilla55
1359021 -- DOM: Navigation Bob Owen (:bobowen) [e10s] Named popup window is opened in duplicate when open it from file: protocol VERIFIED FIXED ---
1364879 -- Security: Process Sandboxing Bob Owen (:bobowen) Local file opened from private window does not open in private window VERIFIED FIXED ---
1460939 P3 DOM: Navigation Boris Zbarsky [:bzbarsky] Reload of wyciwyg toplevel page coming from file:// is broken in e10s RESOLVED FIXED mozilla67
1634252 P1 DOM: Navigation Paul Bone [:pbone] Named popup window is opened in duplicate when open it from file: protocol RESOLVED FIXED mozilla79

15 Total; 0 Open (0%); 6 Resolved (40%); 9 Verified (60%);

Sign off

Criteria for Mid Nightly

Check list

  • All the smoke tests (designed to ensure the main functionality is working as expected) are executed.

Criteria for Pre-Beta Release and Pre-Release

Check list

  • All test cases should be executed
  • All blockers, criticals must be fixed and verified or have an agreed-upon timeline for being fixed (as determined by engineering/RelMan/QA)

Results

Mid Nightly testing

Testing performed on folowing OSes

  • Windows 7
  • Ubuntu 16.04
  • Mac OS X 10.12

Link for the tests run - Separate content process for file:// URLs [EngQA] - Mid Nightly 55.0a1

Pre-Beta testing

Testing performed on folowing OSes

  • Windows 10 x64
  • Ubuntu 16.04
  • Mac OS X 10.12

Link for the tests run - Separate content process for file:// URLs - Pre-Beta Sign off (Fx55)
Links for the test report - link

Checklist

Exit Criteria Status Notes/Details
Testing Prerequisites (specs, use cases) [DONE]
Testing Infrastructure setup [DONE]
Test Plan Creation [DONE]
Test Cases Creation [DONE]
Full Functional Tests Execution [DONE]
Automation Coverage [DONE]

toolkit/mozapps/extensions/test/browser/browser_file_xpi_no_process_switch.js
dom/html/test/browser_form_post_from_file_to_http.js
browser/base/content/test/tabs/browser_new_web_tab_in_file_process_pref.js
browser/base/content/test/tabs/browser_viewsource_of_data_URI_in_file_process.js
browser/base/content/test/general/browser_new_http_window_opened_from_file_tab.js
browser/modules/test/xpcshell/test_E10SUtils_nested_URIs.js
browser/base/content/test/tabs/browser_allow_process_switches_despite_related_browser.js
browser/base/content/test/tabs/browser_reload_deleted_file.js
browser/base/content/test/tabs/browser_opened_file_tab_navigated_to_web.js

Performance Testing N/A
All Defects Logged [DONE]
Critical/Blockers Fixed and Verified [DONE]
Metrics/Telemetry [DONE]
QA mid-Nightly Signoff [DONE] [Email sent in 5/16/2017]
QA pre-Beta Signoff Email to be sent
QA Beta - Full Testing
QA pre-Release Signoff Email to be sent