mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
c4c18521be
This is probably the worst patch that I have ever written! We add a setPrivate method to nsIPrivateBrowsingChannel which will be implemented by channels who care about private browsing. This allows the client to explicitly override the private bit on the channel. NS_UsePrivateBrowsing is also taught about this override bit using the internal nsIPrivateBrowsingChannel::IsPrivateModeOverriden API. This patch implements the new API for HTTP, FTP and wyciwyg channels. This also modifies the IPC implementations of these channels to correctly transfer that bit to the parent process if it has been set in the child process channel.
51 lines
1.2 KiB
JavaScript
51 lines
1.2 KiB
JavaScript
//
|
|
// Private channel test
|
|
//
|
|
|
|
const Cc = Components.classes;
|
|
const Ci = Components.interfaces;
|
|
const Cu = Components.utils;
|
|
const Cr = Components.results;
|
|
|
|
Cu.import("resource://testing-common/httpd.js");
|
|
|
|
var httpserver = new HttpServer();
|
|
var testpath = "/simple";
|
|
|
|
function run_test() {
|
|
// Simulate a profile dir for xpcshell
|
|
do_get_profile();
|
|
|
|
// Start off with an empty cache
|
|
evict_cache_entries();
|
|
|
|
httpserver.registerPathHandler(testpath, serverHandler);
|
|
httpserver.start(4444);
|
|
|
|
var channel = setupChannel(testpath);
|
|
|
|
channel.QueryInterface(Ci.nsIPrivateBrowsingChannel);
|
|
channel.setPrivate(true);
|
|
|
|
channel.asyncOpen(new ChannelListener(checkRequest, channel), null);
|
|
|
|
do_test_pending();
|
|
}
|
|
|
|
function setupChannel(path) {
|
|
var ios = Cc["@mozilla.org/network/io-service;1"].getService(Ci.nsIIOService);
|
|
return chan = ios.newChannel("http://localhost:4444" + path, "", null)
|
|
.QueryInterface(Ci.nsIHttpChannel);
|
|
}
|
|
|
|
function serverHandler(metadata, response) {
|
|
response.write("HTTP/1.0 200 OK\r\n\r\nfoobar");
|
|
respose.finish();
|
|
}
|
|
|
|
function checkRequest(request, data, context) {
|
|
do_check_eq(get_device_entry_count("disk"), 0);
|
|
do_check_eq(get_device_entry_count("memory"), 1);
|
|
httpserver.stop(do_test_finished);
|
|
}
|