Added document.width/document.height to nsIDOMNSDocument. Bug 961. R: troy
git-svn-id: svn://10.0.0.236/trunk@50007 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
@@ -424,6 +424,8 @@ public:
|
||||
NS_IMETHOD GetStyleSheets(nsIDOMStyleSheetCollection** aStyleSheets);
|
||||
NS_IMETHOD CreateElementWithNameSpace(const nsString& aTagName, const nsString& aNameSpace, nsIDOMElement** aResult);
|
||||
NS_IMETHOD CreateRange(nsIDOMRange** aRange);
|
||||
NS_IMETHOD GetWidth(PRInt32* aWidth);
|
||||
NS_IMETHOD GetHeight(PRInt32* aHeight);
|
||||
|
||||
// nsIDOMXULDocument interface
|
||||
NS_DECL_IDOMXULDOCUMENT
|
||||
@@ -2937,6 +2939,19 @@ XULDocumentImpl::CreateRange(nsIDOMRange** aRange)
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
XULDocumentImpl::GetWidth(PRInt32* aWidth)
|
||||
{
|
||||
NS_NOTYETIMPLEMENTED("write me!");
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
XULDocumentImpl::GetHeight(PRInt32* aHeight)
|
||||
{
|
||||
NS_NOTYETIMPLEMENTED("write me!");
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
// nsIDOMXULDocument interface
|
||||
|
||||
@@ -36,6 +36,10 @@ class nsIDOMNSDocument : public nsISupports {
|
||||
public:
|
||||
static const nsIID& GetIID() { static nsIID iid = NS_IDOMNSDOCUMENT_IID; return iid; }
|
||||
|
||||
NS_IMETHOD GetWidth(PRInt32* aWidth)=0;
|
||||
|
||||
NS_IMETHOD GetHeight(PRInt32* aHeight)=0;
|
||||
|
||||
NS_IMETHOD GetStyleSheets(nsIDOMStyleSheetCollection** aStyleSheets)=0;
|
||||
|
||||
NS_IMETHOD CreateElementWithNameSpace(const nsString& aTagName, const nsString& aNameSpace, nsIDOMElement** aReturn)=0;
|
||||
@@ -45,6 +49,8 @@ public:
|
||||
|
||||
|
||||
#define NS_DECL_IDOMNSDOCUMENT \
|
||||
NS_IMETHOD GetWidth(PRInt32* aWidth); \
|
||||
NS_IMETHOD GetHeight(PRInt32* aHeight); \
|
||||
NS_IMETHOD GetStyleSheets(nsIDOMStyleSheetCollection** aStyleSheets); \
|
||||
NS_IMETHOD CreateElementWithNameSpace(const nsString& aTagName, const nsString& aNameSpace, nsIDOMElement** aReturn); \
|
||||
NS_IMETHOD CreateRange(nsIDOMRange** aReturn); \
|
||||
@@ -52,6 +58,8 @@ public:
|
||||
|
||||
|
||||
#define NS_FORWARD_IDOMNSDOCUMENT(_to) \
|
||||
NS_IMETHOD GetWidth(PRInt32* aWidth) { return _to GetWidth(aWidth); } \
|
||||
NS_IMETHOD GetHeight(PRInt32* aHeight) { return _to GetHeight(aHeight); } \
|
||||
NS_IMETHOD GetStyleSheets(nsIDOMStyleSheetCollection** aStyleSheets) { return _to GetStyleSheets(aStyleSheets); } \
|
||||
NS_IMETHOD CreateElementWithNameSpace(const nsString& aTagName, const nsString& aNameSpace, nsIDOMElement** aReturn) { return _to CreateElementWithNameSpace(aTagName, aNameSpace, aReturn); } \
|
||||
NS_IMETHOD CreateRange(nsIDOMRange** aReturn) { return _to CreateRange(aReturn); } \
|
||||
|
||||
@@ -26,6 +26,8 @@
|
||||
/* IID: { 0xa6cf90cd, 0x15b3, 0x11d2, \
|
||||
{ 0x93, 0x2e, 0x00, 0x80, 0x5f, 0x8a, 0xdd, 0x32} } */
|
||||
|
||||
readonly attribute long width;
|
||||
readonly attribute long height;
|
||||
readonly attribute StyleSheetCollection styleSheets;
|
||||
Element createElementWithNameSpace(in DOMString tagName,
|
||||
in DOMString nameSpace)
|
||||
|
||||
@@ -66,7 +66,7 @@ NS_ScriptErrorReporter(JSContext *cx,
|
||||
|
||||
if (context) {
|
||||
nsresult result = context->GetOwner(&owner);
|
||||
if (NS_SUCCEEDED(result)) {
|
||||
if (NS_SUCCEEDED(result) && owner) {
|
||||
const char* error;
|
||||
if (message) {
|
||||
error = message;
|
||||
|
||||
@@ -88,7 +88,9 @@ enum Document_slots {
|
||||
DOCUMENT_DOCTYPE = -1,
|
||||
DOCUMENT_IMPLEMENTATION = -2,
|
||||
DOCUMENT_DOCUMENTELEMENT = -3,
|
||||
NSDOCUMENT_STYLESHEETS = -4
|
||||
NSDOCUMENT_WIDTH = -4,
|
||||
NSDOCUMENT_HEIGHT = -5,
|
||||
NSDOCUMENT_STYLESHEETS = -6
|
||||
};
|
||||
|
||||
/***********************************************************************/
|
||||
@@ -169,6 +171,58 @@ GetDocumentProperty(JSContext *cx, JSObject *obj, jsval id, jsval *vp)
|
||||
}
|
||||
break;
|
||||
}
|
||||
case NSDOCUMENT_WIDTH:
|
||||
{
|
||||
PRBool ok = PR_FALSE;
|
||||
secMan->CheckScriptAccess(scriptCX, obj, "nsdocument.width", PR_FALSE, &ok);
|
||||
if (!ok) {
|
||||
return nsJSUtils::nsReportError(cx, NS_ERROR_DOM_SECURITY_ERR);
|
||||
}
|
||||
PRInt32 prop;
|
||||
nsIDOMNSDocument* b;
|
||||
if (NS_OK == a->QueryInterface(kINSDocumentIID, (void **)&b)) {
|
||||
nsresult result = NS_OK;
|
||||
result = b->GetWidth(&prop);
|
||||
if(NS_SUCCEEDED(result)) {
|
||||
*vp = INT_TO_JSVAL(prop);
|
||||
NS_RELEASE(b);
|
||||
}
|
||||
else {
|
||||
NS_RELEASE(b);
|
||||
return nsJSUtils::nsReportError(cx, result);
|
||||
}
|
||||
}
|
||||
else {
|
||||
return nsJSUtils::nsReportError(cx, NS_ERROR_DOM_WRONG_TYPE_ERR);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case NSDOCUMENT_HEIGHT:
|
||||
{
|
||||
PRBool ok = PR_FALSE;
|
||||
secMan->CheckScriptAccess(scriptCX, obj, "nsdocument.height", PR_FALSE, &ok);
|
||||
if (!ok) {
|
||||
return nsJSUtils::nsReportError(cx, NS_ERROR_DOM_SECURITY_ERR);
|
||||
}
|
||||
PRInt32 prop;
|
||||
nsIDOMNSDocument* b;
|
||||
if (NS_OK == a->QueryInterface(kINSDocumentIID, (void **)&b)) {
|
||||
nsresult result = NS_OK;
|
||||
result = b->GetHeight(&prop);
|
||||
if(NS_SUCCEEDED(result)) {
|
||||
*vp = INT_TO_JSVAL(prop);
|
||||
NS_RELEASE(b);
|
||||
}
|
||||
else {
|
||||
NS_RELEASE(b);
|
||||
return nsJSUtils::nsReportError(cx, result);
|
||||
}
|
||||
}
|
||||
else {
|
||||
return nsJSUtils::nsReportError(cx, NS_ERROR_DOM_WRONG_TYPE_ERR);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case NSDOCUMENT_STYLESHEETS:
|
||||
{
|
||||
PRBool ok = PR_FALSE;
|
||||
@@ -849,6 +903,8 @@ static JSPropertySpec DocumentProperties[] =
|
||||
{"doctype", DOCUMENT_DOCTYPE, JSPROP_ENUMERATE | JSPROP_READONLY},
|
||||
{"implementation", DOCUMENT_IMPLEMENTATION, JSPROP_ENUMERATE | JSPROP_READONLY},
|
||||
{"documentElement", DOCUMENT_DOCUMENTELEMENT, JSPROP_ENUMERATE | JSPROP_READONLY},
|
||||
{"width", NSDOCUMENT_WIDTH, JSPROP_ENUMERATE | JSPROP_READONLY},
|
||||
{"height", NSDOCUMENT_HEIGHT, JSPROP_ENUMERATE | JSPROP_READONLY},
|
||||
{"styleSheets", NSDOCUMENT_STYLESHEETS, JSPROP_ENUMERATE | JSPROP_READONLY},
|
||||
{0}
|
||||
};
|
||||
|
||||
@@ -424,6 +424,8 @@ public:
|
||||
NS_IMETHOD GetStyleSheets(nsIDOMStyleSheetCollection** aStyleSheets);
|
||||
NS_IMETHOD CreateElementWithNameSpace(const nsString& aTagName, const nsString& aNameSpace, nsIDOMElement** aResult);
|
||||
NS_IMETHOD CreateRange(nsIDOMRange** aRange);
|
||||
NS_IMETHOD GetWidth(PRInt32* aWidth);
|
||||
NS_IMETHOD GetHeight(PRInt32* aHeight);
|
||||
|
||||
// nsIDOMXULDocument interface
|
||||
NS_DECL_IDOMXULDOCUMENT
|
||||
@@ -2937,6 +2939,19 @@ XULDocumentImpl::CreateRange(nsIDOMRange** aRange)
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
XULDocumentImpl::GetWidth(PRInt32* aWidth)
|
||||
{
|
||||
NS_NOTYETIMPLEMENTED("write me!");
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
XULDocumentImpl::GetHeight(PRInt32* aHeight)
|
||||
{
|
||||
NS_NOTYETIMPLEMENTED("write me!");
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
// nsIDOMXULDocument interface
|
||||
|
||||
Reference in New Issue
Block a user