mshtml: Set compatibility mode based on doctype.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Jacek Caban 2016-07-05 22:47:33 +02:00 committed by Alexandre Julliard
parent 73bdf9d926
commit 6614df04a8
2 changed files with 25 additions and 1 deletions

View File

@ -729,6 +729,17 @@ static void NSAPI nsDocumentObserver_BindToDocument(nsIDocumentObserver *iface,
return; return;
} }
if(This->document_mode == COMPAT_MODE_QUIRKS) {
nsIDOMDocumentType *nsdoctype;
nsres = nsIContent_QueryInterface(aContent, &IID_nsIDOMDocumentType, (void**)&nsdoctype);
if(NS_SUCCEEDED(nsres)) {
TRACE("doctype node\n");
/* FIXME: We should set it to something higher for internet zone. */
set_document_mode(This, COMPAT_MODE_IE7);
nsIDOMDocumentType_Release(nsdoctype);
}
}
nsres = nsIContent_QueryInterface(aContent, &IID_nsIDOMHTMLElement, (void**)&nselem); nsres = nsIContent_QueryInterface(aContent, &IID_nsIDOMHTMLElement, (void**)&nselem);
if(NS_FAILED(nsres)) if(NS_FAILED(nsres))
return; return;

View File

@ -134,7 +134,6 @@ typedef nsISupports nsISHistory;
typedef nsISupports nsIWidget; typedef nsISupports nsIWidget;
typedef nsISupports nsIPrompt; typedef nsISupports nsIPrompt;
typedef nsISupports nsIAuthPrompt; typedef nsISupports nsIAuthPrompt;
typedef nsISupports nsIDOMDocumentType;
typedef nsISupports nsIDOMDOMImplementation; typedef nsISupports nsIDOMDOMImplementation;
typedef nsISupports nsIDOMCDATASection; typedef nsISupports nsIDOMCDATASection;
typedef nsISupports nsIDOMProcessingInstruction; typedef nsISupports nsIDOMProcessingInstruction;
@ -1199,6 +1198,20 @@ interface nsIDOMComment : nsIDOMCharacterData
{ {
} }
[
object,
uuid(cd7467b9-0f26-4787-a359-66e80ba8db92),
local
]
interface nsIDOMDocumentType : nsIDOMNode
{
nsresult GetName(nsAString *aName);
nsresult GetPublicId(nsAString *aPublicId);
nsresult GetSystemId(nsAString *aSystemId);
nsresult GetInternalSubset(nsAString *aInternalSubset);
nsresult MozRemove();
}
[ [
object, object,
uuid(48eb8d72-95bb-402e-a8fc-f2b187abcbdb), uuid(48eb8d72-95bb-402e-a8fc-f2b187abcbdb),