tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

test_site_origin.js (7241B)


      1 const scriptSecMan = Services.scriptSecurityManager;
      2 
      3 // SystemPrincipal checks
      4 let systemPrincipal = scriptSecMan.getSystemPrincipal();
      5 Assert.ok(systemPrincipal.isSystemPrincipal);
      6 Assert.equal(systemPrincipal.origin, "[System Principal]");
      7 Assert.equal(systemPrincipal.originNoSuffix, "[System Principal]");
      8 Assert.equal(systemPrincipal.siteOrigin, "[System Principal]");
      9 Assert.equal(systemPrincipal.siteOriginNoSuffix, "[System Principal]");
     10 
     11 // ContentPrincipal checks
     12 let uri1 = Services.io.newURI("http://example.com");
     13 let prinicpal1 = scriptSecMan.createContentPrincipal(uri1, {
     14  userContextId: 11,
     15 });
     16 Assert.ok(prinicpal1.isContentPrincipal);
     17 Assert.equal(prinicpal1.origin, "http://example.com^userContextId=11");
     18 Assert.equal(prinicpal1.originNoSuffix, "http://example.com");
     19 Assert.equal(prinicpal1.siteOrigin, "http://example.com^userContextId=11");
     20 Assert.equal(prinicpal1.siteOriginNoSuffix, "http://example.com");
     21 
     22 let uri2 = Services.io.newURI("http://test1.example.com");
     23 let prinicpal2 = scriptSecMan.createContentPrincipal(uri2, {
     24  userContextId: 22,
     25 });
     26 Assert.ok(prinicpal2.isContentPrincipal);
     27 Assert.equal(prinicpal2.origin, "http://test1.example.com^userContextId=22");
     28 Assert.equal(prinicpal2.originNoSuffix, "http://test1.example.com");
     29 Assert.equal(prinicpal2.siteOrigin, "http://example.com^userContextId=22");
     30 Assert.equal(prinicpal2.siteOriginNoSuffix, "http://example.com");
     31 
     32 let uri3 = Services.io.newURI("https://test1.test2.example.com:5555");
     33 let prinicpal3 = scriptSecMan.createContentPrincipal(uri3, {
     34  userContextId: 5555,
     35 });
     36 Assert.ok(prinicpal3.isContentPrincipal);
     37 Assert.equal(
     38  prinicpal3.origin,
     39  "https://test1.test2.example.com:5555^userContextId=5555"
     40 );
     41 Assert.equal(prinicpal3.originNoSuffix, "https://test1.test2.example.com:5555");
     42 Assert.equal(prinicpal3.siteOrigin, "https://example.com^userContextId=5555");
     43 Assert.equal(prinicpal3.siteOriginNoSuffix, "https://example.com");
     44 
     45 let uri4 = Services.io.newURI("https://.example.com:6666");
     46 let prinicpal4 = scriptSecMan.createContentPrincipal(uri4, {
     47  userContextId: 6666,
     48 });
     49 Assert.ok(prinicpal4.isContentPrincipal);
     50 Assert.equal(prinicpal4.origin, "https://.example.com:6666^userContextId=6666");
     51 Assert.equal(prinicpal4.originNoSuffix, "https://.example.com:6666");
     52 Assert.equal(prinicpal4.siteOrigin, "https://.example.com^userContextId=6666");
     53 Assert.equal(prinicpal4.siteOriginNoSuffix, "https://.example.com");
     54 
     55 let aboutURI = Services.io.newURI("about:preferences");
     56 let aboutPrincipal = scriptSecMan.createContentPrincipal(aboutURI, {
     57  userContextId: 66,
     58 });
     59 Assert.ok(aboutPrincipal.isContentPrincipal);
     60 Assert.equal(aboutPrincipal.origin, "about:preferences^userContextId=66");
     61 Assert.equal(aboutPrincipal.originNoSuffix, "about:preferences");
     62 Assert.equal(aboutPrincipal.siteOrigin, "about:preferences^userContextId=66");
     63 Assert.equal(aboutPrincipal.siteOriginNoSuffix, "about:preferences");
     64 
     65 let viewSourceURI = Services.io.newURI(
     66  "view-source:https://test1.test2.example.com"
     67 );
     68 let viewSourcePrincipal = scriptSecMan.createContentPrincipal(viewSourceURI, {
     69  userContextId: 101,
     70 });
     71 Assert.ok(viewSourcePrincipal.isContentPrincipal);
     72 Assert.ok(viewSourcePrincipal.schemeIs("view-source"));
     73 Assert.equal(
     74  viewSourcePrincipal.origin,
     75  "https://test1.test2.example.com^userContextId=101"
     76 );
     77 Assert.equal(
     78  viewSourcePrincipal.originNoSuffix,
     79  "https://test1.test2.example.com"
     80 );
     81 Assert.equal(
     82  viewSourcePrincipal.siteOrigin,
     83  "https://example.com^userContextId=101"
     84 );
     85 Assert.equal(viewSourcePrincipal.siteOriginNoSuffix, "https://example.com");
     86 
     87 let mozExtensionURI = Services.io.newURI(
     88  "moz-extension://924f966d-c93b-4fbf-968a-16608461663c/meh.txt"
     89 );
     90 let mozExtensionPrincipal = scriptSecMan.createContentPrincipal(
     91  mozExtensionURI,
     92  {
     93    userContextId: 102,
     94  }
     95 );
     96 Assert.ok(mozExtensionPrincipal.isContentPrincipal);
     97 Assert.ok(mozExtensionPrincipal.schemeIs("moz-extension"));
     98 Assert.equal(
     99  mozExtensionPrincipal.origin,
    100  "moz-extension://924f966d-c93b-4fbf-968a-16608461663c^userContextId=102"
    101 );
    102 Assert.equal(
    103  mozExtensionPrincipal.originNoSuffix,
    104  "moz-extension://924f966d-c93b-4fbf-968a-16608461663c"
    105 );
    106 Assert.equal(
    107  mozExtensionPrincipal.siteOrigin,
    108  "moz-extension://924f966d-c93b-4fbf-968a-16608461663c^userContextId=102"
    109 );
    110 Assert.equal(
    111  mozExtensionPrincipal.siteOriginNoSuffix,
    112  "moz-extension://924f966d-c93b-4fbf-968a-16608461663c"
    113 );
    114 
    115 let localhostURI = Services.io.newURI(" http://localhost:44203");
    116 let localhostPrincipal = scriptSecMan.createContentPrincipal(localhostURI, {
    117  userContextId: 144,
    118 });
    119 Assert.ok(localhostPrincipal.isContentPrincipal);
    120 Assert.ok(localhostPrincipal.schemeIs("http"));
    121 Assert.equal(
    122  localhostPrincipal.origin,
    123  "http://localhost:44203^userContextId=144"
    124 );
    125 Assert.equal(localhostPrincipal.originNoSuffix, "http://localhost:44203");
    126 Assert.equal(
    127  localhostPrincipal.siteOrigin,
    128  "http://localhost^userContextId=144"
    129 );
    130 Assert.equal(localhostPrincipal.siteOriginNoSuffix, "http://localhost");
    131 
    132 // NullPrincipal checks
    133 let nullPrincipal = scriptSecMan.createNullPrincipal({ userContextId: 33 });
    134 Assert.ok(nullPrincipal.isNullPrincipal);
    135 Assert.ok(nullPrincipal.origin.includes("moz-nullprincipal"));
    136 Assert.ok(nullPrincipal.origin.includes("^userContextId=33"));
    137 Assert.ok(nullPrincipal.originNoSuffix.includes("moz-nullprincipal"));
    138 Assert.ok(!nullPrincipal.originNoSuffix.includes("^userContextId=33"));
    139 Assert.ok(nullPrincipal.siteOrigin.includes("moz-nullprincipal"));
    140 Assert.ok(nullPrincipal.siteOrigin.includes("^userContextId=33"));
    141 Assert.ok(nullPrincipal.siteOriginNoSuffix.includes("moz-nullprincipal"));
    142 Assert.ok(!nullPrincipal.siteOriginNoSuffix.includes("^userContextId=33"));
    143 
    144 // ExpandedPrincipal checks
    145 let expandedPrincipal = Cu.getObjectPrincipal(Cu.Sandbox([prinicpal2]));
    146 Assert.ok(expandedPrincipal.isExpandedPrincipal);
    147 Assert.equal(
    148  expandedPrincipal.origin,
    149  "[Expanded Principal [http://test1.example.com^userContextId=22]]^userContextId=22"
    150 );
    151 Assert.equal(
    152  expandedPrincipal.originNoSuffix,
    153  "[Expanded Principal [http://test1.example.com^userContextId=22]]"
    154 );
    155 Assert.equal(
    156  expandedPrincipal.siteOrigin,
    157  "[Expanded Principal [http://test1.example.com^userContextId=22]]^userContextId=22"
    158 );
    159 Assert.equal(
    160  expandedPrincipal.siteOriginNoSuffix,
    161  "[Expanded Principal [http://test1.example.com^userContextId=22]]"
    162 );
    163 
    164 let ipv6URI = Services.io.newURI("https://[2001:db8::ff00:42:8329]:123");
    165 let ipv6Principal = scriptSecMan.createContentPrincipal(ipv6URI, {
    166  userContextId: 6,
    167 });
    168 Assert.ok(ipv6Principal.isContentPrincipal);
    169 Assert.equal(
    170  ipv6Principal.origin,
    171  "https://[2001:db8::ff00:42:8329]:123^userContextId=6"
    172 );
    173 Assert.equal(
    174  ipv6Principal.originNoSuffix,
    175  "https://[2001:db8::ff00:42:8329]:123"
    176 );
    177 Assert.equal(
    178  ipv6Principal.siteOrigin,
    179  "https://[2001:db8::ff00:42:8329]^userContextId=6"
    180 );
    181 Assert.equal(
    182  ipv6Principal.siteOriginNoSuffix,
    183  "https://[2001:db8::ff00:42:8329]"
    184 );
    185 
    186 // Checks for non-http URIs not using the TLD service.
    187 let resourceURI = Services.io.newURI("resource://test.example.com/test");
    188 let resourcePrincipal = scriptSecMan.createContentPrincipal(resourceURI, {});
    189 Assert.equal(resourcePrincipal.siteOrigin, "resource://test.example.com");