Mozilla.dev.embedding
Newsgroup
Authors
- Cesar
There is already an FAQ on mozilla that probably wasn't properly linked in with Mozilla's FAQ page. Instead, I am going to make a list of asked questions on this page and mozilla can put it into their FAQ at their discretion.
FAQ
nsIPromptService with secure sites
The problem is getting "Security Error: Domain Name Mismatch" when visting certain secure sites. You get no text and no functionality. There are two possible solutions to this error.
- The Dialog is not handled by the prompt service. You must implement another interface (for example, nsIBadCertListener)
- The original dialog does not work correctly because your application is not handling chrome correctly. Here are some things other people have used to solve their problems :
- This will get the text in the security popup and allow you to view the certificate :
In the nsIWindowCreator::CreateChromeWindow() implementation, change the doc shell tree item's type to nsIDocShellTreeItem::typeChromeWrapper to nsIDocShellTreeItem::typeContentWrapper to view the certificate. You can nsIWebBrowserChrome::CHROME_OPENAS_CHROME to check when to use typeChromeWrapper and typeContentWrapper - This will tell the browser to progress to the secure site
- This will get the text in the security popup and allow you to view the certificate :
:nsCOMPtr<nsIJSContextStack> stack(do_GetService("@mozilla.org/js/xpc/ContextStack;1")); if (stack && NS_SUCCEEDED(stack->Push(nsnull))) { /* Display the modal window here */ JSContext* cx; stack->Pop(&cx); }