First Checked In.
This commit is contained in:
Родитель
bfbe03971c
Коммит
c9b420a9f8
|
@ -0,0 +1,124 @@
|
|||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public
|
||||
* License Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS
|
||||
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
* implied. See the License for the specific language governing
|
||||
* rights and limitations under the License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape
|
||||
* Communications Corporation. Portions created by Netscape are
|
||||
* Copyright (C) 1998 Netscape Communications Corporation. All
|
||||
* Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
* steve clark <buster@netscape.com>
|
||||
*/
|
||||
|
||||
#include "nsIServiceManager.h"
|
||||
|
||||
#include "nsEditorParserObserver.h"
|
||||
|
||||
|
||||
NS_IMPL_ADDREF(nsEditorParserObserver);
|
||||
NS_IMPL_RELEASE(nsEditorParserObserver);
|
||||
|
||||
NS_INTERFACE_MAP_BEGIN(nsEditorParserObserver)
|
||||
NS_INTERFACE_MAP_ENTRY(nsIElementObserver)
|
||||
NS_INTERFACE_MAP_ENTRY(nsIObserver)
|
||||
NS_INTERFACE_MAP_ENTRY(nsISupportsWeakReference)
|
||||
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsIElementObserver)
|
||||
NS_INTERFACE_MAP_END
|
||||
|
||||
nsEditorParserObserver::nsEditorParserObserver()
|
||||
: mBadTagFound(PR_FALSE)
|
||||
{
|
||||
NS_INIT_REFCNT();
|
||||
}
|
||||
|
||||
nsEditorParserObserver::~nsEditorParserObserver()
|
||||
{
|
||||
}
|
||||
|
||||
NS_IMETHODIMP_(const char*) nsEditorParserObserver::GetTagNameAt(PRUint32 aTagIndex)
|
||||
{
|
||||
if (aTagIndex < gParserObserver_TagCount)
|
||||
{
|
||||
return gParserObserver_Tags[aTagIndex];
|
||||
} else {
|
||||
return nsnull;
|
||||
}
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsEditorParserObserver::Notify(
|
||||
PRUint32 aDocumentID,
|
||||
const PRUnichar* aTag,
|
||||
PRUint32 numOfAttributes,
|
||||
const PRUnichar* nameArray[],
|
||||
const PRUnichar* valueArray[])
|
||||
{
|
||||
// XXX based on aTag...
|
||||
Notify();
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsEditorParserObserver::Notify(
|
||||
PRUint32 aDocumentID,
|
||||
eHTMLTags aTag,
|
||||
PRUint32 numOfAttributes,
|
||||
const PRUnichar* nameArray[],
|
||||
const PRUnichar* valueArray[])
|
||||
{
|
||||
if (eHTMLTag_frameset == aTag)
|
||||
{
|
||||
Notify();
|
||||
return NS_OK;
|
||||
}
|
||||
else
|
||||
return NS_ERROR_ILLEGAL_VALUE;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsEditorParserObserver::Observe(nsISupports*, const PRUnichar*, const PRUnichar*)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
void nsEditorParserObserver::Notify()
|
||||
{
|
||||
mBadTagFound = PR_TRUE;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsEditorParserObserver::Start()
|
||||
{
|
||||
nsresult res = NS_OK;
|
||||
nsAutoString parserService("text/html");
|
||||
|
||||
nsCOMPtr<nsIObserverService> anObserverService = do_GetService(NS_OBSERVERSERVICE_PROGID, &res);
|
||||
if (NS_FAILED(res)) return res;
|
||||
|
||||
return anObserverService->AddObserver(this, parserService.GetUnicode());
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsEditorParserObserver::End()
|
||||
{
|
||||
nsresult res = NS_OK;
|
||||
nsAutoString parserService("text/html");
|
||||
|
||||
nsCOMPtr<nsIObserverService> anObserverService = do_GetService(NS_OBSERVERSERVICE_PROGID, &res);
|
||||
if (NS_FAILED(res)) return res;
|
||||
|
||||
return anObserverService->RemoveObserver(this, parserService.GetUnicode());
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsEditorParserObserver::GetBadTagFound(PRBool *aFound)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aFound);
|
||||
*aFound = mBadTagFound;
|
||||
return NS_OK;
|
||||
}
|
|
@ -0,0 +1,77 @@
|
|||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public
|
||||
* License Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS
|
||||
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
* implied. See the License for the specific language governing
|
||||
* rights and limitations under the License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape
|
||||
* Communications Corporation. Portions created by Netscape are
|
||||
* Copyright (C) 1998 Netscape Communications Corporation. All
|
||||
* Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
* steve clark <buster@netscape.com>
|
||||
*/
|
||||
|
||||
#include "nsIElementObserver.h"
|
||||
#include "nsIObserver.h"
|
||||
#include "nsIObserverService.h"
|
||||
#include "nsWeakReference.h"
|
||||
|
||||
static const PRInt32 gParserObserver_TagCount=1;
|
||||
static const char * gParserObserver_Tags[1] = {"FRAMESET"};
|
||||
|
||||
|
||||
// this needs to support the weak reference API, so that the parser
|
||||
// does not need to hold a reference
|
||||
|
||||
class nsEditorParserObserver : public nsSupportsWeakReference,
|
||||
public nsIElementObserver,
|
||||
public nsIObserver
|
||||
{
|
||||
public:
|
||||
|
||||
nsEditorParserObserver();
|
||||
virtual ~nsEditorParserObserver();
|
||||
|
||||
NS_DECL_ISUPPORTS
|
||||
|
||||
/* method for nsIElementObserver */
|
||||
NS_IMETHOD_(const char*) GetTagNameAt(PRUint32 aTagIndex);
|
||||
NS_IMETHOD Notify(PRUint32 aDocumentID, eHTMLTags aTag, PRUint32 numOfAttributes,
|
||||
const PRUnichar* nameArray[], const PRUnichar* valueArray[]);
|
||||
NS_IMETHOD Notify(PRUint32 aDocumentID, const PRUnichar* aTag, PRUint32 numOfAttributes,
|
||||
const PRUnichar* nameArray[], const PRUnichar* valueArray[]);
|
||||
|
||||
/* methods for nsIObserver */
|
||||
NS_DECL_NSIOBSERVER
|
||||
|
||||
/* begin observing */
|
||||
NS_IMETHOD Start();
|
||||
|
||||
/** end observing */
|
||||
NS_IMETHOD End();
|
||||
|
||||
/** query, did we find a bad tag? */
|
||||
NS_IMETHOD GetBadTagFound(PRBool *aFound);
|
||||
|
||||
protected:
|
||||
|
||||
virtual void Notify();
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
PRBool mBadTagFound;
|
||||
|
||||
};
|
||||
|
||||
|
|
@ -0,0 +1,124 @@
|
|||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public
|
||||
* License Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS
|
||||
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
* implied. See the License for the specific language governing
|
||||
* rights and limitations under the License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape
|
||||
* Communications Corporation. Portions created by Netscape are
|
||||
* Copyright (C) 1998 Netscape Communications Corporation. All
|
||||
* Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
* steve clark <buster@netscape.com>
|
||||
*/
|
||||
|
||||
#include "nsIServiceManager.h"
|
||||
|
||||
#include "nsEditorParserObserver.h"
|
||||
|
||||
|
||||
NS_IMPL_ADDREF(nsEditorParserObserver);
|
||||
NS_IMPL_RELEASE(nsEditorParserObserver);
|
||||
|
||||
NS_INTERFACE_MAP_BEGIN(nsEditorParserObserver)
|
||||
NS_INTERFACE_MAP_ENTRY(nsIElementObserver)
|
||||
NS_INTERFACE_MAP_ENTRY(nsIObserver)
|
||||
NS_INTERFACE_MAP_ENTRY(nsISupportsWeakReference)
|
||||
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsIElementObserver)
|
||||
NS_INTERFACE_MAP_END
|
||||
|
||||
nsEditorParserObserver::nsEditorParserObserver()
|
||||
: mBadTagFound(PR_FALSE)
|
||||
{
|
||||
NS_INIT_REFCNT();
|
||||
}
|
||||
|
||||
nsEditorParserObserver::~nsEditorParserObserver()
|
||||
{
|
||||
}
|
||||
|
||||
NS_IMETHODIMP_(const char*) nsEditorParserObserver::GetTagNameAt(PRUint32 aTagIndex)
|
||||
{
|
||||
if (aTagIndex < gParserObserver_TagCount)
|
||||
{
|
||||
return gParserObserver_Tags[aTagIndex];
|
||||
} else {
|
||||
return nsnull;
|
||||
}
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsEditorParserObserver::Notify(
|
||||
PRUint32 aDocumentID,
|
||||
const PRUnichar* aTag,
|
||||
PRUint32 numOfAttributes,
|
||||
const PRUnichar* nameArray[],
|
||||
const PRUnichar* valueArray[])
|
||||
{
|
||||
// XXX based on aTag...
|
||||
Notify();
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsEditorParserObserver::Notify(
|
||||
PRUint32 aDocumentID,
|
||||
eHTMLTags aTag,
|
||||
PRUint32 numOfAttributes,
|
||||
const PRUnichar* nameArray[],
|
||||
const PRUnichar* valueArray[])
|
||||
{
|
||||
if (eHTMLTag_frameset == aTag)
|
||||
{
|
||||
Notify();
|
||||
return NS_OK;
|
||||
}
|
||||
else
|
||||
return NS_ERROR_ILLEGAL_VALUE;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsEditorParserObserver::Observe(nsISupports*, const PRUnichar*, const PRUnichar*)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
void nsEditorParserObserver::Notify()
|
||||
{
|
||||
mBadTagFound = PR_TRUE;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsEditorParserObserver::Start()
|
||||
{
|
||||
nsresult res = NS_OK;
|
||||
nsAutoString parserService("text/html");
|
||||
|
||||
nsCOMPtr<nsIObserverService> anObserverService = do_GetService(NS_OBSERVERSERVICE_PROGID, &res);
|
||||
if (NS_FAILED(res)) return res;
|
||||
|
||||
return anObserverService->AddObserver(this, parserService.GetUnicode());
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsEditorParserObserver::End()
|
||||
{
|
||||
nsresult res = NS_OK;
|
||||
nsAutoString parserService("text/html");
|
||||
|
||||
nsCOMPtr<nsIObserverService> anObserverService = do_GetService(NS_OBSERVERSERVICE_PROGID, &res);
|
||||
if (NS_FAILED(res)) return res;
|
||||
|
||||
return anObserverService->RemoveObserver(this, parserService.GetUnicode());
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsEditorParserObserver::GetBadTagFound(PRBool *aFound)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aFound);
|
||||
*aFound = mBadTagFound;
|
||||
return NS_OK;
|
||||
}
|
|
@ -0,0 +1,77 @@
|
|||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public
|
||||
* License Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS
|
||||
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
* implied. See the License for the specific language governing
|
||||
* rights and limitations under the License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape
|
||||
* Communications Corporation. Portions created by Netscape are
|
||||
* Copyright (C) 1998 Netscape Communications Corporation. All
|
||||
* Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
* steve clark <buster@netscape.com>
|
||||
*/
|
||||
|
||||
#include "nsIElementObserver.h"
|
||||
#include "nsIObserver.h"
|
||||
#include "nsIObserverService.h"
|
||||
#include "nsWeakReference.h"
|
||||
|
||||
static const PRInt32 gParserObserver_TagCount=1;
|
||||
static const char * gParserObserver_Tags[1] = {"FRAMESET"};
|
||||
|
||||
|
||||
// this needs to support the weak reference API, so that the parser
|
||||
// does not need to hold a reference
|
||||
|
||||
class nsEditorParserObserver : public nsSupportsWeakReference,
|
||||
public nsIElementObserver,
|
||||
public nsIObserver
|
||||
{
|
||||
public:
|
||||
|
||||
nsEditorParserObserver();
|
||||
virtual ~nsEditorParserObserver();
|
||||
|
||||
NS_DECL_ISUPPORTS
|
||||
|
||||
/* method for nsIElementObserver */
|
||||
NS_IMETHOD_(const char*) GetTagNameAt(PRUint32 aTagIndex);
|
||||
NS_IMETHOD Notify(PRUint32 aDocumentID, eHTMLTags aTag, PRUint32 numOfAttributes,
|
||||
const PRUnichar* nameArray[], const PRUnichar* valueArray[]);
|
||||
NS_IMETHOD Notify(PRUint32 aDocumentID, const PRUnichar* aTag, PRUint32 numOfAttributes,
|
||||
const PRUnichar* nameArray[], const PRUnichar* valueArray[]);
|
||||
|
||||
/* methods for nsIObserver */
|
||||
NS_DECL_NSIOBSERVER
|
||||
|
||||
/* begin observing */
|
||||
NS_IMETHOD Start();
|
||||
|
||||
/** end observing */
|
||||
NS_IMETHOD End();
|
||||
|
||||
/** query, did we find a bad tag? */
|
||||
NS_IMETHOD GetBadTagFound(PRBool *aFound);
|
||||
|
||||
protected:
|
||||
|
||||
virtual void Notify();
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
PRBool mBadTagFound;
|
||||
|
||||
};
|
||||
|
||||
|
Загрузка…
Ссылка в новой задаче