diff --git a/mozilla/docshell/base/nsDocShell.cpp b/mozilla/docshell/base/nsDocShell.cpp index 02dc9891d50..5680ca9265a 100644 --- a/mozilla/docshell/base/nsDocShell.cpp +++ b/mozilla/docshell/base/nsDocShell.cpp @@ -4726,7 +4726,7 @@ nsDocShell::InternalLoad(nsIURI * aURI, nsIRequest** aRequest) { nsresult rv = NS_OK; - + // Initialize aDocShell/aRequest if (aDocShell) { *aDocShell = nsnull; @@ -4735,6 +4735,15 @@ nsDocShell::InternalLoad(nsIURI * aURI, *aRequest = nsnull; } + // wyciwyg urls can only be loaded through history. Any normal load of + // wyciwyg through docshell is illegal. Disallow such loads. + if (aURI && (aLoadType & LOAD_CMD_NORMAL)) { + PRBool isWyciwyg = PR_FALSE; + rv = aURI->SchemeIs("wyciwyg", &isWyciwyg); + if ((isWyciwyg && NS_SUCCEEDED(rv)) || NS_FAILED(rv)) + return NS_ERROR_FAILURE; + } + // // First, notify any nsIContentPolicy listeners about the document load. // Only abort the load if a content policy listener explicitly vetos it!