Backed out changeset f173e3210edf (bug 1277803)
authorIris Hsiao <ihsiao@mozilla.com>
Fri, 07 Oct 2016 11:23:22 +0800
changeset 422083 773ced366e56acb4d804961ef9759f048e2b4ffd
parent 422082 a0176b536d5a2edb3b0dc86122a26cfed92da7e2
child 422084 ae8e64903b30454bf610ac09ecbf91762198f6af
push id31687
push usercykesiopka.bmo@gmail.com
push dateFri, 07 Oct 2016 12:33:49 +0000
bugs1277803
milestone52.0a1
backs outf173e3210edf84139e7e0df9959ab5e9f4421817
Backed out changeset f173e3210edf (bug 1277803) CLOSED TREE
browser/components/originattributes/test/browser/browser.ini
browser/components/originattributes/test/browser/browser_favicon_userContextId.js
browser/components/originattributes/test/browser/file_favicon.html
browser/components/originattributes/test/browser/file_favicon.png
browser/components/originattributes/test/browser/file_favicon.png^headers^
browser/components/originattributes/test/browser/file_favicon_thirdParty.html
--- a/browser/components/originattributes/test/browser/browser.ini
+++ b/browser/components/originattributes/test/browser/browser.ini
@@ -1,17 +1,13 @@
 [DEFAULT]
 skip-if = buildapp == "mulet"
 tags = usercontextid firstpartyisolation originattributes
 support-files =
   dummy.html
-  file_favicon.html
-  file_favicon.png
-  file_favicon.png^headers^
-  file_favicon_thirdParty.html
   file_firstPartyBasic.html
   file_sharedworker.html
   file_sharedworker.js
   head.js
   test.js
   test.js^headers^
   test.html
   test2.html
@@ -23,15 +19,14 @@ support-files =
   test_firstParty_http_redirect.html
   test_firstParty_http_redirect.html^headers^
   test_firstParty_iframe_http_redirect.html
   test_firstParty_postMessage.html
   window.html
   worker_blobify.js
   worker_deblobify.js
 
-[browser_favicon_userContextId.js]
 [browser_firstPartyIsolation.js]
 [browser_localStorageIsolation.js]
 [browser_blobURLIsolation.js]
 [browser_imageCacheIsolation.js]
 [browser_sharedworker.js]
 [browser_httpauth.js]
deleted file mode 100644
--- a/browser/components/originattributes/test/browser/browser_favicon_userContextId.js
+++ /dev/null
@@ -1,192 +0,0 @@
-/**
- * Bug 1277803 - A test caes for testing favicon loading across different userContextId.
- */
-
-const { classes: Cc, Constructor: CC, interfaces: Ci, utils: Cu } = Components;
-
-XPCOMUtils.defineLazyModuleGetter(this, "Promise",
-  "resource://gre/modules/Promise.jsm");
-
-const TEST_SITE = "http://mochi.test:8888";
-
-const TEST_PAGE = TEST_SITE + "/browser/browser/components/originattributes/" +
-                  "test/browser/file_favicon.html";
-const FAVICON_URI = TEST_SITE + "/browser/browser/components/originattributes/" +
-                    "test/browser/file_favicon.png";
-const TEST_THIRD_PARTY_PAGE = "http://example.com/browser/browser/components/" +
-                              "originattributes/test/browser/file_favicon_thirdParty.html";
-
-const USER_CONTEXT_ID_PERSONAL = 1;
-const USER_CONTEXT_ID_WORK     = 2;
-
-let systemPrincipal = Services.scriptSecurityManager.getSystemPrincipal();
-let makeURI = Cu.import("resource://gre/modules/BrowserUtils.jsm", {}).BrowserUtils.makeURI;
-
-function clearAllImageCaches() {
-  var tools = SpecialPowers.Cc["@mozilla.org/image/tools;1"]
-                             .getService(SpecialPowers.Ci.imgITools);
-  var imageCache = tools.getImgCacheForDocument(window.document);
-  imageCache.clearCache(true);  // true=chrome
-  imageCache.clearCache(false); // false=content
-}
-
-function FaviconObserver(aUserContextId, aExpectedCookie, aPageURI) {
-  this.reset(aUserContextId, aExpectedCookie, aPageURI);
-}
-
-FaviconObserver.prototype = {
-  observe(aSubject, aTopic, aData) {
-    // Make sure that the topic is 'http-on-modify-request'.
-    if (aTopic === "http-on-modify-request") {
-      // We check the userContextId for the originAttributes of the loading
-      // channel. All requests for the favicon should contain the correct
-      // userContextId. There are two requests for a favicon loading, one
-      // from the Places library and one from the XUL image. The difference
-      // of them is the loading principal. The Places will use the content
-      // principal and the XUL image will use the system principal.
-
-      let httpChannel = aSubject.QueryInterface(Ci.nsIHttpChannel);
-      let reqLoadInfo = httpChannel.loadInfo;
-      let loadingPrincipal;
-      let triggeringPrincipal;
-
-      // Make sure this is a favicon request.
-      if (httpChannel.URI.spec !== FAVICON_URI) {
-        return;
-      }
-
-      if (reqLoadInfo) {
-        loadingPrincipal = reqLoadInfo.loadingPrincipal;
-        triggeringPrincipal = reqLoadInfo.triggeringPrincipal;
-      }
-
-      // Check the userContextId.
-      is(reqLoadInfo.originAttributes.userContextId, this._curUserContextId,
-        "The loadInfo has correct userContextId");
-
-      if (loadingPrincipal.equals(systemPrincipal)) {
-        this._faviconReqXUL = true;
-        ok(triggeringPrincipal.equals(this._expectedPrincipal),
-          "The triggeringPrincipal of favicon loading from XUL should be the content principal.");
-      } else {
-        this._faviconReqPlaces = true;
-        ok(loadingPrincipal.equals(this._expectedPrincipal),
-          "The loadingPrincipal of favicon loading from Places should be the content prinicpal");
-      }
-
-      let faviconCookie = httpChannel.getRequestHeader("cookie");
-
-      is(faviconCookie, this._expectedCookie, "The cookie of the favicon loading is correct.");
-    } else {
-      ok(false, "Received unexpected topic: ", aTopic);
-    }
-
-    if (this._faviconReqXUL && this._faviconReqPlaces) {
-      this._faviconLoaded.resolve();
-    }
-  },
-
-  reset(aUserContextId, aExpectedCookie, aPageURI) {
-    this._curUserContextId = aUserContextId;
-    this._expectedCookie = aExpectedCookie;
-    this._expectedPrincipal = Services.scriptSecurityManager
-                                      .createCodebasePrincipal(aPageURI, { userContextId: aUserContextId });
-    this._faviconReqXUL = false;
-    this._faviconReqPlaces = false;
-    this._faviconLoaded = new Promise.defer();
-  },
-
-  get promise() {
-    return this._faviconLoaded.promise;
-  }
-};
-
-function* generateCookies() {
-  // we generate two different cookies for two userContextIds.
-  let cookies = [];
-  cookies.push(Math.random().toString());
-  cookies.push(Math.random().toString());
-
-  // Then, we add cookies into the site for 'personal' and 'work'.
-  let tabInfoA = yield openTabInUserContext(TEST_SITE, USER_CONTEXT_ID_PERSONAL);
-  let tabInfoB = yield openTabInUserContext(TEST_SITE, USER_CONTEXT_ID_WORK);
-
-  yield ContentTask.spawn(tabInfoA.browser, cookies[0], function* (value) {
-    content.document.cookie = value;
-  });
-
-  yield ContentTask.spawn(tabInfoB.browser, cookies[1], function* (value) {
-    content.document.cookie = value;
-  });
-
-  yield BrowserTestUtils.removeTab(tabInfoA.tab);
-  yield BrowserTestUtils.removeTab(tabInfoB.tab);
-
-  return cookies;
-}
-
-function* doTest(aTestPage) {
-  let cookies = yield generateCookies();
-  let pageURI = makeURI(aTestPage);
-
-  // Create the observer object for observing request channels of the personal
-  // container.
-  let observer = new FaviconObserver(USER_CONTEXT_ID_PERSONAL, cookies[0], pageURI);
-
-  Services.obs.addObserver(observer, "http-on-modify-request", false);
-
-  // Open the tab with the personal container.
-  let tabInfo = yield openTabInUserContext(aTestPage, USER_CONTEXT_ID_PERSONAL);
-
-  // Waiting for favicon requests are all made.
-  yield observer.promise;
-  // Close the tab.
-  yield BrowserTestUtils.removeTab(tabInfo.tab);
-
-  // Reset the observer for observing requests for the work container.
-  observer.reset(USER_CONTEXT_ID_WORK, cookies[1], pageURI);
-  tabInfo = yield openTabInUserContext(aTestPage, USER_CONTEXT_ID_WORK);
-
-  // Waiting for favicon requests are all made.
-  yield observer.promise;
-
-  Services.obs.removeObserver(observer, "http-on-modify-request", false);
-
-  yield BrowserTestUtils.removeTab(tabInfo.tab);
-}
-
-add_task(function* setup() {
-  // Make sure userContext is enabled.
-  yield SpecialPowers.pushPrefEnv({"set": [
-      ["privacy.userContext.enabled", true]
-  ]});
-});
-
-// A clean up function to prevent affecting other tests.
-registerCleanupFunction(() => {
-  // Clear all cookies.
-  let cookieMgr = Cc["@mozilla.org/cookiemanager;1"]
-                     .getService(Ci.nsICookieManager);
-  cookieMgr.removeAll();
-
-  // Clear all image caches and network caches.
-  clearAllImageCaches();
-
-  let networkCache = Cc["@mozilla.org/netwerk/cache-storage-service;1"]
-                        .getService(Ci.nsICacheStorageService);
-  networkCache.clear();
-});
-
-add_task(function* test_favicon_userContextId() {
-  // Clear all image caches before running the test.
-  clearAllImageCaches();
-
-  yield doTest(TEST_PAGE);
-});
-
-add_task(function* test_thirdPartyFavicon_userContextId() {
-  // Clear all image caches before running the test.
-  clearAllImageCaches();
-
-  yield doTest(TEST_THIRD_PARTY_PAGE);
-});
deleted file mode 100644
--- a/browser/components/originattributes/test/browser/file_favicon.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-  <head>
-    <meta charset='utf-8'>
-    <title>Favicon Test for originAttributes</title>
-    <link rel="icon" type="image/png" href="file_favicon.png" />
-  </head>
-  <body>
-    Favicon!!
-  </body>
-</html>
\ No newline at end of file
deleted file mode 100644
index 5535363c94df7314765551f65311ec6f98729d8e..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
--- a/browser/components/originattributes/test/browser/file_favicon.png^headers^
+++ /dev/null
@@ -1,1 +0,0 @@
-Cache-Control: no-cache
deleted file mode 100644
--- a/browser/components/originattributes/test/browser/file_favicon_thirdParty.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-  <head>
-    <meta charset='utf-8'>
-    <title>Favicon Test for originAttributes</title>
-    <link rel="icon" type="image/png" href="http://mochi.test:8888/browser/browser/components/originattributes/test/browser/file_favicon.png" />
-  </head>
-  <body>
-    Third Party Favicon!!
-  </body>
-</html>
\ No newline at end of file