mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-02-27 21:00:50 +00:00
Bug 921023 - Properly re-enable mixed content blocking. r=mfinkle
This commit is contained in:
parent
e3ea41978b
commit
2f8728c39e
@ -123,20 +123,13 @@ public class SiteIdentityPopup extends ArrowPopup
|
||||
|
||||
@Override
|
||||
public void onButtonClick(DoorHanger dh, String tag) {
|
||||
if (tag.equals("disable")) {
|
||||
// To disable mixed content blocking, reload the page with a flag to load mixed content.
|
||||
try {
|
||||
JSONObject data = new JSONObject();
|
||||
data.put("allowMixedContent", true);
|
||||
GeckoEvent e = GeckoEvent.createBroadcastEvent("Session:Reload", data.toString());
|
||||
GeckoAppShell.sendEventToGecko(e);
|
||||
} catch (JSONException e) {
|
||||
Log.e(LOGTAG, "Exception creating message to allow mixed content", e);
|
||||
}
|
||||
} else if (tag.equals("enable")) {
|
||||
// To enable mixed content blocking, reload the page without any flags.
|
||||
GeckoEvent e = GeckoEvent.createBroadcastEvent("Session:Reload", "");
|
||||
try {
|
||||
JSONObject data = new JSONObject();
|
||||
data.put("allowMixedContent", tag.equals("disable"));
|
||||
GeckoEvent e = GeckoEvent.createBroadcastEvent("Session:Reload", data.toString());
|
||||
GeckoAppShell.sendEventToGecko(e);
|
||||
} catch (JSONException e) {
|
||||
Log.e(LOGTAG, "Exception creating message to enable/disable mixed content blocking", e);
|
||||
}
|
||||
|
||||
dismiss();
|
||||
|
@ -1317,17 +1317,24 @@ var BrowserApp = {
|
||||
break;
|
||||
|
||||
case "Session:Reload": {
|
||||
let allowMixedContent = false;
|
||||
let flags = Ci.nsIWebNavigation.LOAD_FLAGS_BYPASS_PROXY | Ci.nsIWebNavigation.LOAD_FLAGS_BYPASS_CACHE;
|
||||
|
||||
// Check to see if this is a message to enable/disable mixed content blocking.
|
||||
if (aData) {
|
||||
let data = JSON.parse(aData);
|
||||
allowMixedContent = data.allowMixedContent;
|
||||
let allowMixedContent = JSON.parse(aData).allowMixedContent;
|
||||
if (allowMixedContent) {
|
||||
// Set a flag to disable mixed content blocking.
|
||||
flags = Ci.nsIWebNavigation.LOAD_FLAGS_ALLOW_MIXED_CONTENT;
|
||||
} else {
|
||||
// Set mixedContentChannel to null to re-enable mixed content blocking.
|
||||
let docShell = browser.webNavigation.QueryInterface(Ci.nsIDocShell);
|
||||
docShell.mixedContentChannel = null;
|
||||
}
|
||||
}
|
||||
|
||||
// Try to use the session history to reload so that framesets are
|
||||
// handled properly. If the window has no session history, fall back
|
||||
// to using the web navigation's reload method.
|
||||
let flags = allowMixedContent ? Ci.nsIWebNavigation.LOAD_FLAGS_ALLOW_MIXED_CONTENT :
|
||||
Ci.nsIWebNavigation.LOAD_FLAGS_BYPASS_PROXY | Ci.nsIWebNavigation.LOAD_FLAGS_BYPASS_CACHE;
|
||||
let webNav = browser.webNavigation;
|
||||
try {
|
||||
let sh = webNav.sessionHistory;
|
||||
|
Loading…
x
Reference in New Issue
Block a user