Compare commits

...

25 Commits

Author SHA1 Message Date
martinl%netscape.com
075d0ab2f2 Bugzilla 151594
Search ".so" and ".sl" file names for plugin libraries.
NETSCAPE_6_2_2_BRANCH checkin only.  Original bug fix 106806 is in 1.0 and trunk.
r: jdunn


git-svn-id: svn://10.0.0.236/branches/NETSCAPE_6_2_2_BRANCH@125095 18797224-902f-48f8-a5cc-f745e15eee43
2002-07-12 18:23:49 +00:00
jdunn%netscape.com
5b44c9999f merging in the 6.2.3 changes into our 622 tree for IPF
git-svn-id: svn://10.0.0.236/branches/NETSCAPE_6_2_2_BRANCH@122069 18797224-902f-48f8-a5cc-f745e15eee43
2002-05-23 11:12:25 +00:00
jdunn%netscape.com
d8fe11b5a4 updates for IPF.
-only export certain symbols from Components
-use local CopyLowBits routine and not nspr function
# 136163


git-svn-id: svn://10.0.0.236/branches/NETSCAPE_6_2_2_BRANCH@118629 18797224-902f-48f8-a5cc-f745e15eee43
2002-04-10 17:30:13 +00:00
jdunn%netscape.com
c013520119 adding security coreconf file for ipf (hpux 11.20)
# 136163


git-svn-id: svn://10.0.0.236/branches/NETSCAPE_6_2_2_BRANCH@118501 18797224-902f-48f8-a5cc-f745e15eee43
2002-04-09 00:24:00 +00:00
jdunn%netscape.com
2bcc79014c checking nspr files to support ipf on hpux 11.20 for mozilla 622.
These change are already checked into the trunk nspr, I am just
matching the branch with the trunk (note: one diff to add +Olit=all)
# 136163
r=martinl@netscape.com


git-svn-id: svn://10.0.0.236/branches/NETSCAPE_6_2_2_BRANCH@118493 18797224-902f-48f8-a5cc-f745e15eee43
2002-04-08 23:45:32 +00:00
jdunn%netscape.com
d2fecb7ea9 remove erroneous printfs that I accidentally checked in
# 136163


git-svn-id: svn://10.0.0.236/branches/NETSCAPE_6_2_2_BRANCH@118491 18797224-902f-48f8-a5cc-f745e15eee43
2002-04-08 23:39:17 +00:00
jdunn%netscape.com
08b9ea85cf Checking in changes to get 622 working on IPF
# 136163
r=martinl@netscape.com
a=jdunn@netscape.com


git-svn-id: svn://10.0.0.236/branches/NETSCAPE_6_2_2_BRANCH@118474 18797224-902f-48f8-a5cc-f745e15eee43
2002-04-08 15:42:13 +00:00
jdunn%netscape.com
e1d2c460d6 Adding ipf xptcall code for HP-UX 11.20 to the 622 Branch
# 126293
a=jdunn\@netscape.com
r=martinl\@netscape.com


git-svn-id: svn://10.0.0.236/branches/NETSCAPE_6_2_2_BRANCH@118472 18797224-902f-48f8-a5cc-f745e15eee43
2002-04-08 14:13:48 +00:00
mscott%netscape.com
0475a79ff6 Bug #12571 onto the branch.
git-svn-id: svn://10.0.0.236/branches/NETSCAPE_6_2_2_BRANCH@116584 18797224-902f-48f8-a5cc-f745e15eee43
2002-03-14 22:39:47 +00:00
mscott%netscape.com
d6242bd141 Landing Bug #126898 onto the branch
git-svn-id: svn://10.0.0.236/branches/NETSCAPE_6_2_2_BRANCH@116349 18797224-902f-48f8-a5cc-f745e15eee43
2002-03-11 22:59:45 +00:00
mscott%netscape.com
56fd366948 Landing Seibel bug #108041 onto the branch.
git-svn-id: svn://10.0.0.236/branches/NETSCAPE_6_2_2_BRANCH@116223 18797224-902f-48f8-a5cc-f745e15eee43
2002-03-08 23:26:13 +00:00
mscott%netscape.com
bfe0b8dfe1 Landing Seibel Bug #108041 onto the branch.
git-svn-id: svn://10.0.0.236/branches/NETSCAPE_6_2_2_BRANCH@116222 18797224-902f-48f8-a5cc-f745e15eee43
2002-03-08 23:25:40 +00:00
mscott%netscape.com
d942a5fca1 Landing Seibel Bug #105292 onto the branch for darin.
git-svn-id: svn://10.0.0.236/branches/NETSCAPE_6_2_2_BRANCH@116220 18797224-902f-48f8-a5cc-f745e15eee43
2002-03-08 23:01:37 +00:00
jj%netscape.com
3b2582feb8 bugscape 12385: update mozilla part of the user agent to 0.9.4.1 (NS622 branch)
git-svn-id: svn://10.0.0.236/branches/NETSCAPE_6_2_2_BRANCH@116219 18797224-902f-48f8-a5cc-f745e15eee43
2002-03-08 22:55:05 +00:00
mscott%netscape.com
e756b83c4d Landing Bug #99174 onto the branch.
git-svn-id: svn://10.0.0.236/branches/NETSCAPE_6_2_2_BRANCH@116210 18797224-902f-48f8-a5cc-f745e15eee43
2002-03-08 22:37:51 +00:00
mscott%netscape.com
c636a1d999 Landing Bug #125620 onto the branch.
git-svn-id: svn://10.0.0.236/branches/NETSCAPE_6_2_2_BRANCH@116190 18797224-902f-48f8-a5cc-f745e15eee43
2002-03-08 21:48:05 +00:00
mscott%netscape.com
15f05a9fbf Landing 125720 onto the branch.
git-svn-id: svn://10.0.0.236/branches/NETSCAPE_6_2_2_BRANCH@116182 18797224-902f-48f8-a5cc-f745e15eee43
2002-03-08 21:21:57 +00:00
mscott%netscape.com
3723b1d616 landing bug #97674 onto the branch
git-svn-id: svn://10.0.0.236/branches/NETSCAPE_6_2_2_BRANCH@116122 18797224-902f-48f8-a5cc-f745e15eee43
2002-03-08 02:00:30 +00:00
mscott%netscape.com
b9e630cd09 Landing bug #115228 onto the branch.
git-svn-id: svn://10.0.0.236/branches/NETSCAPE_6_2_2_BRANCH@116120 18797224-902f-48f8-a5cc-f745e15eee43
2002-03-08 01:48:17 +00:00
leaf%mozilla.org
069c34903e update the .rsrc file versions
git-svn-id: svn://10.0.0.236/branches/NETSCAPE_6_2_2_BRANCH@116108 18797224-902f-48f8-a5cc-f745e15eee43
2002-03-08 00:02:55 +00:00
mscott%netscape.com
a2bdcdd2c7 Landing Bug #111305 onto the branch.
git-svn-id: svn://10.0.0.236/branches/NETSCAPE_6_2_2_BRANCH@116100 18797224-902f-48f8-a5cc-f745e15eee43
2002-03-07 23:09:07 +00:00
mscott%netscape.com
f8954afd62 Landing part of Bug #111305 onto the branch.
git-svn-id: svn://10.0.0.236/branches/NETSCAPE_6_2_2_BRANCH@116098 18797224-902f-48f8-a5cc-f745e15eee43
2002-03-07 22:53:25 +00:00
mscott%netscape.com
415e4b72d3 Landing bugscape bug #11922 onto the branch.
git-svn-id: svn://10.0.0.236/branches/NETSCAPE_6_2_2_BRANCH@116090 18797224-902f-48f8-a5cc-f745e15eee43
2002-03-07 21:44:09 +00:00
cltbld%netscape.com
1a52900772 updating to use tag NETSCAPE_6_2_2_BRANCH, kysmith checking in as cltbld
git-svn-id: svn://10.0.0.236/branches/NETSCAPE_6_2_2_BRANCH@116002 18797224-902f-48f8-a5cc-f745e15eee43
2002-03-06 23:47:55 +00:00
(no author)
5b52392817 This commit was manufactured by cvs2svn to create branch
'NETSCAPE_6_2_2_BRANCH'.

git-svn-id: svn://10.0.0.236/branches/NETSCAPE_6_2_2_BRANCH@114929 18797224-902f-48f8-a5cc-f745e15eee43
2002-02-19 12:28:22 +00:00
60 changed files with 1830 additions and 442 deletions

View File

@@ -7,12 +7,12 @@
# mozilla/gc, , 10/25/2000 12:00:00
#
mozilla/nsprpub, NETSCAPE_6_2_1_BRANCH
mozilla/security/nss, NETSCAPE_6_2_1_BRANCH
mozilla/security/manager, NETSCAPE_6_2_1_BRANCH
mozilla/accessible, NETSCAPE_6_2_1_BRANCH
DirectorySDKSourceC, NETSCAPE_6_2_1_BRANCH
mozilla/lib/mac/Instrumentation, NETSCAPE_6_2_1_BRANCH
mozilla/gfx2, NETSCAPE_6_2_1_BRANCH
mozilla/modules/libpr0n, NETSCAPE_6_2_1_BRANCH
SeaMonkeyAll, NETSCAPE_6_2_1_BRANCH
mozilla/nsprpub, NETSCAPE_6_2_2_BRANCH
mozilla/security/nss, NETSCAPE_6_2_2_BRANCH
mozilla/security/manager, NETSCAPE_6_2_2_BRANCH
mozilla/accessible, NETSCAPE_6_2_2_BRANCH
DirectorySDKSourceC, NETSCAPE_6_2_2_BRANCH
mozilla/lib/mac/Instrumentation, NETSCAPE_6_2_2_BRANCH
mozilla/gfx2, NETSCAPE_6_2_2_BRANCH
mozilla/modules/libpr0n, NETSCAPE_6_2_2_BRANCH
SeaMonkeyAll, NETSCAPE_6_2_2_BRANCH

View File

@@ -183,6 +183,13 @@ interface nsIScriptSecurityManager : nsIXPCSecurityManager
*/
[noscript] nsIPrincipal getObjectPrincipal(in JSContextPtr cx,
in JSObjectPtr obj);
/**
* Returns OK if aJSContext and target have the same "origin"
* (scheme, host, and port).
*/
[noscript] void checkSameOrigin(in JSContextPtr aJSContext,
in nsIURI aTargetURI);
};
%{C++

View File

@@ -126,8 +126,9 @@ private:
const char* aProperty, void** aPolicy);
nsresult
CheckSameOrigin(JSContext* aCx, nsIPrincipal* aSubject,
nsIPrincipal* aObject, PRUint32 aAction);
CheckSameOriginInternal(nsIPrincipal* aSubject,
nsIPrincipal* aObject, PRUint32 aAction,
PRBool checkForPrivileges);
PRInt32
GetSecurityLevel(nsIPrincipal *principal,

View File

@@ -204,6 +204,46 @@ nsScriptSecurityManager::CheckConnect(JSContext* aJSContext,
nsnull, nsnull, aClassName, aPropertyName, nsnull);
}
NS_IMETHODIMP
nsScriptSecurityManager::CheckSameOrigin(JSContext* cx,
nsIURI* aTargetURI)
{
nsresult rv;
// Get a context if necessary
if (!cx)
{
cx = GetCurrentContextQuick();
if (!cx)
return NS_OK; // No JS context, so allow access
}
// Get a principal from the context
nsCOMPtr<nsIPrincipal> sourcePrincipal;
rv = GetSubjectPrincipal(cx, getter_AddRefs(sourcePrincipal));
if (NS_FAILED(rv))
return rv;
PRBool equals;
if (!sourcePrincipal ||
NS_SUCCEEDED(sourcePrincipal->Equals(mSystemPrincipal, &equals))
&& equals)
// We have native code or the system principal, so allow access
return NS_OK;
// Create a principal from the target URI
// XXX factor out the Equals function so this isn't necessary
nsCOMPtr<nsIPrincipal> targetPrincipal;
rv = GetCodebasePrincipal(aTargetURI, getter_AddRefs(targetPrincipal));
if (NS_FAILED(rv))
return rv;
// Compare origins
return CheckSameOriginInternal(sourcePrincipal, targetPrincipal,
0, PR_FALSE /* do not check for privileges */);
}
nsresult
nsScriptSecurityManager::CheckPropertyAccessImpl(PRUint32 aAction,
nsIXPCNativeCallContext* aCallContext,
@@ -316,8 +356,8 @@ nsScriptSecurityManager::CheckPropertyAccessImpl(PRUint32 aAction,
rv = NS_ERROR_DOM_SECURITY_ERR;
break;
}
rv = CheckSameOrigin(aJSContext, subjectPrincipal, objectPrincipal,
aAction == nsIXPCSecurityManager::ACCESS_SET_PROPERTY);
rv = CheckSameOriginInternal(subjectPrincipal, objectPrincipal,
aAction, PR_TRUE /* check for privileges */);
break;
}
@@ -449,8 +489,10 @@ nsScriptSecurityManager::CheckPropertyAccessImpl(PRUint32 aAction,
}
nsresult
nsScriptSecurityManager::CheckSameOrigin(JSContext *aCx, nsIPrincipal* aSubject,
nsIPrincipal* aObject, PRUint32 aAction)
nsScriptSecurityManager::CheckSameOriginInternal(nsIPrincipal* aSubject,
nsIPrincipal* aObject,
PRUint32 aAction,
PRBool checkForPrivileges)
{
/*
** Get origin of subject and object and compare.
@@ -476,19 +518,21 @@ nsScriptSecurityManager::CheckSameOrigin(JSContext *aCx, nsIPrincipal* aSubject,
return NS_OK;
}
/*
** If we failed the origin tests it still might be the case that we
** are a signed script and have permissions to do this operation.
** Check for that here
*/
PRBool capabilityEnabled = PR_FALSE;
const char* cap = aAction == nsIXPCSecurityManager::ACCESS_SET_PROPERTY ?
"UniversalBrowserWrite" : "UniversalBrowserRead";
if (NS_FAILED(IsCapabilityEnabled(cap, &capabilityEnabled)))
return NS_ERROR_FAILURE;
if (capabilityEnabled)
return NS_OK;
if (checkForPrivileges)
{
/*
** If we failed the origin tests it still might be the case that we
** are a signed script and have permissions to do this operation.
** Check for that here
*/
PRBool capabilityEnabled = PR_FALSE;
const char* cap = aAction == nsIXPCSecurityManager::ACCESS_SET_PROPERTY ?
"UniversalBrowserWrite" : "UniversalBrowserRead";
if (NS_FAILED(IsCapabilityEnabled(cap, &capabilityEnabled)))
return NS_ERROR_FAILURE;
if (capabilityEnabled)
return NS_OK;
}
/*
** Access tests failed, so now report error.
*/

View File

@@ -40,14 +40,14 @@ MOZ_OBJDIR = WIN32_O.OBJ
#// Figure out how to do the pull.
#//------------------------------------------------------------------------
# uncomment these, modify branch tag, and check in to branch for milestones
MOZ_BRANCH=NETSCAPE_6_2_1_BRANCH
NSPR_CO_TAG=NETSCAPE_6_2_1_BRANCH
PSM_CO_TAG=NETSCAPE_6_2_1_BRANCH
NSS_CO_TAG=NETSCAPE_6_2_1_BRANCH
LDAPCSDK_CO_TAG=NETSCAPE_6_2_1_BRANCH
ACCESSIBLE_CO_TAG=NETSCAPE_6_2_1_BRANCH
IMGLIB2_CO_TAG=NETSCAPE_6_2_1_BRANCH
GFX2_CO_TAG=NETSCAPE_6_2_1_BRANCH
MOZ_BRANCH=NETSCAPE_6_2_2_BRANCH
NSPR_CO_TAG=NETSCAPE_6_2_2_BRANCH
PSM_CO_TAG=NETSCAPE_6_2_2_BRANCH
NSS_CO_TAG=NETSCAPE_6_2_2_BRANCH
LDAPCSDK_CO_TAG=NETSCAPE_6_2_2_BRANCH
ACCESSIBLE_CO_TAG=NETSCAPE_6_2_2_BRANCH
IMGLIB2_CO_TAG=NETSCAPE_6_2_2_BRANCH
GFX2_CO_TAG=NETSCAPE_6_2_2_BRANCH
!ifdef MOZ_BRANCH

View File

@@ -52,14 +52,14 @@
#
# For branches, uncomment the MOZ_CO_TAG line with the proper tag,
# and commit this file on that tag.
MOZ_CO_TAG = NETSCAPE_6_2_1_BRANCH
NSPR_CO_TAG = NETSCAPE_6_2_1_BRANCH
PSM_CO_TAG = NETSCAPE_6_2_1_BRANCH
NSS_CO_TAG = NETSCAPE_6_2_1_BRANCH
LDAPCSDK_CO_TAG = NETSCAPE_6_2_1_BRANCH
ACCESSIBLE_CO_TAG = NETSCAPE_6_2_1_BRANCH
GFX2_CO_TAG = NETSCAPE_6_2_1_BRANCH
IMGLIB2_CO_TAG = NETSCAPE_6_2_1_BRANCH
MOZ_CO_TAG = NETSCAPE_6_2_2_BRANCH
NSPR_CO_TAG = NETSCAPE_6_2_2_BRANCH
PSM_CO_TAG = NETSCAPE_6_2_2_BRANCH
NSS_CO_TAG = NETSCAPE_6_2_2_BRANCH
LDAPCSDK_CO_TAG = NETSCAPE_6_2_2_BRANCH
ACCESSIBLE_CO_TAG = NETSCAPE_6_2_2_BRANCH
GFX2_CO_TAG = NETSCAPE_6_2_2_BRANCH
IMGLIB2_CO_TAG = NETSCAPE_6_2_2_BRANCH
BUILD_MODULES = all
#######################################################################

View File

@@ -427,6 +427,15 @@ ifeq ($(OS_ARCH),HP-UX)
ifdef IS_COMPONENT
ifeq ($(GNU_CC)$(GNU_CXX),)
EXTRA_DSO_LDOPTS += -Wl,-Bsymbolic
ifneq ($(HAS_EXTRAEXPORTS),1)
ifeq ($(OS_TEST),ia64)
MKSHLIB += -Wl,+eNSGetModule -Wl,+eerrno
MKCSHLIB += -Wl,+eNSGetModule -Wl,+eerrno
else
MKSHLIB += -Wl,+eNSGetModule -Wl,+eerrno -Wl,+e_shlInit
MKCSHLIB += -Wl,+eNSGetModule -Wl,+eerrno -Wl,+e_shlInit
endif # ia64
endif # !HAS_EXTRAEXPORTS
endif # non-gnu compilers
endif # IS_COMPONENT
endif # HP-UX

View File

@@ -28,7 +28,7 @@ include $(DEPTH)/config/autoconf.mk
MODULE = layout
LIBRARY_NAME = gkconxmldoc_s
REQUIRES = xpcom string js dom widget caps htmlparser necko view docshell webshell uriloader pref xpconnect uconv chardet lwbrk exthandler mimetype
REQUIRES = xpcom string js dom widget caps htmlparser necko view docshell webshell uriloader pref xpconnect uconv chardet lwbrk exthandler mimetype windowwatcher
CPPSRCS = \
nsXMLContentSink.cpp \

View File

@@ -75,6 +75,8 @@
#include "nsContentCID.h"
#include "nsDOMAttribute.h"
#include "nsGUIEvent.h"
#include "nsIWindowWatcher.h"
#include "nsIAuthPrompt.h"
#include "nsCExternalHandlerService.h"
#include "nsIMIMEService.h"
@@ -183,7 +185,7 @@ NS_NewXMLDocument(nsIDocument** aInstancePtrResult)
nsXMLDocument::nsXMLDocument()
: mAttrStyleSheet(nsnull), mInlineStyleSheet(nsnull),
mParser(nsnull)
mParser(nsnull), mCrossSiteAccessEnabled(PR_FALSE)
{
}
@@ -256,35 +258,72 @@ nsXMLDocument::GetContentType(nsAWritableString& aContentType) const
NS_IMETHODIMP
nsXMLDocument::GetInterface(const nsIID& aIID, void** aSink)
{
// Since we implement all the interfaces that you can get with
// GetInterface() we can simply call QueryInterface() here and let
// it do all the work.
if (aIID.Equals(NS_GET_IID(nsIAuthPrompt))) {
NS_ENSURE_ARG_POINTER(aSink);
*aSink = nsnull;
nsresult rv;
nsCOMPtr<nsIWindowWatcher> ww(do_GetService("@mozilla.org/embedcomp/window-watcher;1", &rv));
if (NS_FAILED(rv))
return rv;
nsCOMPtr<nsIAuthPrompt> prompt;
rv = ww->GetNewAuthPrompter(nsnull, getter_AddRefs(prompt));
if (NS_FAILED(rv))
return rv;
nsIAuthPrompt *p = prompt.get();
NS_ADDREF(p);
*aSink = p;
return NS_OK;
}
return QueryInterface(aIID, aSink);
}
// nsIHttpEventSink
NS_IMETHODIMP
nsXMLDocument::OnRedirect(nsIHttpChannel *aHttpChannel, nsIChannel *aNewChannel)
{
NS_ENSURE_ARG_POINTER(aNewChannel);
nsresult rv;
nsCOMPtr<nsIScriptSecurityManager> securityManager =
nsCOMPtr<nsIScriptSecurityManager> secMan =
do_GetService(NS_SCRIPTSECURITYMANAGER_CONTRACTID, &rv);
if (NS_FAILED(rv))
return NS_ERROR_FAILURE;
nsCOMPtr<nsIURI> newLocation;
nsCOMPtr<nsIURI> newLocation; // The redirected URI
rv = aNewChannel->GetURI(getter_AddRefs(newLocation));
if (NS_FAILED(rv))
return NS_ERROR_FAILURE;
if (mScriptContext && !mCrossSiteAccessEnabled) {
nsCOMPtr<nsIJSContextStack> stack(do_GetService("@mozilla.org/js/xpc/ContextStack;1", & rv));
if (NS_FAILED(rv))
return rv;
JSContext *cx = (JSContext *)mScriptContext->GetNativeContext();
if (!cx)
return NS_ERROR_UNEXPECTED;
stack->Push(cx);
rv = secMan->CheckSameOrigin(nsnull, newLocation);
stack->Pop(&cx);
if (NS_FAILED(rv))
return rv;
}
nsCOMPtr<nsIPrincipal> newCodebase;
rv = securityManager->GetCodebasePrincipal(newLocation,
getter_AddRefs(newCodebase));
rv = secMan->GetCodebasePrincipal(newLocation,
getter_AddRefs(newCodebase));
if (NS_FAILED(rv))
return NS_ERROR_FAILURE;
@@ -322,6 +361,25 @@ nsXMLDocument::Load(const nsAReadableString& aUrl)
SetBaseURL(uri);
mBaseTarget.Truncate();
// Store script context, if any, in case we encounter redirect (because we need it there)
nsCOMPtr<nsIJSContextStack> stack =
do_GetService("@mozilla.org/js/xpc/ContextStack;1");
if (stack) {
JSContext *cx;
if (NS_SUCCEEDED(stack->Peek(&cx)) && cx) {
nsISupports *priv = (nsISupports *)::JS_GetContextPrivate(cx);
if (priv) {
priv->QueryInterface(NS_GET_IID(nsIScriptContext), getter_AddRefs(mScriptContext));
}
}
}
// Find out if UniversalBrowserRead privileges are enabled - we will need this
// in case of a redirect
rv = secMan->IsCapabilityEnabled("UniversalBrowserRead", &mCrossSiteAccessEnabled);
if (NS_FAILED(rv)) return rv;
// Create a channel
rv = NS_OpenURI(getter_AddRefs(channel), uri, nsnull, nsnull, this);
if (NS_FAILED(rv)) return rv;

View File

@@ -28,6 +28,7 @@
#include "nsIHTMLContentContainer.h"
#include "nsIInterfaceRequestor.h"
#include "nsIHttpEventSink.h"
#include "nsIScriptContext.h"
class nsIParser;
class nsIDOMNode;
@@ -114,6 +115,9 @@ protected:
nsString mBaseTarget;
nsIParser *mParser;
nsCOMPtr<nsIScriptContext> mScriptContext;
PRBool mCrossSiteAccessEnabled;
};

View File

@@ -4559,16 +4559,14 @@ nsresult nsDocShell::DoURILoad(nsIURI * aURI,
httpChannel->SetUploadStream(aPostData);
/* If there is a valid postdata *and* it is a History Load,
* set up the cache key on the channel, to retrieve the
* data only from the cache. When there is a postdata
* on a history load, we do not want to go out to the net
* in our first attempt. We will go out to the net for a
* post data result, *only* if it has expired from cache *and*
* the user has given us permission to do so.
* data *only* from the cache. If it is a normal reload, the
* cache is free to go to the server for updated postdata.
*/
if (mLoadType == LOAD_HISTORY || mLoadType == LOAD_RELOAD_NORMAL
|| mLoadType == LOAD_RELOAD_CHARSET_CHANGE) {
if (cacheChannel && cacheKey)
if (cacheChannel && cacheKey) {
if (mLoadType == LOAD_HISTORY || mLoadType == LOAD_RELOAD_CHARSET_CHANGE)
cacheChannel->SetCacheKey(cacheKey, PR_TRUE);
else if (mLoadType == LOAD_RELOAD_NORMAL)
cacheChannel->SetCacheKey(cacheKey, PR_FALSE);
}
}
else {
@@ -5442,29 +5440,28 @@ nsDocShell::AddToSessionHistory(nsIURI * aURI,
shouldPersist = ShouldAddToSessionHistory(aURI);
//
// If the entry is being replaced in SH, then just use the
// current entry...
//
if (LOAD_NORMAL_REPLACE == mLoadType) {
// There is no need to go to mSessionHistory and get the entry at
// current index. mOSHE works for subframes and top level docshells.
// Get a handle to the root docshell
nsCOMPtr<nsIDocShellTreeItem> root;
GetSameTypeRootTreeItem(getter_AddRefs(root));
/*
* If this is a LOAD_NORMAL_REPLACE in a subframe, we use
* the existing SH entry in the page and replace the url and
* other vitalities.
*/
if (LOAD_NORMAL_REPLACE == mLoadType && (root.get() != NS_STATIC_CAST(nsIDocShellTreeItem *, this))) {
// This is a subframe
entry = mOSHE;
// If there are children for this entry destroy them, as they are
// going out of scope.
if (entry) {
nsCOMPtr<nsISHContainer> shContainer(do_QueryInterface(entry));
if (shContainer) {
PRInt32 childCount = 0;
shContainer->GetChildCount(&childCount);
// Remove all children of this entry
for (PRInt32 i = childCount - 1; i >= 0; i--) {
nsCOMPtr<nsISHEntry> child;
shContainer->GetChildAt(i, getter_AddRefs(child));
shContainer->RemoveChild(child);
}
}
}
nsCOMPtr<nsISHContainer> shContainer(do_QueryInterface(entry));
if (shContainer) {
PRInt32 childCount = 0;
shContainer->GetChildCount(&childCount);
// Remove all children of this entry
for (PRInt32 i = childCount - 1; i >= 0; i--) {
nsCOMPtr<nsISHEntry> child;
shContainer->GetChildAt(i, getter_AddRefs(child));
shContainer->RemoveChild(child);
} // for
} // shContainer
}
// Create a new entry if necessary.
@@ -5532,6 +5529,18 @@ nsDocShell::AddToSessionHistory(nsIURI * aURI,
else
rv = AddChildSHEntry(nsnull, entry, mChildOffset);
}
else {
if (root.get() == NS_STATIC_CAST(nsIDocShellTreeItem *, this) && mSessionHistory) {
// It is a LOAD_NORMAL_REPLACE on the root docshell
PRInt32 index = 0;
nsCOMPtr<nsIHistoryEntry> hEntry;
mSessionHistory->GetIndex(&index);
nsCOMPtr<nsISHistoryInternal> shPrivate(do_QueryInterface(mSessionHistory));
// Replace the current entry with the new entry
if (shPrivate)
rv = shPrivate->ReplaceEntry(index, entry);
}
}
// Return the new SH entry...
if (aNewEntry) {

View File

@@ -2078,8 +2078,14 @@ initializeEncoding(XML_Parser parser)
#else
s = protocolEncodingName;
#endif
if ((ns ? XmlInitEncodingNS : XmlInitEncoding)(&initEncoding, &encoding, s))
return XML_ERROR_NONE;
//if ((ns ? XmlInitEncodingNS : XmlInitEncoding)(&initEncoding, &encoding, s))
if (ns) {
if (XmlInitEncodingNS(&initEncoding, &encoding, s))
return XML_ERROR_NONE;
} else {
if (XmlInitEncoding(&initEncoding, &encoding, s))
return XML_ERROR_NONE;
}
return handleUnknownEncoding(parser, protocolEncodingName);
}
@@ -2091,18 +2097,13 @@ processXmlDecl(XML_Parser parser, int isGeneralTextEntity,
const ENCODING *newEncoding = 0;
const char *version;
int standalone = -1;
if (!(ns
? XmlParseXmlDeclNS
: XmlParseXmlDecl)(isGeneralTextEntity,
encoding,
s,
next,
&eventPtr,
&version,
&encodingName,
&newEncoding,
&standalone))
return XML_ERROR_SYNTAX;
if (ns) {
if (!XmlParseXmlDeclNS(isGeneralTextEntity, encoding, s, next, &eventPtr, &version, &encodingName, &newEncoding, &standalone))
return XML_ERROR_SYNTAX;
} else {
if (!XmlParseXmlDecl(isGeneralTextEntity, encoding, s, next, &eventPtr, &version, &encodingName, &newEncoding, &standalone))
return XML_ERROR_SYNTAX;
}
if (!isGeneralTextEntity && standalone == 1) {
dtd.standalone = 1;
#ifdef XML_DTD
@@ -2158,12 +2159,10 @@ handleUnknownEncoding(XML_Parser parser, const XML_Char *encodingName)
info.release(info.data);
return XML_ERROR_NO_MEMORY;
}
enc = (ns
? XmlInitUnknownEncodingNS
: XmlInitUnknownEncoding)(unknownEncodingMem,
info.map,
info.convert,
info.data);
if (ns)
enc = XmlInitUnknownEncodingNS(unknownEncodingMem, info.map, info.convert, info.data);
else
enc = XmlInitUnknownEncoding(unknownEncodingMem, info.map, info.convert, info.data);
if (enc) {
unknownEncodingData = info.data;
unknownEncodingRelease = info.release;

View File

@@ -28,7 +28,7 @@ include $(DEPTH)/config/autoconf.mk
MODULE = xmlextras
LIBRARY_NAME = xmlextrasbase_s
REQUIRES = xpcom string dom js layout widget caps uconv necko docshell xpconnect webbrwsr
REQUIRES = xpcom string dom js layout widget caps uconv necko docshell xpconnect webbrwsr windowwatcher
CPPSRCS = \
nsDOMSerializer.cpp \

View File

@@ -60,6 +60,8 @@
#include "nsIDOMElement.h"
#include "nsIParser.h"
#include "nsLoadListenerProxy.h"
#include "nsIWindowWatcher.h"
#include "nsIAuthPrompt.h"
static const char* kLoadAsData = "loadAsData";
#define LOADSTR NS_LITERAL_STRING("load")
@@ -117,6 +119,7 @@ nsXMLHttpRequest::nsXMLHttpRequest()
NS_INIT_ISUPPORTS();
ChangeState(XML_HTTP_REQUEST_UNINITIALIZED,PR_FALSE);
mAsync = PR_TRUE;
mCrossSiteAccessEnabled = PR_FALSE;
}
nsXMLHttpRequest::~nsXMLHttpRequest()
@@ -141,6 +144,8 @@ NS_INTERFACE_MAP_BEGIN(nsXMLHttpRequest)
NS_INTERFACE_MAP_ENTRY(nsIDOMEventTarget)
NS_INTERFACE_MAP_ENTRY(nsIRequestObserver)
NS_INTERFACE_MAP_ENTRY(nsIStreamListener)
NS_INTERFACE_MAP_ENTRY(nsIHttpEventSink)
NS_INTERFACE_MAP_ENTRY(nsIInterfaceRequestor)
NS_INTERFACE_MAP_ENTRY(nsISupportsWeakReference)
NS_INTERFACE_MAP_ENTRY_DOM_CLASSINFO(XMLHttpRequest)
NS_INTERFACE_MAP_END
@@ -641,6 +646,12 @@ nsXMLHttpRequest::Open(const char *method, const char *url)
return NS_OK;
}
// Find out if UniversalBrowserRead privileges are enabled
// we will need this in case of a redirect
rv = secMan->IsCapabilityEnabled("UniversalBrowserRead",
&mCrossSiteAccessEnabled);
if (NS_FAILED(rv)) return rv;
if (argc > 2) {
JSBool asyncBool;
JS_ValueToBoolean(cx, argv[2], &asyncBool);
@@ -1113,6 +1124,11 @@ nsXMLHttpRequest::Send(nsISupports *body)
}
#endif
if (!mScriptContext) {
// We need a context to check if redirect (if any) is allowed
GetCurrentContext(getter_AddRefs(mScriptContext));
}
rv = document->StartDocumentLoad(kLoadAsData, mChannel,
nsnull, nsnull,
getter_AddRefs(listener),
@@ -1129,6 +1145,9 @@ nsXMLHttpRequest::Send(nsISupports *body)
if (NS_FAILED(rv)) return NS_ERROR_FAILURE;
#endif
// Hook us up to listen to redirects and the like
mChannel->SetNotificationCallbacks(this);
// Start reading from the channel
ChangeState(XML_HTTP_REQUEST_SENT);
mXMLParserStreamListener = listener;
@@ -1332,6 +1351,79 @@ nsXMLHttpRequest::ChangeState(nsXMLHttpRequestState aState, PRBool aBroadcast)
return rv;
}
/////////////////////////////////////////////////////
// nsIHttpEventSink methods:
//
NS_IMETHODIMP
nsXMLHttpRequest::OnRedirect(nsIHttpChannel *aHttpChannel, nsIChannel *aNewChannel)
{
NS_ENSURE_ARG_POINTER(aNewChannel);
if (mScriptContext && !mCrossSiteAccessEnabled) {
nsresult rv = NS_ERROR_FAILURE;
nsCOMPtr<nsIJSContextStack> stack(do_GetService("@mozilla.org/js/xpc/ContextStack;1", & rv));
if (NS_FAILED(rv))
return rv;
JSContext *cx = (JSContext *)mScriptContext->GetNativeContext();
if (!cx)
return NS_ERROR_UNEXPECTED;
nsCOMPtr<nsIScriptSecurityManager> secMan =
do_GetService(NS_SCRIPTSECURITYMANAGER_CONTRACTID, &rv);
if (NS_FAILED(rv))
return rv;
nsCOMPtr<nsIURI> newURI;
rv = aNewChannel->GetURI(getter_AddRefs(newURI)); // The redirected URI
if (NS_FAILED(rv))
return rv;
stack->Push(cx);
rv = secMan->CheckSameOrigin(cx, newURI);
stack->Pop(&cx);
if (NS_FAILED(rv))
return rv;
}
mChannel = aNewChannel;
return NS_OK;
}
/////////////////////////////////////////////////////
// nsIInterfaceRequestor methods:
//
NS_IMETHODIMP
nsXMLHttpRequest::GetInterface(const nsIID & aIID, void **aResult)
{
if (aIID.Equals(NS_GET_IID(nsIAuthPrompt))) {
NS_ENSURE_ARG_POINTER(aResult);
*aResult = nsnull;
nsresult rv;
nsCOMPtr<nsIWindowWatcher> ww(do_GetService("@mozilla.org/embedcomp/window-watcher;1", &rv));
if (NS_FAILED(rv))
return rv;
nsCOMPtr<nsIAuthPrompt> prompt;
rv = ww->GetNewAuthPrompter(nsnull, getter_AddRefs(prompt));
if (NS_FAILED(rv))
return rv;
nsIAuthPrompt *p = prompt.get();
NS_ADDREF(p);
*aResult = p;
return NS_OK;
}
return QueryInterface(aIID, aResult);
}
NS_IMPL_ISUPPORTS1(nsXMLHttpRequest::nsHeaderVisitor, nsIHttpHeaderVisitor)
NS_IMETHODIMP nsXMLHttpRequest::

View File

@@ -43,6 +43,8 @@
#include "nsISupportsArray.h"
#include "jsapi.h"
#include "nsIScriptContext.h"
#include "nsIHttpEventSink.h"
#include "nsIInterfaceRequestor.h"
enum nsXMLHttpRequestState {
@@ -60,6 +62,8 @@ class nsXMLHttpRequest : public nsIXMLHttpRequest,
public nsIDOMLoadListener,
public nsIDOMEventTarget,
public nsIStreamListener,
public nsIHttpEventSink,
public nsIInterfaceRequestor,
public nsSupportsWeakReference
{
public:
@@ -92,6 +96,12 @@ public:
// nsIRequestObserver
NS_DECL_NSIREQUESTOBSERVER
// nsIHttpEventSink
NS_DECL_NSIHTTPEVENTSINK
// nsIInterfaceRequestor
NS_DECL_NSIINTERFACEREQUESTOR
protected:
nsresult GetStreamForWString(const PRUnichar* aStr,
PRInt32 aLength,
@@ -145,6 +155,7 @@ protected:
PRInt32 mStatus;
PRBool mAsync;
PRBool mCrossSiteAccessEnabled;
};
#endif

View File

@@ -1930,15 +1930,20 @@ nsRenderingContextGTK::my_gdk_draw_text (GdkDrawable *drawable,
// gdk does this... we don't need it..
// XSetFont(drawable_private->xdisplay, gc_private->xgc, xfont->fid);
// We clamp the sizes down to 32768 which is the maximum width of
// a window. Even if a font was 1 pixel high and started at the
// left, the maximum size of a draw request could only be 32k.
if ((xfont->min_byte1 == 0) && (xfont->max_byte1 == 0))
{
XDrawString (drawable_private->xdisplay, drawable_private->xwindow,
gc_private->xgc, x, y, text, text_length);
gc_private->xgc, x, y, text, MIN(text_length, 32768));
}
else
{
XDrawString16 (drawable_private->xdisplay, drawable_private->xwindow,
gc_private->xgc, x, y, (XChar2b *) text, text_length / 2);
gc_private->xgc, x, y, (XChar2b *) text,
MIN((text_length / 2), 32768));
}
}
else if (font->type == GDK_FONT_FONTSET)

View File

@@ -51,7 +51,7 @@ EXTRA_DSO_LDOPTS += $(MOZ_COMPONENT_LIBS)
# Reserved name __STDC__ cannot be defined as a macro name on AIX or OpenVMS.
# QNX simply objects to the way it's being redefined.
ifeq (,$(filter AIX OpenVMS QNX,$(OS_ARCH)))
ifeq (,$(filter AIX HP-UX OpenVMS QNX,$(OS_ARCH)))
CFLAGS += -D__STDC__
endif

View File

@@ -103,7 +103,7 @@ CFLAGS += -DUSE_NSREG
# Reserved name __STDC__ cannot be defined as a macro name on AIX or OpenVMS.
# QNX simply objects to the way it's being redefined.
ifeq (,$(filter AIX OpenVMS QNX,$(OS_ARCH)))
ifeq (,$(filter AIX HP-UX OpenVMS QNX,$(OS_ARCH)))
CFLAGS += -D__STDC__
endif

View File

@@ -1,227 +0,0 @@
#! /usr/local/bin/perl5
use File::Path;
# The development branch is where primary development and checkins
# are done on a day-to-day basis.
$development_branch_prefix = "SpiderMonkey140";
# Space-separated list of CVS-controlled directories to tag/merge
$merge_dirs =
"mozilla/js/src " ;
# When line below uncommented, don't recurse into subdirs
#$recurse_flag = '-l';
#----------------------------------------------------------------------------
# The merge branch is itself a branch off of the development branch
# at a point where the development branch is thought to be stable.
# (A branch is used rather than a static tag because, inevitably,
# the development branch is not quite as stable/buildable as was
# thought.) The contents of the merge branch will be copied to
# the trunk when merging takes place.
# The following tags are created automatically by this script:
#
# JS_STABLE_DROP
#
# A static tag on the development branch (or a branch off the
# development branch) that indicates the code that should be merged
# into the trunk. This is a "variable" tag in the sense that it is
# redefined after each merge.
#
# JS_LAST_STABLE_DROP
#
# A static tag that is a copy of what the JS_STABLE_DROP tag was in
# the previous merge cycle. This is a "variable" tag that is
# redefined after each merge. Changes in the branch can be merged
# to the trunk by using:
#
# cvs up -jJS_LAST_STABLE_DROP -jJS_STABLE_DROP
#
# JS_LANDING
#
# A static tag that identifies the code on the trunk after the merge
# from the branch to the trunk takes place. This is a "variable"
# tag that is redefined after each merge. Changes on the trunk
# since the last branch landing can be seen by using:
#
# cvs diff -rJS_LANDING -rHEAD
#
# JS_LANDING_mmddyyyy
#
# This is a tag on the trunk which may be used for archaeological
# purposes. This tag is made from the JS_LANDING tag.
$development_branch = $development_branch_prefix . "_BRANCH";
$development_base = $development_branch_prefix . "_BASE";
sub help {
print <<"END";
$0: A tool for merging stable snapshots of JavaScript from a CVS
development branch onto the trunk
Landing a snapshot of the development branch consists of
the following steps:
1) Tag all/some files on the branch to identify files to be merged.
2) Merge files from the branch into the trunk using a temporary
working directory.
3) Resolve any conflicts that arise as a result of the merge.
4) Commit merged changes to the trunk.
5) Make changes to resolve (build) difficulties and re-commit.
Repeat as necessary.
6) Backpropagate changes on the trunk to the development branch.
This script will assist with steps #2, #4 and #6:
$0 -merge JS_STABLE_10131998
$0 -commit
$0 -backpatch
END
}
sub log {
local($msg) = @_;
print LOGFILE $msg if $logfile;
}
# Similar to die built-in
sub die {
local($msg) = @_;
&log($msg);
chomp($msg);
if ($logfile) {
$msg .= "\nSee $logfile for details.";
}
die "$msg\n";
}
# Similar to system() built-in
sub system {
local(@args) = @_;
local($cmd) = join(" ", @args);
&log("Executing: $cmd\n");
if ($logfile) {
$cmd .= " >> $logfile 2>&1";
close(LOGFILE);
}
local($result) = 0xffff & system($cmd);
if ($logfile) {
open(LOGFILE, ">>$logfile");
}
return unless ($result);
$msg = "Died while executing $cmd";
if ($result == 0xff00) {
&die("$msg\nWhile executExecution failed due to perl error: $!. ");
} else {
$result >>= 8;
&die("$msg\nExecution failed; exit status: $result. ");
}
}
chomp($root_dir = `pwd`);
# Default log file
$logfile = $root_dir . "/log";
while ($#ARGV >=0) {
$_ = shift;
if (/-merge/) {
$do_tag = 1;
$do_checkout = 1;
$do_merge = 1;
$tag = shift;
} elsif (/-commit/ || /-ci/) {
$do_commit = 1;
} elsif (/-backpatch/) {
$do_backpatch = 1;
} elsif (/-log/) {
$logfile = shift;
} elsif (/-tag/) { # Debugging option
$do_tag = 1;
$tag = shift;
} elsif (/-co/) { # Debugging option
$do_checkout = 1;
} else {
print STDERR "Illegal option: $_\n" unless (/-h/);
&help();
exit(1);
}
}
die "You must set your CVSROOT environment variable" if !$ENV{"CVSROOT"};
if ($logfile) {
open(LOGFILE, ">$logfile") || die "Couldn't open log file \"$logfile\"";
print("Logging to file \"$logfile\".\n");
}
$trunk_dir = $root_dir . "/trunk";
if ($do_tag) {
if (!$tag) {
&die("Must specify tag on command-line\n");
}
print("Tagging tree with tag JS_STABLE_DROP.\n");
&system("cvs rtag $recurse_flag -F -r $tag JS_STABLE_DROP $merge_dirs");
}
if ($do_checkout) {
# Delete trunk subdir if it already exists
if (-d $trunk_dir) {
&log("Deleting directory $trunk_dir\n");
rmtree ($trunk_dir, 0, 1);
}
&log("Creating directory $trunk_dir\n");
mkdir($trunk_dir, 0777) || die "Couldn't create directory $trunk_dir";
# Check out on trunk
print("Checking out $merge_dirs.\n");
chdir $trunk_dir;
&system("cvs co $recurse_flag -A $merge_dirs");
}
if ($do_merge) {
chdir $trunk_dir;
print("Merging from JS_STABLE_DROP into trunk\n");
&system("cvs up -jJS_LAST_STABLE_DROP -jJS_STABLE_DROP");
}
if ($do_commit) {
&die("No merged tree found. Wrong directory ?") if (!chdir $trunk_dir);
($_,$_,$_,$day,$mon,$year,$_,$_) = localtime(time());
if ($year < 30) {
$year = "20" . $year;
} else {
$year = "19" . $year;
}
$mmddyyyy = sprintf("%02d%02d%s", $mon, $day, $year);
print("Checking in code on trunk");
&system("cvs ci -m 'Stable drop of JavaScript interpreter code from " .
"$development_branch'");
# Tag merged result
&system("cvs tag -F JS_LANDING");
&system("cvs tag -F JS_LANDING_$mmddyyyy");
# Move JS_LAST_STABLE_DROP tag forward
&system("cvs tag -F -rJS_STABLE_DROP JS_LAST_STABLE_DROP");
}

View File

@@ -664,8 +664,10 @@ nsMsgAttachmentHandler::SnarfAttachment(nsMsgCompFields *compFields)
m_x_mac_creator = PL_strdup(filetype);
}
long dataSize = 0;
long resSize = 0;
PRBool sendResourceFork = PR_TRUE;
PRBool sendDataFork = PR_TRUE;
PRBool icGaveNeededInfo = PR_FALSE;
nsCOMPtr<nsIInternetConfigService> icService (do_GetService(NS_INTERNETCONFIGSERVICE_CONTRACTID));
@@ -676,7 +678,14 @@ nsMsgAttachmentHandler::SnarfAttachment(nsMsgCompFields *compFields)
if (NS_SUCCEEDED(rv) && icFlags != -1 && !(icFlags & nsIInternetConfigService::eIICMapFlag_NotOutgoingMask))
{
sendResourceFork = (icFlags & nsIInternetConfigService::eIICMapFlag_ResourceForkMask);
sendDataFork = (icFlags & nsIInternetConfigService::eIICMapFlag_DataForkMask);
if (sendResourceFork)
{
// before deciding to send the resource fork along the data fork, check if we have one,
// else don't need to use apple double.
if (::FSpGetFileSize(&fsSpec, &dataSize, &resSize) == noErr && resSize == 0)
sendResourceFork = PR_FALSE;
}
icGaveNeededInfo = PR_TRUE;
}
@@ -685,9 +694,6 @@ nsMsgAttachmentHandler::SnarfAttachment(nsMsgCompFields *compFields)
if (! icGaveNeededInfo)
{
// If InternetConfig cannot help us, then just try our best...
long dataSize = 0;
long resSize = 0;
// first check if we have a resource fork
if (::FSpGetFileSize(&fsSpec, &dataSize, &resSize) == noErr)
sendResourceFork = (resSize > 0);

View File

@@ -2396,16 +2396,15 @@ nsresult nsImapIncomingServer::RequestOverrideInfo(nsIMsgWindow *aMsgWindow)
GetUsername(getter_Copies(userName));
m_logonRedirector->RequiresPassword(userName, &requiresPassword);
if (requiresPassword)
{
GetPassword(getter_Copies(password));
if (!((const char *) password) || nsCRT::strlen((const char *) password) == 0)
if (password.IsEmpty())
PromptForPassword(getter_Copies(password), aMsgWindow);
// if we still don't have a password then the user must have hit cancel so just
// fall out...
if (!((const char *) password) || nsCRT::strlen((const char *) password) == 0)
if (password.IsEmpty()) // if still empty then the user canceld out of the password dialog
{
// be sure to clear the waiting for connection info flag because we aren't waiting
// anymore for a connection...
@@ -2413,6 +2412,10 @@ nsresult nsImapIncomingServer::RequestOverrideInfo(nsIMsgWindow *aMsgWindow)
return NS_OK;
}
}
else
{
SetUserAuthenticated(PR_TRUE); // we are already authenicated
}
nsCOMPtr<nsIPrompt> dialogPrompter;
if (aMsgWindow)

View File

@@ -469,7 +469,27 @@ nsMsgLocalMailFolder::GetSubFolders(nsIEnumerator* *result)
rv = localMailServer->SetFlagsOnDefaultMailboxes();
if (NS_FAILED(rv)) return rv;
}
/*we need to create all the folders at start-up because if a folder having subfolders is
closed then the datasource will not ask for subfolders. For IMAP logging onto the
server will create imap folders and for news we don't have any 2nd level newsgroup */
PRUint32 cnt;
rv = mSubFolders->Count(&cnt);
if (NS_SUCCEEDED(rv))
{
nsCOMPtr<nsIEnumerator> enumerator;
for (PRUint32 i=0; i< cnt;i++)
{
nsCOMPtr<nsISupports> supports = getter_AddRefs(mSubFolders->ElementAt(i));
nsCOMPtr<nsIMsgFolder> folder = do_QueryInterface(supports, &rv);
if (folder && NS_SUCCEEDED(rv))
{
rv = folder->GetSubFolders(getter_AddRefs(enumerator));
NS_ASSERTION(NS_SUCCEEDED(rv),"GetSubFolders failed");
}
}
}
}
UpdateSummaryTotals(PR_FALSE);

View File

@@ -112,6 +112,7 @@
*/
#include "nsCOMPtr.h"
#include "mimemrel.h"
#include "mimemapl.h"
#include "prmem.h"
#include "prprf.h"
#include "prlog.h"
@@ -464,10 +465,21 @@ MimeMultipartRelated_output_child_p(MimeObject *obj, MimeObject* child)
PR_FREEIF(base_url);
PR_Free(location);
if (absolute) {
char* partnum = mime_part_address(child);
if (partnum) {
nsCAutoString partnum;
char * partNumStr = mime_part_address(child);
partnum.Assign(partNumStr);
PR_FREEIF(partNumStr);
if (!partnum.IsEmpty()) {
/*
AppleDouble part need special care: we need to output only the data fork part of it.
The problem at this point is that we haven't yet decoded the children of the AppleDouble
part therfore we will have to hope the datafork is the second one!
*/
if (mime_typep(child, (MimeObjectClass *) &mimeMultipartAppleDoubleClass))
partnum.Append(".2");
char* part;
part = mime_set_url_part(obj->options->url, partnum,
part = mime_set_url_part(obj->options->url, (char *) partnum.get(),
PR_FALSE);
if (part) {
/* If there's a space in the url, escape the url.
@@ -513,7 +525,6 @@ MimeMultipartRelated_output_child_p(MimeObject *obj, MimeObject* child)
part URL that was given to us. */
if (temp != part) PR_Free(part);
}
PR_Free(partnum);
}
}
}
@@ -539,7 +550,6 @@ MimeMultipartRelated_output_child_p(MimeObject *obj, MimeObject* child)
PR_FREEIF(relobj->base_url);
relobj->base_url = base_url;
}
}
if (obj->options && !obj->options->write_html_p
#ifdef MIME_DRAFTS

View File

@@ -390,7 +390,8 @@ MimeMultipart_create_child(MimeObject *obj)
{
struct mime_stream_data *msd = (struct mime_stream_data *)body->options->stream_closure;
if (!body->options->write_html_p && body->content_type && !nsCRT::strcasecmp(body->content_type, APPLICATION_APPLEFILE))
msd->channel->SetContentType(APPLICATION_APPLEFILE);
if (msd && msd->channel)
msd->channel->SetContentType(APPLICATION_APPLEFILE);
}
#endif

View File

@@ -28,7 +28,7 @@ pref("network.search.url","http://cgi.netscape.com/cgi-bin/url_search.cgi?search
pref("keyword.URL", "http://keyword.netscape.com/keyword/");
pref("keyword.enabled", true);
pref("general.useragent.locale", "chrome://navigator/locale/navigator.properties");
pref("general.useragent.misc", "rv:0.9.4");
pref("general.useragent.misc", "rv:0.9.4.1");
pref("general.startup.browser", true);
pref("general.startup.mail", false);

View File

@@ -117,6 +117,7 @@ static void SetMIMETypeSeparator(char *minfo)
#define DEFAULT_X11_PATH "/usr/lib/X11R6/"
#undef LOCAL_PLUGIN_DLL_SUFFIX
#define LOCAL_PLUGIN_DLL_SUFFIX ".sl"
#define LOCAL_PLUGIN_DLL_ALT_SUFFIX ".so"
#elif defined(SOLARIS)
#define DEFAULT_X11_PATH "/usr/openwin/lib/"
#elif defined(LINUX)
@@ -329,6 +330,15 @@ PRBool nsPluginsDir::IsPluginFile(const nsFileSpec& fileSpec)
if (n > 0 && !PL_strcmp(&pathname[n], LOCAL_PLUGIN_DLL_SUFFIX)) {
ret = PR_TRUE; // *.so or *.sl file
}
#ifdef LOCAL_PLUGIN_DLL_ALT_SUFFIX
if (PR_TRUE != ret) {
n = PL_strlen(pathname) - (sizeof(LOCAL_PLUGIN_DLL_ALT_SUFFIX) - 1);
if (n > 0 && !PL_strcmp(&pathname[n], LOCAL_PLUGIN_DLL_ALT_SUFFIX)) {
ret = PR_TRUE;
}
}
#endif
#ifdef NS_DEBUG
printf("IsPluginFile(%s) == %s\n", pathname, ret?"TRUE":"FALSE");
#endif

View File

@@ -249,10 +249,12 @@ int r;
&s->sub.trees.tb, s->hufts, z);
if (t != Z_OK)
{
ZFREE(z, s->sub.trees.blens);
r = t;
if (r == Z_DATA_ERROR)
{
ZFREE(z, s->sub.trees.blens);
s->mode = BAD;
}
LEAVE
}
s->sub.trees.index = 0;
@@ -313,14 +315,17 @@ int r;
t = inflate_trees_dynamic(257 + (t & 0x1f), 1 + ((t >> 5) & 0x1f),
s->sub.trees.blens, &bl, &bd, &tl, &td,
s->hufts, z);
ZFREE(z, s->sub.trees.blens);
if (t != Z_OK)
{
if (t == (uInt)Z_DATA_ERROR)
{
ZFREE(z, s->sub.trees.blens);
s->mode = BAD;
}
r = t;
LEAVE
}
ZFREE(z, s->sub.trees.blens);
Tracev((stderr, "inflate: trees ok\n"));
if ((c = inflate_codes_new(bl, bd, tl, td, z)) == Z_NULL)
{

View File

@@ -28,7 +28,7 @@ include $(DEPTH)/config/autoconf.mk
MODULE = necko
LIBRARY_NAME = nkhttp_s
REQUIRES = xpcom string pref nkcache mimetype intl
REQUIRES = xpcom string pref nkcache mimetype intl xpconnect js
CPPSRCS = \
nsHttp.cpp \

View File

@@ -33,6 +33,7 @@
#include "nsIStringBundle.h"
#include "nsISupportsPrimitives.h"
#include "nsIFileStream.h"
#include "nsIScriptSecurityManager.h"
#include "nsMimeTypes.h"
#include "nsNetUtil.h"
#include "nsString2.h"
@@ -1063,6 +1064,15 @@ nsHttpChannel::ProcessRedirection(PRUint32 redirectType)
rv = ioService->NewURI(location, mURI, getter_AddRefs(newURI));
if (NS_FAILED(rv)) return rv;
// verify that this is a legal redirect
nsCOMPtr<nsIScriptSecurityManager> securityManager =
do_GetService(NS_SCRIPTSECURITYMANAGER_CONTRACTID);
if (securityManager) {
rv = securityManager->CheckLoadURI(mURI, newURI,
nsIScriptSecurityManager::DISALLOW_FROM_MAIL);
if (NS_FAILED(rv)) return rv;
}
// move the reference of the old location to the new one if the new
// one has none.
nsCOMPtr<nsIURL> newURL = do_QueryInterface(newURI, &rv);

View File

@@ -3179,7 +3179,9 @@ EOF
DLL_SUFFIX=sl
DSO_LDOPTS='-b +h $(notdir $@)'
PR_MD_CSRCS=hpux.c
PR_MD_ASFILES=os_HPUX.s
if test "$OS_TEST" != "ia64"; then
PR_MD_ASFILES=os_HPUX.s
fi
if test -n "$USE_64"; then
MDCPUCFG_H=_hpux64.cfg
else
@@ -3188,8 +3190,13 @@ EOF
if test -z "$GNU_CC"; then
CC="$CC -Ae"
CXX="$CXX -ext"
CFLAGS="$CFLAGS +ESlit"
CXXFLAGS="$CXXFLAGS +ESlit"
if test "$OS_TEST" != "ia64"; then
CFLAGS="$CFLAGS +ESlit"
CXXFLAGS="$CXXFLAGS +ESlit"
else
CFLAGS="$CFLAGS +Olit=all"
CXXFLAGS="$CXXFLAGS +Olit=all"
fi
DSO_CFLAGS=+Z
else
DSO_CFLAGS=-fPIC
@@ -3233,7 +3240,7 @@ EOF
fi
if echo "$OS_RELEASE" | egrep '^(B.10.30|B.11.00)' >/dev/null; then
if echo "$OS_RELEASE" | egrep '^(B.10.30|B.11.00|B.11.11|B.11.20)' >/dev/null; then
cat >> confdefs.h <<\EOF
#define HAVE_POINTER_LOCALTIME_R 1
EOF
@@ -3292,7 +3299,7 @@ EOF
DEFAULT_IMPL_STRATEGY=_PTH
fi
if test "$OS_RELEASE" = "B.11.00"; then
if echo "$OS_RELEASE" | egrep '^(B.11.00|B.11.11|B.11.20)' >/dev/null; then
cat >> confdefs.h <<\EOF
#define HPUX10 1
EOF
@@ -3315,11 +3322,21 @@ EOF
if test -z "$GNU_CC"; then
if test -z "$USE_64"; then
CFLAGS="$CFLAGS +DAportable +DS2.0"
CXXFLAGS="$CXXFLAGS +DAportable +DS2.0"
else
CFLAGS="$CFLAGS +DA2.0W +DS2.0"
CXXFLAGS="$CXXFLAGS +DA2.0W +DS2.0"
if test "$OS_TEST" = "ia64"; then
CFLAGS="$CFLAGS +DD32"
CXXFLAGS="$CXXFLAGS +DD32"
else
CFLAGS="$CFLAGS +DAportable +DS2.0"
CXXFLAGS="$CXXFLAGS +DAportable +DS2.0"
fi
else
if test "$OS_TEST" = "ia64"; then
CFLAGS="$CFLAGS +DD64"
CXXFLAGS="$CXXFLAGS +DD64"
else
CFLAGS="$CFLAGS +DA2.0W +DS2.0"
CXXFLAGS="$CXXFLAGS +DA2.0W +DS2.0"
fi
fi
fi
DEFAULT_IMPL_STRATEGY=_PTH
@@ -4010,17 +4027,17 @@ EOF
ac_safe=`echo "machine/builtins.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for machine/builtins.h""... $ac_c" 1>&6
echo "configure:4014: checking for machine/builtins.h" >&5
echo "configure:4031: checking for machine/builtins.h" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 4019 "configure"
#line 4036 "configure"
#include "confdefs.h"
#include <machine/builtins.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:4024: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
{ (eval echo configure:4041: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -4567,12 +4584,12 @@ esac
if test -z "$SKIP_LIBRARY_CHECKS"; then
echo $ac_n "checking for dlopen""... $ac_c" 1>&6
echo "configure:4571: checking for dlopen" >&5
echo "configure:4588: checking for dlopen" >&5
if eval "test \"`echo '$''{'ac_cv_func_dlopen'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 4576 "configure"
#line 4593 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char dlopen(); below. */
@@ -4595,7 +4612,7 @@ dlopen();
; return 0; }
EOF
if { (eval echo configure:4599: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:4616: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_dlopen=yes"
else
@@ -4614,7 +4631,7 @@ else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6
echo "configure:4618: checking for dlopen in -ldl" >&5
echo "configure:4635: checking for dlopen in -ldl" >&5
ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -4622,7 +4639,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-ldl $LIBS"
cat > conftest.$ac_ext <<EOF
#line 4626 "configure"
#line 4643 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -4633,7 +4650,7 @@ int main() {
dlopen()
; return 0; }
EOF
if { (eval echo configure:4637: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:4654: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -4661,13 +4678,13 @@ fi
if test $ac_cv_prog_gcc = yes; then
echo $ac_n "checking whether ${CC-cc} needs -traditional""... $ac_c" 1>&6
echo "configure:4665: checking whether ${CC-cc} needs -traditional" >&5
echo "configure:4682: checking whether ${CC-cc} needs -traditional" >&5
if eval "test \"`echo '$''{'ac_cv_prog_gcc_traditional'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
ac_pattern="Autoconf.*'x'"
cat > conftest.$ac_ext <<EOF
#line 4671 "configure"
#line 4688 "configure"
#include "confdefs.h"
#include <sgtty.h>
Autoconf TIOCGETP
@@ -4685,7 +4702,7 @@ rm -f conftest*
if test $ac_cv_prog_gcc_traditional = no; then
cat > conftest.$ac_ext <<EOF
#line 4689 "configure"
#line 4706 "configure"
#include "confdefs.h"
#include <termio.h>
Autoconf TCGETA
@@ -4709,12 +4726,12 @@ fi
for ac_func in lchown strerror
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
echo "configure:4713: checking for $ac_func" >&5
echo "configure:4730: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 4718 "configure"
#line 4735 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -4737,7 +4754,7 @@ $ac_func();
; return 0; }
EOF
if { (eval echo configure:4741: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:4758: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -4775,7 +4792,7 @@ fi
echo $ac_n "checking for pthread_create in -lpthreads""... $ac_c" 1>&6
echo "configure:4779: checking for pthread_create in -lpthreads" >&5
echo "configure:4796: checking for pthread_create in -lpthreads" >&5
echo "
#include <pthread.h>
void *foo(void *v) { int a = 1; }
@@ -4797,7 +4814,7 @@ echo "
echo "$ac_t""no" 1>&6
echo $ac_n "checking for pthread_create in -lpthread""... $ac_c" 1>&6
echo "configure:4801: checking for pthread_create in -lpthread" >&5
echo "configure:4818: checking for pthread_create in -lpthread" >&5
echo "
#include <pthread.h>
void *foo(void *v) { int a = 1; }
@@ -4819,7 +4836,7 @@ echo "
echo "$ac_t""no" 1>&6
echo $ac_n "checking for pthread_create in -lc_r""... $ac_c" 1>&6
echo "configure:4823: checking for pthread_create in -lc_r" >&5
echo "configure:4840: checking for pthread_create in -lc_r" >&5
echo "
#include <pthread.h>
void *foo(void *v) { int a = 1; }
@@ -4841,7 +4858,7 @@ echo "
echo "$ac_t""no" 1>&6
echo $ac_n "checking for pthread_create in -lc""... $ac_c" 1>&6
echo "configure:4845: checking for pthread_create in -lc" >&5
echo "configure:4862: checking for pthread_create in -lc" >&5
echo "
#include <pthread.h>
void *foo(void *v) { int a = 1; }
@@ -4991,7 +5008,7 @@ if test -n "$USE_PTHREADS"; then
rm -f conftest*
ac_cv_have_dash_pthread=no
echo $ac_n "checking whether ${CC-cc} accepts -pthread""... $ac_c" 1>&6
echo "configure:4995: checking whether ${CC-cc} accepts -pthread" >&5
echo "configure:5012: checking whether ${CC-cc} accepts -pthread" >&5
echo 'int main() { return 0; }' | cat > conftest.c
${CC-cc} -pthread -o conftest conftest.c > conftest.out 2>&1
if test $? -eq 0; then
@@ -5007,7 +5024,7 @@ echo "configure:4995: checking whether ${CC-cc} accepts -pthread" >&5
ac_cv_have_dash_pthreads=no
if test "$ac_cv_have_dash_pthread" = "no"; then
echo $ac_n "checking whether ${CC-cc} accepts -pthreads""... $ac_c" 1>&6
echo "configure:5011: checking whether ${CC-cc} accepts -pthreads" >&5
echo "configure:5028: checking whether ${CC-cc} accepts -pthreads" >&5
echo 'int main() { return 0; }' | cat > conftest.c
${CC-cc} -pthreads -o conftest conftest.c > conftest.out 2>&1
if test $? -eq 0; then

View File

@@ -821,7 +821,9 @@ case "$target" in
DLL_SUFFIX=sl
DSO_LDOPTS='-b +h $(notdir $@)'
PR_MD_CSRCS=hpux.c
PR_MD_ASFILES=os_HPUX.s
if test "$OS_TEST" != "ia64"; then
PR_MD_ASFILES=os_HPUX.s
fi
if test -n "$USE_64"; then
MDCPUCFG_H=_hpux64.cfg
else
@@ -830,8 +832,13 @@ case "$target" in
if test -z "$GNU_CC"; then
CC="$CC -Ae"
CXX="$CXX -ext"
CFLAGS="$CFLAGS +ESlit"
CXXFLAGS="$CXXFLAGS +ESlit"
if test "$OS_TEST" != "ia64"; then
CFLAGS="$CFLAGS +ESlit"
CXXFLAGS="$CXXFLAGS +ESlit"
else
CFLAGS="$CFLAGS +Olit=all"
CXXFLAGS="$CXXFLAGS +Olit=all"
fi
DSO_CFLAGS=+Z
else
DSO_CFLAGS=-fPIC
@@ -860,7 +867,7 @@ case "$target" in
AC_DEFINE(HAVE_INT_LOCALTIME_R)
fi
if echo "$OS_RELEASE" | egrep '^(B.10.30|B.11.00)' >/dev/null; then
if echo "$OS_RELEASE" | egrep '^(B.10.30|B.11.00|B.11.11|B.11.20)' >/dev/null; then
AC_DEFINE(HAVE_POINTER_LOCALTIME_R)
fi
@@ -895,7 +902,7 @@ case "$target" in
DEFAULT_IMPL_STRATEGY=_PTH
fi
if test "$OS_RELEASE" = "B.11.00"; then
if echo "$OS_RELEASE" | egrep '^(B.11.00|B.11.11|B.11.20)' >/dev/null; then
AC_DEFINE(HPUX10)
AC_DEFINE(HPUX11)
AC_DEFINE(_LARGEFILE64_SOURCE)
@@ -903,11 +910,21 @@ case "$target" in
AC_DEFINE(HAVE_FCNTL_FILE_LOCKING)
if test -z "$GNU_CC"; then
if test -z "$USE_64"; then
CFLAGS="$CFLAGS +DAportable +DS2.0"
CXXFLAGS="$CXXFLAGS +DAportable +DS2.0"
else
CFLAGS="$CFLAGS +DA2.0W +DS2.0"
CXXFLAGS="$CXXFLAGS +DA2.0W +DS2.0"
if test "$OS_TEST" = "ia64"; then
CFLAGS="$CFLAGS +DD32"
CXXFLAGS="$CXXFLAGS +DD32"
else
CFLAGS="$CFLAGS +DAportable +DS2.0"
CXXFLAGS="$CXXFLAGS +DAportable +DS2.0"
fi
else
if test "$OS_TEST" = "ia64"; then
CFLAGS="$CFLAGS +DD64"
CXXFLAGS="$CXXFLAGS +DD64"
else
CFLAGS="$CFLAGS +DA2.0W +DS2.0"
CXXFLAGS="$CXXFLAGS +DA2.0W +DS2.0"
fi
fi
fi
DEFAULT_IMPL_STRATEGY=_PTH

View File

@@ -55,7 +55,11 @@
#undef HAVE_WEAK_IO_SYMBOLS
#undef HAVE_WEAK_MALLOC_SYMBOLS
#define HAVE_DLL
#ifdef IS_64
#define USE_DLFCN
#else
#define USE_HPSHL
#endif
#ifndef HAVE_STRERROR
#define HAVE_STRERROR
#endif

View File

@@ -82,8 +82,8 @@
#define PR_ALIGN_OF_SHORT 2
#define PR_ALIGN_OF_INT 4
#define PR_ALIGN_OF_LONG 4
#define PR_ALIGN_OF_INT64 4
#define PR_ALIGN_OF_LONG 8
#define PR_ALIGN_OF_INT64 8
#define PR_ALIGN_OF_FLOAT 4
#define PR_ALIGN_OF_DOUBLE 8
#define PR_ALIGN_OF_POINTER 8

View File

@@ -64,6 +64,18 @@ GetHighResClock(void *buf, size_t maxbytes)
#elif defined(HPUX)
#ifdef __ia64
#include <ia64/sys/inline.h>
static size_t
GetHighResClock(void *buf, size_t maxbytes)
{
PRUint64 t;
t = _Asm_mov_from_ar(_AREG44);
return _pr_CopyLowBits(buf, maxbytes, &t, sizeof(t));
}
#else
static size_t
GetHighResClock(void *buf, size_t maxbytes)
{
@@ -73,6 +85,7 @@ GetHighResClock(void *buf, size_t maxbytes)
cr16val = ret_cr16();
return(_pr_CopyLowBits(buf, maxbytes, &cr16val, sizeof(cr16val)));
}
#endif
#elif defined(OSF1)
@@ -210,7 +223,7 @@ static size_t GetHighResClock(void *buf, size_t maxbuf)
}
iotimer_addr = (unsigned *)
mmap(0, pgoffmask, PROT_READ, MAP_PRIVATE, mfd, (int)raddr);
if (iotimer_addr == (void*)-1) {
if (iotimer_addr == (unsigned*)-1) {
close(mfd);
iotimer_addr = NULL;
return 0;
@@ -278,7 +291,7 @@ GetHighResClock(void *buf, size_t maxbytes)
return 0;
}
#elif defined(SCO) || defined(UNIXWARE) || defined(BSDI) || defined(NTO) \
|| defined(QNX) || defined(RHAPSODY)
|| defined(QNX) || defined(DARWIN)
#include <sys/times.h>
static size_t

View File

@@ -58,7 +58,7 @@
#endif
#if defined(HPUX)
#include <sys/mp.h>
#include <sys/mpctl.h>
#endif
#if defined(XP_UNIX)

View File

@@ -296,7 +296,9 @@ endif
ifeq ($(OS_ARCH), HP-UX)
LDOPTS += -z -Wl,+s,+b,$(ABSOLUTE_LIB_DIR)
ifeq ($(USE_64),1)
LDOPTS += +DA2.0W
LDOPTS += +DD64
endif
ifeq ($(USE_PTHREADS),1)
EXTRA_LIBS = -lpthread
endif
endif

View File

@@ -2078,8 +2078,14 @@ initializeEncoding(XML_Parser parser)
#else
s = protocolEncodingName;
#endif
if ((ns ? XmlInitEncodingNS : XmlInitEncoding)(&initEncoding, &encoding, s))
return XML_ERROR_NONE;
//if ((ns ? XmlInitEncodingNS : XmlInitEncoding)(&initEncoding, &encoding, s))
if (ns) {
if (XmlInitEncodingNS(&initEncoding, &encoding, s))
return XML_ERROR_NONE;
} else {
if (XmlInitEncoding(&initEncoding, &encoding, s))
return XML_ERROR_NONE;
}
return handleUnknownEncoding(parser, protocolEncodingName);
}
@@ -2091,18 +2097,13 @@ processXmlDecl(XML_Parser parser, int isGeneralTextEntity,
const ENCODING *newEncoding = 0;
const char *version;
int standalone = -1;
if (!(ns
? XmlParseXmlDeclNS
: XmlParseXmlDecl)(isGeneralTextEntity,
encoding,
s,
next,
&eventPtr,
&version,
&encodingName,
&newEncoding,
&standalone))
return XML_ERROR_SYNTAX;
if (ns) {
if (!XmlParseXmlDeclNS(isGeneralTextEntity, encoding, s, next, &eventPtr, &version, &encodingName, &newEncoding, &standalone))
return XML_ERROR_SYNTAX;
} else {
if (!XmlParseXmlDecl(isGeneralTextEntity, encoding, s, next, &eventPtr, &version, &encodingName, &newEncoding, &standalone))
return XML_ERROR_SYNTAX;
}
if (!isGeneralTextEntity && standalone == 1) {
dtd.standalone = 1;
#ifdef XML_DTD
@@ -2158,12 +2159,10 @@ handleUnknownEncoding(XML_Parser parser, const XML_Char *encodingName)
info.release(info.data);
return XML_ERROR_NO_MEMORY;
}
enc = (ns
? XmlInitUnknownEncodingNS
: XmlInitUnknownEncoding)(unknownEncodingMem,
info.map,
info.convert,
info.data);
if (ns)
enc = XmlInitUnknownEncodingNS(unknownEncodingMem, info.map, info.convert, info.data);
else
enc = XmlInitUnknownEncoding(unknownEncodingMem, info.map, info.convert, info.data);
if (enc) {
unknownEncodingData = info.data;
unknownEncodingRelease = info.release;

View File

@@ -0,0 +1,55 @@
#
# The contents of this file are subject to the Mozilla 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/MPL/
#
# 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 the Netscape security libraries.
#
# The Initial Developer of the Original Code is Netscape
# Communications Corporation. Portions created by Netscape are
# Copyright (C) 1994-2002 Netscape Communications Corporation. All
# Rights Reserved.
#
# Contributor(s):
#
# Alternatively, the contents of this file may be used under the
# terms of the GNU General Public License Version 2 or later (the
# "GPL"), in which case the provisions of the GPL are applicable
# instead of those above. If you wish to allow use of your
# version of this file only under the terms of the GPL and not to
# allow others to use your version of this file under the MPL,
# indicate your decision by deleting the provisions above and
# replace them with the notice and other provisions required by
# the GPL. If you do not delete the provisions above, a recipient
# may use your version of this file under either the MPL or the
# GPL.
#
# On HP-UX 11.20 the default implementation strategy is
# pthreads. Classic nspr and pthreads-user are also available.
#
ifeq ($(OS_RELEASE),B.11.20)
OS_CFLAGS += -DHPUX10
DEFAULT_IMPL_STRATEGY = _PTH
endif
#
# To use the true pthread (kernel thread) library on 11.20,
# we should define _POSIX_C_SOURCE to be 199506L.
# The _REENTRANT macro is deprecated.
#
ifdef USE_PTHREADS
OS_CFLAGS += -D_POSIX_C_SOURCE=199506L
endif
#
# Config stuff for HP-UXB.11.20.
#
include $(CORE_DEPTH)/coreconf/HP-UXB.11.mk

View File

@@ -40,15 +40,19 @@ endif
ifndef NS_USE_GCC
CCC = /opt/aCC/bin/aCC -ext
ifeq ($(USE_64), 1)
OS_CFLAGS += -Aa +e +DA2.0W +DS2.0 +DChpux
# Next line replaced by generic name handling in arch.mk
# COMPILER_TAG = _64
ifeq ($(OS_TEST), ia64)
OS_CFLAGS += -Aa +e +p +DD32
else
ifdef USE_HYBRID
OS_CFLAGS += -Aa +e +DA2.0 +DS2.0
ifeq ($(USE_64), 1)
OS_CFLAGS += -Aa +e +DA2.0W +DS2.0 +DChpux
# Next line replaced by generic name handling in arch.mk
# COMPILER_TAG = _64
else
OS_CFLAGS += +DAportable +DS2.0
ifdef USE_HYBRID
OS_CFLAGS += -Aa +e +DA2.0 +DS2.0
else
OS_CFLAGS += +DAportable +DS2.0
endif
endif
endif
else

View File

@@ -80,9 +80,11 @@ ifneq (,$(filter SunOS HP-UX,$(OS_ARCH)))
ifneq ($(OS_TEST),i86pc)
ifndef HAVE_64BIT_OS
$(INSTALL) -m 755 $(DIST)/lib/$(FREEBL_PURE32_MODULE) $(DIST)/bin
ifneq ($(OS_TEST),ia64)
$(INSTALL) -m 755 $(DIST)/lib/$(FREEBL_HYBRID_MODULE) $(DIST)/bin
endif
endif
endif
endif
$(MAKE) -C ssl $@
$(MAKE) -C pki $@

View File

@@ -297,8 +297,10 @@ $(PURE32DIR):
$(LINKEDFILES) : $(PURE32DIR)/% : %
ln -s $(CDDIR)/$* $(PURE32DIR)
ifneq ($(OS_TEST),ia64)
libs::
$(MAKE) FREEBL_RECURSIVE_BUILD=1 USE_HYBRID=1 libs
endif
libs:: $(PURE32DIR) $(LINKEDFILES)
cd $(PURE32DIR) && $(MAKE) FREEBL_RECURSIVE_BUILD=1 USE_PURE_32=1 FREEBL_PARENT=$(CDDIR) CORE_DEPTH=$(CDDIR)/$(CORE_DEPTH) libs

View File

@@ -45,8 +45,10 @@ include manifest.mn
include $(CORE_DEPTH)/coreconf/arch.mk
ifeq ($(OS_ARCH),HP-UX)
ifneq ($(OS_RELEASE),B.11.20)
ASFILES += ret_cr16.s
endif
endif
include $(CORE_DEPTH)/coreconf/config.mk

View File

@@ -181,6 +181,18 @@ GiveSystemInfo(void)
#define getdtablesize() sysconf(_SC_OPEN_MAX)
#if defined(__ia64)
#include <ia64/sys/inline.h>
static size_t
GetHighResClock(void *buf, size_t maxbytes)
{
PRUint64 t;
t = _Asm_mov_from_ar(_AREG44);
return CopyLowBits(buf, maxbytes, &t, sizeof(t));
}
#else
static size_t
GetHighResClock(void *buf, size_t maxbytes)
{
@@ -190,6 +202,7 @@ GetHighResClock(void *buf, size_t maxbytes)
cr16val = ret_cr16();
return CopyLowBits(buf, maxbytes, &cr16val, sizeof(cr16val));
}
#endif
static void
GiveSystemInfo(void)

View File

@@ -1253,6 +1253,7 @@ NS_IMETHODIMP nsDocLoaderImpl::OnRedirect(nsIHttpChannel *aOldChannel, nsIChanne
rv = aNewChannel->GetURI(getter_AddRefs(newURI));
if (NS_FAILED(rv)) return rv;
#ifdef HTTP_DOESNT_CALL_CHECKLOADURI
// verify that this is a legal redirect
nsCOMPtr<nsIScriptSecurityManager> securityManager =
do_GetService(NS_SCRIPTSECURITYMANAGER_CONTRACTID, &rv);
@@ -1260,6 +1261,7 @@ NS_IMETHODIMP nsDocLoaderImpl::OnRedirect(nsIHttpChannel *aOldChannel, nsIChanne
rv = securityManager->CheckLoadURI(oldURI, newURI,
nsIScriptSecurityManager::DISALLOW_FROM_MAIL);
if (NS_FAILED(rv)) return rv;
#endif
nsLoadFlags loadFlags = 0;
PRInt32 stateFlags = nsIWebProgressListener::STATE_REDIRECTING |

View File

@@ -279,7 +279,7 @@ nsresult nsInternetConfigService::FillMIMEInfoForICEntry(ICMapEntry& entry, nsIM
// convert entry.extension which is a Str255
// don't forget to remove the '.' in front of the file extension....
nsCAutoString temp((char *)&entry.extension[2], (int)entry.extension[0]-1);
nsCAutoString temp((char *)&entry.extension[2], entry.extension[0] > 0 ? (int)entry.extension[0]-1 : 0);
info->AppendExtension(temp);
info->SetMacType(entry.fileType);
info->SetMacCreator(entry.fileCreator);

View File

@@ -918,8 +918,26 @@ NS_IMETHODIMP nsExternalAppHandler::OnStartRequest(nsIRequest *request, nsISuppo
nsCOMPtr<nsIHttpChannel> httpChannel = do_QueryInterface( aChannel );
if ( httpChannel )
{
// Turn off content encoding conversions.
httpChannel->SetApplyConversion( PR_FALSE );
nsXPIDLCString encoding;
rv = httpChannel->GetResponseHeader("Content-Encoding", getter_Copies(encoding));
if (NS_SUCCEEDED(rv) && encoding && *encoding)
{
nsCOMPtr<nsIURI> uri;
if (NS_SUCCEEDED(aChannel->GetURI(getter_AddRefs(uri))) && uri)
{
nsCOMPtr<nsIURL> url( do_QueryInterface(uri) );
if (url)
{
nsXPIDLCString ext;
if (NS_SUCCEEDED(url->GetFileExtension(getter_Copies(ext))) &&
// Turn off content encoding conversions if file extension indicates
// a file that should normally be compressed.
((!PL_strcasecmp(encoding, "deflate") && !PL_strcasecmp(ext, "zip")) ||
(!PL_strcasecmp(encoding, "gzip") && !PL_strcasecmp(ext, "gz"))))
httpChannel->SetApplyConversion( PR_FALSE );
}
}
}
}
// now that the temp file is set up, find out if we need to invoke a dialog asking the user what

View File

@@ -1962,9 +1962,35 @@ NS_IMETHODIMP nsViewManager::DispatchEvent(nsGUIEvent *aEvent, nsEventStatus *aS
Refresh(view, ((nsPaintEvent*)aEvent)->renderingContext, &damrect, updateFlags);
}
else {
// since we got an NS_PAINT event, we need to
// draw something so we don't get blank areas.
DefaultRefresh(view, &damrect);
// since we got an NS_PAINT event, we need to
// draw something so we don't get blank areas.
DefaultRefresh(view, &damrect);
// Clients like the editor can trigger multiple
// reflows during what the user perceives as a single
// edit operation, so it disables view manager
// refreshing until the edit operation is complete
// so that users don't see the intermediate steps.
//
// Unfortunately some of these reflows can trigger
// nsScrollPortView and nsScrollingView Scroll() calls
// which in most cases force an immediate BitBlt and
// synchronous paint to happen even if the view manager's
// refresh is disabled. (Bug 97674)
//
// Calling UpdateView() here, is neccessary to add
// the exposed region specified in the synchronous paint
// event to the view's damaged region so that it gets
// painted properly when refresh is enabled.
//
// Note that calling UpdateView() here was deemed
// to have the least impact on performance, since the
// other alternative was to make Scroll() post an
// async paint event for the *entire* ScrollPort or
// ScrollingView's viewable area. (See bug 97674 for this
// alternate patch.)
UpdateView(view, damrect, NS_VMREFRESH_NO_SYNC);
}
}
}

View File

@@ -2262,7 +2262,14 @@ NS_IMETHODIMP nsWindow::SetTitle(const nsString& aTitle)
}
// fallback to use bad conversion
#ifndef HPUX
gtk_window_set_title(GTK_WINDOW(mShell), nsAutoCString(aTitle));
#else
//nsAutoCString force conversion from unicode to platform charset might not
//generate legal string in platform charset. Passing such illegal string will
//hang OS. HP_UX in ja_JP.SJIS locale is one instance. (108765)
gtk_window_set_title(GTK_WINDOW(mShell), "");
#endif
return NS_OK;
}

View File

@@ -62,7 +62,7 @@ static const char* GetLinebreakString(nsLinebreakConverter::ELinebreakType aBrea
Wee inline method to append a line break. Modifies ioDest.
----------------------------------------------------------------------------*/
template<class T>
static void AppendLinebreak(T*& ioDest, const char* lineBreakStr)
void AppendLinebreak(T*& ioDest, const char* lineBreakStr)
{
*ioDest++ = *lineBreakStr;
@@ -76,7 +76,7 @@ static void AppendLinebreak(T*& ioDest, const char* lineBreakStr)
Counts occurrences of breakStr in aSrc
----------------------------------------------------------------------------*/
template<class T>
static PRInt32 CountLinebreaks(const T* aSrc, PRInt32 inLen, const char* breakStr)
PRInt32 CountLinebreaks(const T* aSrc, PRInt32 inLen, const char* breakStr)
{
const T* src = aSrc;
const T* srcEnd = aSrc + inLen;
@@ -108,7 +108,7 @@ static PRInt32 CountLinebreaks(const T* aSrc, PRInt32 inLen, const char* breakSt
ioLen *includes* a terminating null, if any
----------------------------------------------------------------------------*/
template<class T>
static T* ConvertBreaks(const T* inSrc, PRInt32& ioLen, const char* srcBreak, const char* destBreak)
T* ConvertBreaks(const T* inSrc, PRInt32& ioLen, const char* srcBreak, const char* destBreak)
{
NS_ASSERTION(inSrc && srcBreak && destBreak, "Got a null string");
@@ -202,7 +202,7 @@ static T* ConvertBreaks(const T* inSrc, PRInt32& ioLen, const char* srcBreak, co
does not change.
----------------------------------------------------------------------------*/
template<class T>
static void ConvertBreaksInSitu(T* inSrc, PRInt32 inLen, char srcBreak, char destBreak)
void ConvertBreaksInSitu(T* inSrc, PRInt32 inLen, char srcBreak, char destBreak)
{
T* src = inSrc;
T* srcEnd = inSrc + inLen;
@@ -225,7 +225,7 @@ static void ConvertBreaksInSitu(T* inSrc, PRInt32 inLen, char srcBreak, char des
This will convert CRLF pairs to one break, and single CR or LF to a break.
----------------------------------------------------------------------------*/
template<class T>
static T* ConvertUnknownBreaks(const T* inSrc, PRInt32& ioLen, const char* destBreak)
T* ConvertUnknownBreaks(const T* inSrc, PRInt32& ioLen, const char* destBreak)
{
const T* src = inSrc;
const T* srcEnd = inSrc + ioLen; // includes null, if any

View File

@@ -38,9 +38,17 @@ print OUTFILE "* 0 is QueryInterface\n";
print OUTFILE "* 1 is AddRef\n";
print OUTFILE "* 2 is Release\n";
print OUTFILE "*/\n";
print OUTFILE "#ifndef __ia64\n";
for($i = 0; $i < $entry_count; $i++) {
print OUTFILE "XPTC_EXPORT NS_IMETHOD Stub",$i+3,"();\n";
}
print OUTFILE "#else\n";
for($i = 0; $i < $entry_count; $i++) {
print OUTFILE "XPTC_EXPORT NS_IMETHOD Stub",$i+3,"(PRUint64,\n";
print OUTFILE " PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);\n";
}
print OUTFILE "#endif\n";
print OUTFILE "\n/* declarations of sentinel stubs */\n";

View File

@@ -8,6 +8,7 @@
* 1 is AddRef
* 2 is Release
*/
#ifndef __ia64
XPTC_EXPORT NS_IMETHOD Stub3();
XPTC_EXPORT NS_IMETHOD Stub4();
XPTC_EXPORT NS_IMETHOD Stub5();
@@ -255,6 +256,502 @@ XPTC_EXPORT NS_IMETHOD Stub246();
XPTC_EXPORT NS_IMETHOD Stub247();
XPTC_EXPORT NS_IMETHOD Stub248();
XPTC_EXPORT NS_IMETHOD Stub249();
#else
XPTC_EXPORT NS_IMETHOD Stub3(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub4(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub5(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub6(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub7(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub8(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub9(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub10(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub11(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub12(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub13(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub14(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub15(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub16(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub17(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub18(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub19(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub20(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub21(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub22(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub23(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub24(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub25(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub26(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub27(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub28(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub29(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub30(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub31(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub32(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub33(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub34(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub35(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub36(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub37(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub38(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub39(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub40(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub41(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub42(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub43(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub44(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub45(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub46(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub47(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub48(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub49(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub50(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub51(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub52(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub53(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub54(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub55(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub56(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub57(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub58(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub59(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub60(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub61(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub62(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub63(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub64(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub65(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub66(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub67(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub68(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub69(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub70(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub71(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub72(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub73(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub74(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub75(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub76(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub77(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub78(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub79(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub80(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub81(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub82(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub83(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub84(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub85(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub86(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub87(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub88(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub89(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub90(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub91(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub92(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub93(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub94(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub95(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub96(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub97(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub98(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub99(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub100(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub101(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub102(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub103(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub104(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub105(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub106(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub107(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub108(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub109(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub110(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub111(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub112(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub113(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub114(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub115(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub116(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub117(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub118(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub119(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub120(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub121(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub122(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub123(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub124(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub125(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub126(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub127(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub128(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub129(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub130(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub131(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub132(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub133(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub134(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub135(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub136(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub137(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub138(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub139(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub140(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub141(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub142(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub143(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub144(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub145(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub146(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub147(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub148(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub149(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub150(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub151(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub152(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub153(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub154(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub155(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub156(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub157(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub158(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub159(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub160(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub161(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub162(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub163(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub164(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub165(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub166(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub167(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub168(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub169(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub170(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub171(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub172(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub173(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub174(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub175(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub176(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub177(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub178(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub179(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub180(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub181(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub182(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub183(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub184(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub185(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub186(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub187(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub188(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub189(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub190(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub191(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub192(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub193(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub194(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub195(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub196(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub197(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub198(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub199(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub200(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub201(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub202(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub203(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub204(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub205(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub206(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub207(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub208(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub209(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub210(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub211(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub212(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub213(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub214(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub215(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub216(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub217(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub218(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub219(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub220(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub221(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub222(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub223(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub224(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub225(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub226(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub227(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub228(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub229(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub230(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub231(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub232(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub233(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub234(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub235(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub236(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub237(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub238(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub239(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub240(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub241(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub242(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub243(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub244(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub245(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub246(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub247(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub248(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
XPTC_EXPORT NS_IMETHOD Stub249(PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
#endif
/* declarations of sentinel stubs */
XPTC_EXPORT NS_IMETHOD Sentinel0();

View File

@@ -133,8 +133,13 @@ endif
# for gas and gcc, check comment in xptcinvoke_asm_pa32.s
ifeq ($(OS_ARCH),HP-UX)
ifneq ($(CC),gcc)
ifneq ($(OS_TEST),ia64)
CPPSRCS := xptcinvoke_pa32.cpp xptcstubs_pa32.cpp
ASFILES := xptcstubs_asm_pa32.s xptcinvoke_asm_pa32.s
else
CPPSRCS := xptcinvoke_ipf32.cpp xptcstubs_ipf32.cpp
ASFILES := xptcstubs_asm_ipf32.s xptcinvoke_asm_ipf32.s
endif
# #18875 Building the CPP's (CXX) optimized causes a crash
OS_CXXFLAGS := $(filter-out -O, $(OS_CXXFLAGS))

View File

@@ -0,0 +1,145 @@
// Select C numeric constant
.radix C
// for 64 bit mode, use .psr abi64
.psr abi32
// big endian
.psr msb
// Section has executable code
.section .text, "ax","progbits"
// procedure named 'XPTC_InvokeByIndex'
.proc XPTC_InvokeByIndex
// manual bundling
.explicit
// extern "C" PRUint32
// invoke_copy_to_stack(uint64_t* d,
// const PRUint32 paramCount, nsXPTCVariant* s)
.global invoke_copy_to_stack
// .exclass invoke_copy_to_stack, @fullyvisible
.type invoke_copy_to_stack,@function
// .exclass XPTC_InvokeByIndex, @fullyvisible
.type XPTC_InvokeByIndex,@function
// XPTC_InvokeByIndex(nsISupports* that, PRUint32 methodIndex,
// PRUint32 paramCount, nsXPTCVariant* params);
XPTC_InvokeByIndex::
.prologue
.save ar.pfs, r37
// allocate 4 input args, 6 local args, and 8 output args
alloc r37 = ar.pfs, 4, 6, 8, 0 // M
nop.i 0 ;; // I
// unwind table already knows gp, no need to specify anything
add r39 = 0, gp // A
.save rp, r36
mov r36 = rp // I
.vframe r38
add r38 = 0, sp ;; // A
// We first calculate the amount of extra memory stack space required
// for the arguments, and register storage.
// We then call invoke_copy_to_stack() to write the argument contents
// to the specified memory regions.
// We then copy the integer arguments to integer registers, and floating
// arguments to float registers.
// Lastly we load the virtual table jump pointer, and call the target
// subroutine.
// in0 : that
// in1 : methodIndex
// in2 : paramCount
// in3 : params
// stack frame size is 16 + (8 * even(paramCount)) + 64 + 64
// 16 byte frame header
// 8 * even(paramCount) memory argument area
// 64 bytes integer register area
// 64 bytes float register area
// This scheme makes sure stack fram size is a multiple of 16
.body
add r10 = 8, r0 // A
// r41 points to float register area
add r41 = -64, sp // A
// r40 points to int register area
add r40 = -128, sp ;; // A
add out1 = 0, r40 // A
add out2 = 0, r41 // A
tbit.z p14,p15 = in2,0 ;; // I
// compute 8 * even(paramCount)
(p14) shladd r11 = in2, 3, r0 ;; // A
(p15) shladd r11 = in2, 3, r10 ;; // A
sub out0 = r40, r11 ;; // A
// advance the stack frame
add sp = -16, out0 // A
add out3 = 0, in2 // A
add out4 = 0, in3 // A
// branch to invoke_copy_to_stack
br.call.sptk.few rp = invoke_copy_to_stack ;; // B
// restore gp
add gp = 0, r39 // A
add out0 = 0, in0 // A
// load the integer and float registers
ld8 out1 = [r40], 8 // M
ldfd f8 = [r41], 8 ;; // M
ld8 out2 = [r40], 8 // M
ldfd f9 = [r41], 8 ;; // M
ld8 out3 = [r40], 8 // M
ldfd f10 = [r41], 8 ;; // M
ld8 out4 = [r40], 8 // M
ldfd f11 = [r41], 8 ;; // M
ld8 out5 = [r40], 8 // M
ldfd f12 = [r41], 8 ;; // M
// 16 * methodIndex
shladd r11 = in1, 4, r0 // A
ld8 out6 = [r40], 8 // M
ldfd f13 = [r41], 8 ;; // M
ld8 out7 = [r40], 8 // M
ldfd f14 = [r41], 8 // M
addp4 r8 = 0, in0 ;; // A
// look up virtual base table and dispatch to target subroutine
// This section assumes 32 bit pointer mode, and virtual base table
// layout from the ABI http://www.codesourcery.com/cxx-abi/abi.html
// load base table
ld4 r8 = [r8] ;; // M
addp4 r8 = r11, r8 ;; // A
// first entry is jump pointer, second entry is gp
addp4 r9 = 8, r8 ;; // A
// load jump pointer
ld8 r8 = [r8]
// load gp
ld8 gp = [r9] ;; // M
mov b6 = r8 ;; // I
// branch to target virtual function
br.call.sptk.few rp = b6 ;; // B
// epilog
mov ar.pfs = r37 // I
mov rp = r36 ;; // I
add sp = 0, r38 // A
add gp = 0, r39 // A
br.ret.sptk.few rp ;; // B
.endp

View File

@@ -0,0 +1,148 @@
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* 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) 1999 Netscape Communications Corporation. All
* Rights Reserved.
*
* Contributor(s):
*/
#include "xptcprivate.h"
#include <iostream.h>
// "This code is for IA64 only"
/* invoke_copy_to_stack() will copy from variant array 's' to
* the stack argument area 'mloc', the integer register area 'iloc', and
* the float register area 'floc'.
*
*/
extern "C" void
invoke_copy_to_stack(uint64_t* mloc, uint64_t* iloc, uint64_t* floc,
const PRUint32 paramCount, nsXPTCVariant* s)
{
uint64_t* dest = mloc;
PRUint32 len = paramCount;
nsXPTCVariant* source = s;
PRUint32 indx;
PRUint32 endlen;
endlen = (len > 7) ? 7 : len;
/* handle the memory arguments */
for (indx = 7; indx < len; ++indx)
{
if (source[indx].IsPtrData())
{
#ifdef __LP64__
/* 64 bit pointer mode */
*((void**) dest) = source[indx].ptr;
#else
/* 32 bit pointer mode */
uint32_t* adr = (uint32_t*) dest;
*(adr) = 0;
*(adr+1) = (uint32_t) source[indx].ptr;
#endif
}
else
switch (source[indx].type)
{
case nsXPTType::T_I8 : *(dest) = source[indx].val.i8; break;
case nsXPTType::T_I16 : *(dest) = source[indx].val.i16; break;
case nsXPTType::T_I32 : *(dest) = source[indx].val.i32; break;
case nsXPTType::T_I64 : *(dest) = source[indx].val.i64; break;
case nsXPTType::T_U8 : *(dest) = source[indx].val.u8; break;
case nsXPTType::T_U16 : *(dest) = source[indx].val.u16; break;
case nsXPTType::T_U32 : *(dest) = source[indx].val.u32; break;
case nsXPTType::T_U64 : *(dest) = source[indx].val.u64; break;
case nsXPTType::T_FLOAT : *(dest) = source[indx].val.u32; break;
case nsXPTType::T_DOUBLE: *(dest) = source[indx].val.u64; break;
case nsXPTType::T_BOOL : *(dest) = source[indx].val.b; break;
case nsXPTType::T_CHAR : *(dest) = source[indx].val.c; break;
case nsXPTType::T_WCHAR : *(dest) = source[indx].val.wc; break;
default:
// all the others are plain pointer types
#ifdef __LP64__
/* 64 bit pointer mode */
*((void**) dest) = source[indx].val.p;
#else
{
/* 32 bit pointer mode */
uint32_t* adr = (uint32_t*) dest;
*(adr) = 0;
*(adr+1) = (uint32_t) source[indx].val.p;
}
#endif
}
++dest;
}
/* process register arguments */
dest = iloc;
for (indx = 0; indx < endlen; ++indx)
{
if (source[indx].IsPtrData())
{
#ifdef __LP64__
/* 64 bit pointer mode */
*((void**) dest) = source[indx].ptr;
#else
/* 32 bit pointer mode */
uint32_t* adr = (uint32_t*) dest;
*(adr) = 0;
*(adr+1) = (uint32_t) source[indx].ptr;
#endif
}
else
switch (source[indx].type)
{
case nsXPTType::T_I8 : *(dest) = source[indx].val.i8; break;
case nsXPTType::T_I16 : *(dest) = source[indx].val.i16; break;
case nsXPTType::T_I32 : *(dest) = source[indx].val.i32; break;
case nsXPTType::T_I64 : *(dest) = source[indx].val.i64; break;
case nsXPTType::T_U8 : *(dest) = source[indx].val.u8; break;
case nsXPTType::T_U16 : *(dest) = source[indx].val.u16; break;
case nsXPTType::T_U32 : *(dest) = source[indx].val.u32; break;
case nsXPTType::T_U64 : *(dest) = source[indx].val.u64; break;
case nsXPTType::T_FLOAT :
*((double*) (floc++)) = (double) source[indx].val.f;
break;
case nsXPTType::T_DOUBLE:
*((double*) (floc++)) = source[indx].val.d;
break;
case nsXPTType::T_BOOL : *(dest) = source[indx].val.b; break;
case nsXPTType::T_CHAR : *(dest) = source[indx].val.c; break;
case nsXPTType::T_WCHAR : *(dest) = source[indx].val.wc; break;
default:
// all the others are plain pointer types
#ifdef __LP64__
/* 64 bit pointer mode */
*((void**) dest) = source[indx].val.p;
#else
{
/* 32 bit pointer mode */
uint32_t* adr = (uint32_t*) dest;
*(adr) = 0;
*(adr+1) = (uint32_t) source[indx].val.p;
}
#endif
}
++dest;
}
}

View File

@@ -0,0 +1,124 @@
// Select C numeric constant
.radix C
.psr abi32
.psr msb
// Section has executable code
.section .text, "ax","progbits"
// procedure named 'SharedStub'
.proc SharedStub
// manual bundling
.explicit
.global PrepareAndDispatch
// .exclass PrepareAndDispatch, @fullyvisible
.type PrepareAndDispatch,@function
SharedStub::
// 9 arguments, first 8 are the input arguments of previous
// function call. The last one is methodIndex, and is passed in memory
.prologue
.save ar.pfs , r41
// allocate 8 input args, 4 local args, and 5 output args
alloc r41 = ar.pfs, 8, 4, 5, 0 // M
.save rp, r40
mov r40 = rp // I
nop.i 0 ;; // I
.save ar.unat, r42
mov r42 = ar.unat // M
.fframe 144
add sp = -144, sp // A
// unwind table already knows gp, don't need to specify anything
add r43 = 0, gp ;; // A
// We have possible 8 integer registers and 8 float registers that could
// be arguments. We also have a stack region from the previous
// stack frame that may hold some stack arguments.
// We need to write the integer registers to a memory region, write
// the float registers to a memory region (making sure we don't step
// on NAT while touching the registers). We also mark the memory
// address of the stack arguments.
// We then call PrepareAndDispatch() specifying the three memory
// region pointers.
.body
add out0 = 0, in0 // A move self ptr
// 144 bytes = 16 byte stack header + 64 byte int space + 64 byte float space
// current frame is 144 bytes, previous frame is 112 bytes
// restarg is at 144 + 112 + 16 bytes away from current sp
// (current frame + previous frame + previous previous frame header)
// methodIndex is at 144 + 16 bytes away from current sp
// (current frame + previous frame header)
add out4 = 192, sp // A restarg address
add r11 = 160, sp ;; // A address of methodIndex
ld8 out1 = [r11] // M load methodIndex
// sp + 16 is the start of intargs
add out2 = 16, sp // A address of intargs
// the intargs take up 64 bytes, so sp + 16 + 64 is the start of floatargs
add out3 = 80, sp ;; // A address of floatargs
add r11 = 0, out2 ;; // A
st8.spill [r11] = in1, 8 // M
add r10 = 0, out3 ;; // A
st8.spill [r11] = in2, 8 ;; // M
st8.spill [r11] = in3, 8 // M
nop.i 0 ;; // I
st8.spill [r11] = in4, 8 ;; // M
st8.spill [r11] = in5, 8 // M
nop.i 0 ;; // I
st8.spill [r11] = in6, 8 ;; // M
st8.spill [r11] = in7 // M
fclass.nm p14,p15 = f8,@nat ;; // F
(p14) stfd [r10] = f8, 8 // M
(p15) add r10 = 8, r10 // A
fclass.nm p12,p13 = f9,@nat ;; // F
(p12) stfd [r10] = f9, 8 // M
(p13) add r10 = 8, r10 // A
fclass.nm p14,p15 =f10,@nat ;; // F
(p14) stfd [r10] = f10, 8 // M
(p15) add r10 = 8, r10 // A
fclass.nm p12,p13 =f11,@nat ;; // F
(p12) stfd [r10] = f11, 8 // M
(p13) add r10 = 8, r10 // A
fclass.nm p14,p15 =f12,@nat ;; // F
(p14) stfd [r10] = f12, 8 // M
(p15) add r10 = 8, r10 // A
fclass.nm p12,p13 =f13,@nat ;; // F
(p12) stfd [r10] = f13, 8 // M
(p13) add r10 = 8, r10 // A
fclass.nm p14,p15 =f14,@nat ;; // F
(p14) stfd [r10] = f14, 8 // M
(p15) add r10 = 8, r10 // A
fclass.nm p12,p13 =f15,@nat ;; // F
(p12) stfd [r10] = f15, 8 // M
(p13) add r10 = 8, r10 // A
// branch to PrepareAndDispatch
br.call.dptk.few rp = PrepareAndDispatch ;; // B
// epilog
mov ar.unat = r42 // M
mov ar.pfs = r41 // I
mov rp = r40 ;; // I
add gp = 0, r43 // A
add sp = 144, sp // A
br.ret.dptk.few rp ;; // B
.endp

View File

@@ -0,0 +1,169 @@
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* 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) 1999 Netscape Communications Corporation. All
* Rights Reserved.
*
* Contributor(s):
*/
#include "xptcprivate.h"
#include <stddef.h>
#include <stdlib.h>
// "This code is for IA64 only"
/* Implement shared vtbl methods. */
extern "C" nsresult
PrepareAndDispatch(nsXPTCStubBase* self, PRUint32 methodIndex,
uint64_t* intargs, uint64_t* floatargs, uint64_t* restargs)
{
#define PARAM_BUFFER_COUNT 16
nsXPTCMiniVariant paramBuffer[PARAM_BUFFER_COUNT];
nsXPTCMiniVariant* dispatchParams = NULL;
nsIInterfaceInfo* iface_info = NULL;
const nsXPTMethodInfo* info;
nsresult result = NS_ERROR_FAILURE;
uint64_t* iargs = intargs;
uint64_t* fargs = floatargs;
PRUint8 paramCount;
PRUint8 i;
NS_ASSERTION(self,"no self");
self->GetInterfaceInfo(&iface_info);
NS_ASSERTION(iface_info,"no interface info");
iface_info->GetMethodInfo(PRUint16(methodIndex), &info);
NS_ASSERTION(info,"no interface info");
paramCount = info->GetParamCount();
// setup variant array pointer
if(paramCount > PARAM_BUFFER_COUNT)
dispatchParams = new nsXPTCMiniVariant[paramCount];
else
dispatchParams = paramBuffer;
NS_ASSERTION(dispatchParams,"no place for params");
for(i = 0; i < paramCount; ++i)
{
int isfloat = 0;
const nsXPTParamInfo& param = info->GetParam(i);
const nsXPTType& type = param.GetType();
nsXPTCMiniVariant* dp = &dispatchParams[i];
if(param.IsOut() || !type.IsArithmetic())
{
#ifdef __LP64__
/* 64 bit pointer mode */
dp->val.p = (void*) *iargs;
#else
/* 32 bit pointer mode */
uint32_t* adr = (uint32_t*) iargs;
dp->val.p = (void*) (*(adr+1));
#endif
}
else
switch(type)
{
case nsXPTType::T_I8 : dp->val.i8 = *(iargs); break;
case nsXPTType::T_I16 : dp->val.i16 = *(iargs); break;
case nsXPTType::T_I32 : dp->val.i32 = *(iargs); break;
case nsXPTType::T_I64 : dp->val.i64 = *(iargs); break;
case nsXPTType::T_U8 : dp->val.u8 = *(iargs); break;
case nsXPTType::T_U16 : dp->val.u16 = *(iargs); break;
case nsXPTType::T_U32 : dp->val.u32 = *(iargs); break;
case nsXPTType::T_U64 : dp->val.u64 = *(iargs); break;
case nsXPTType::T_FLOAT :
isfloat = 1;
if (i < 7)
dp->val.f = (float) *((double*) fargs); /* register */
else
dp->val.u32 = *(fargs); /* memory */
break;
case nsXPTType::T_DOUBLE :
isfloat = 1;
dp->val.u64 = *(fargs);
break;
case nsXPTType::T_BOOL : dp->val.b = *(iargs); break;
case nsXPTType::T_CHAR : dp->val.c = *(iargs); break;
case nsXPTType::T_WCHAR : dp->val.wc = *(iargs); break;
default:
NS_ASSERTION(0, "bad type");
break;
}
if (i < 7)
{
/* we are parsing register arguments */
if (i == 6)
{
// run out of register arguments, move on to memory arguments
iargs = restargs;
fargs = restargs;
}
else
{
++iargs; // advance one integer register slot
if (isfloat) ++fargs; // advance float register slot if isfloat
}
}
else
{
/* we are parsing memory arguments */
++iargs;
++fargs;
}
}
result = self->CallMethod((PRUint16) methodIndex, info, dispatchParams);
NS_RELEASE(iface_info);
if(dispatchParams != paramBuffer)
delete [] dispatchParams;
return result;
}
extern "C" int SharedStub(PRUint64,PRUint64,PRUint64,PRUint64,
PRUint64,PRUint64,PRUint64,PRUint64,PRUint64);
/* Variable a0-a7 were put there so we can have access to the 8 input
registers on Stubxyz entry */
#define STUB_ENTRY(n) \
nsresult nsXPTCStubBase::Stub##n(PRUint64 a1, \
PRUint64 a2,PRUint64 a3,PRUint64 a4,PRUint64 a5,PRUint64 a6,PRUint64 a7) \
{ uint64_t a0 = (uint64_t) this; \
return SharedStub(a0,a1,a2,a3,a4,a5,a6,a7,(PRUint64) n); \
}
#define SENTINEL_ENTRY(n) \
nsresult nsXPTCStubBase::Sentinel##n() \
{ \
NS_ASSERTION(0,"nsXPTCStubBase::Sentinel called"); \
return NS_ERROR_NOT_IMPLEMENTED; \
}
#include "xptcstubsdef.inc"

View File

@@ -279,7 +279,7 @@ nsresult nsInternetConfigService::FillMIMEInfoForICEntry(ICMapEntry& entry, nsIM
// convert entry.extension which is a Str255
// don't forget to remove the '.' in front of the file extension....
nsCAutoString temp((char *)&entry.extension[2], (int)entry.extension[0]-1);
nsCAutoString temp((char *)&entry.extension[2], entry.extension[0] > 0 ? (int)entry.extension[0]-1 : 0);
info->AppendExtension(temp);
info->SetMacType(entry.fileType);
info->SetMacCreator(entry.fileCreator);

View File

@@ -56,4 +56,11 @@ interface nsISHistoryInternal: nsISupports
*/
attribute nsIDocShell rootDocShell;
/**
* Replace the nsISHEntry at a particular index
* @param aIndex - The index at which the entry shoud be replaced
* @param aReplaceEntry - The replacement entry for the index.
*/
void replaceEntry(in long aIndex, in nsISHEntry aReplaceEntry);
};

View File

@@ -405,6 +405,31 @@ nsSHistory::RemoveSHistoryListener(nsISHistoryListener * aListener)
return NS_OK;
}
/* Replace an entry in the History list at a particular index.
* Do not update index or count.
*/
NS_IMETHODIMP
nsSHistory::ReplaceEntry(PRInt32 aIndex, nsISHEntry * aReplaceEntry)
{
NS_ENSURE_ARG(aReplaceEntry);
nsresult rv;
nsCOMPtr<nsISHTransaction> currentTxn;
if (!mListRoot) // Session History is not initialised.
return NS_ERROR_FAILURE;
rv = GetTransactionAtIndex(aIndex, getter_AddRefs(currentTxn));
if(currentTxn)
{
// Set the replacement entry in the transaction
rv = currentTxn->SetSHEntry(aReplaceEntry);
rv = currentTxn->SetPersist(PR_TRUE);
}
return rv;
}
//*****************************************************************************
// nsSHistory: nsIWebNavigation
//*****************************************************************************