Merge mozilla-central to b2g-inbound

This commit is contained in:
Carsten "Tomcat" Book 2014-03-10 12:49:34 +01:00
commit 2d582ce577
65 changed files with 722 additions and 538 deletions

View File

@ -3614,13 +3614,15 @@ nsDOMWindowUtils::RunBeforeNextEvent(nsIRunnable *runnable)
}
NS_IMETHODIMP
nsDOMWindowUtils::GetOMTAOrComputedStyle(nsIDOMNode* aNode,
const nsAString& aProperty,
nsAString& aResult)
nsDOMWindowUtils::GetOMTAStyle(nsIDOMElement* aElement,
const nsAString& aProperty,
nsAString& aResult)
{
aResult.Truncate();
ErrorResult rv;
nsCOMPtr<Element> element = do_QueryInterface(aNode);
if (!nsContentUtils::IsCallerChrome()) {
return NS_ERROR_DOM_SECURITY_ERR;
}
nsCOMPtr<Element> element = do_QueryInterface(aElement);
if (!element) {
return NS_ERROR_INVALID_ARG;
}
@ -3629,24 +3631,33 @@ nsDOMWindowUtils::GetOMTAOrComputedStyle(nsIDOMNode* aNode,
nsIFrame* frame = element->GetPrimaryFrame();
if (frame && nsLayoutUtils::AreAsyncAnimationsEnabled()) {
if (aProperty.EqualsLiteral("opacity")) {
Layer* layer = FrameLayerBuilder::GetDedicatedLayer(frame, nsDisplayItem::TYPE_OPACITY);
Layer* layer =
FrameLayerBuilder::GetDedicatedLayer(frame,
nsDisplayItem::TYPE_OPACITY);
if (layer) {
float value;
ShadowLayerForwarder* forwarder = layer->Manager()->AsShadowForwarder();
if (forwarder && forwarder->HasShadowManager()) {
forwarder->GetShadowManager()->SendGetOpacity(layer->AsShadowableLayer()->GetShadow(), &value);
forwarder->GetShadowManager()->SendGetOpacity(
layer->AsShadowableLayer()->GetShadow(), &value);
cssValue = new nsROCSSPrimitiveValue;
cssValue->SetNumber(value);
}
}
} else if (aProperty.EqualsLiteral("transform")) {
Layer* layer = FrameLayerBuilder::GetDedicatedLayer(frame, nsDisplayItem::TYPE_TRANSFORM);
Layer* layer =
FrameLayerBuilder::GetDedicatedLayer(frame,
nsDisplayItem::TYPE_TRANSFORM);
if (layer) {
gfx3DMatrix matrix;
ShadowLayerForwarder* forwarder = layer->Manager()->AsShadowForwarder();
if (forwarder && forwarder->HasShadowManager()) {
forwarder->GetShadowManager()->SendGetTransform(layer->AsShadowableLayer()->GetShadow(), &matrix);
cssValue = nsComputedDOMStyle::MatrixToCSSValue(matrix);
MaybeTransform transform;
forwarder->GetShadowManager()->SendGetAnimationTransform(
layer->AsShadowableLayer()->GetShadow(), &transform);
if (transform.type() == MaybeTransform::Tgfx3DMatrix) {
cssValue =
nsComputedDOMStyle::MatrixToCSSValue(transform.get_gfx3DMatrix());
}
}
}
}
@ -3654,16 +3665,41 @@ nsDOMWindowUtils::GetOMTAOrComputedStyle(nsIDOMNode* aNode,
if (cssValue) {
nsString text;
ErrorResult rv;
cssValue->GetCssText(text, rv);
aResult.Assign(text);
return rv.ErrorCode();
} else {
aResult.Truncate();
}
nsCOMPtr<nsIDOMElement> elem = do_QueryInterface(element);
return NS_OK;
}
NS_IMETHODIMP
nsDOMWindowUtils::GetOMTAOrComputedStyle(nsIDOMElement* aElement,
const nsAString& aProperty,
nsAString& aResult)
{
if (!nsContentUtils::IsCallerChrome()) {
return NS_ERROR_DOM_SECURITY_ERR;
}
// Try to get OMTA style
nsresult rv = GetOMTAStyle(aElement, aProperty, aResult);
if (NS_FAILED(rv) || !aResult.IsEmpty()) {
return rv;
}
// Otherwise, fall back to computed style
nsCOMPtr<Element> element = do_QueryInterface(aElement);
if (!element) {
return NS_ERROR_INVALID_ARG;
}
nsCOMPtr<nsIDOMCSSStyleDeclaration> style;
nsresult res = element->GetCurrentDoc()->GetWindow()->
GetComputedStyle(elem, aProperty, getter_AddRefs(style));
NS_ENSURE_SUCCESS(res, res);
rv = element->GetCurrentDoc()->GetWindow()->
GetComputedStyle(aElement, aProperty, getter_AddRefs(style));
NS_ENSURE_SUCCESS(rv, rv);
return style->GetPropertyValue(aProperty, aResult);
}

View File

@ -120,12 +120,6 @@ nsJSUtils::ReportPendingException(JSContext *aContext)
JS::Rooted<JSObject*> scope(aContext);
scope = scx ? scx->GetWindowProxy()
: js::DefaultObjectForContextOrNull(aContext);
if (!scope) {
// The SafeJSContext has no default object associated with it.
MOZ_ASSERT(NS_IsMainThread());
MOZ_ASSERT(aContext == nsContentUtils::GetSafeJSContext());
scope = xpc::GetSafeJSContextGlobal();
}
JSAutoCompartment ac(aContext, scope);
JS_ReportPendingException(aContext);
}

View File

@ -43,7 +43,7 @@ interface nsIDOMEventTarget;
interface nsIRunnable;
interface nsICompositionStringSynthesizer;
[scriptable, uuid(ce671a4a-92bb-11e3-b2d0-2c27d728e7f9)]
[scriptable, uuid(c378a808-7474-403a-8e5c-7d9ff052b0c1)]
interface nsIDOMWindowUtils : nsISupports {
/**
@ -1557,9 +1557,17 @@ interface nsIDOMWindowUtils : nsISupports {
void runBeforeNextEvent(in nsIRunnable runnable);
/*
* Returns the value of a given property. If the property is animated off the
* main thread, this function will fetch the correct value from the compositor.
* Returns the value of a given property animated on the compositor thread.
* If the property is NOT currently being animated on the compositor thread,
* returns an empty string.
*/
AString getOMTAOrComputedStyle(in nsIDOMNode aNode,
AString getOMTAStyle(in nsIDOMElement aElement, in AString aProperty);
/*
* Returns the value of a given property. If the property is animated off
* the main thread, this function will fetch the correct value from the
* compositor.
*/
AString getOMTAOrComputedStyle(in nsIDOMElement aElement,
in AString aProperty);
};

View File

@ -20,6 +20,7 @@ UDPSocketChildBase::UDPSocketChildBase()
UDPSocketChildBase::~UDPSocketChildBase()
{
}
void
UDPSocketChildBase::ReleaseIPDLReference()
{
@ -198,7 +199,7 @@ UDPSocketChild::RecvCallback(const nsCString &aType,
const UDPSendResult& returnValue(aData.get_UDPSendResult());
rv = mSocket->CallListenerSent(aType, returnValue.value());
} else {
MOZ_ASSERT("Invalid callback type!");
MOZ_ASSERT(false, "Invalid callback type!");
}
NS_ENSURE_SUCCESS(rv, true);

View File

@ -45,7 +45,7 @@ ConvertNetAddrToString(mozilla::net::NetAddr &netAddr, nsACString *address, uint
break;
default:
//impossible
MOZ_ASSERT("Unexpected address family");
MOZ_ASSERT(false, "Unexpected address family");
return NS_ERROR_INVALID_ARG;
}

View File

@ -330,8 +330,7 @@ CompositorParent::RecvFlushRendering()
// If we're waiting to do a composite, then cancel it
// and do it immediately instead.
if (mCurrentCompositeTask) {
mCurrentCompositeTask->Cancel();
mCurrentCompositeTask = nullptr;
CancelCurrentCompositeTask();
ForceComposeToTarget(nullptr);
}
return true;
@ -376,9 +375,15 @@ CompositorParent::RecvSetTestSampleTime(const TimeStamp& aTime)
mIsTesting = true;
mTestTime = aTime;
if (mCompositionManager) {
mCompositionManager->TransformShadowTree(aTime);
// Update but only if we were already scheduled to animate
if (mCompositionManager && mCurrentCompositeTask) {
bool requestNextFrame = mCompositionManager->TransformShadowTree(aTime);
if (!requestNextFrame) {
CancelCurrentCompositeTask();
}
}
return true;
}
@ -464,6 +469,15 @@ CompositorParent::ForceComposition()
ScheduleRenderOnCompositorThread();
}
void
CompositorParent::CancelCurrentCompositeTask()
{
if (mCurrentCompositeTask) {
mCurrentCompositeTask->Cancel();
mCurrentCompositeTask = nullptr;
}
}
void
CompositorParent::SetEGLSurfaceSize(int width, int height)
{
@ -757,12 +771,22 @@ CompositorParent::ShadowLayersUpdated(LayerTransactionParent* aLayerTree,
if (root) {
SetShadowProperties(root);
if (mIsTesting) {
mCompositionManager->TransformShadowTree(mTestTime);
}
}
if (aScheduleComposite) {
ScheduleComposition();
// When testing we synchronously update the shadow tree with the animated
// values to avoid race conditions when calling GetAnimationTransform etc.
// (since the above SetShadowProperties will remove animation effects).
// However, we only do this update when a composite operation is already
// scheduled in order to better match the behavior under regular sampling
// conditions.
if (mIsTesting && root && mCurrentCompositeTask) {
bool requestNextFrame =
mCompositionManager->TransformShadowTree(mTestTime);
if (!requestNextFrame) {
CancelCurrentCompositeTask();
}
}
}
mLayerManager->NotifyShadowTreeTransaction();
}

View File

@ -249,6 +249,7 @@ private:
void ResumeComposition();
void ResumeCompositionAndResize(int width, int height);
void ForceComposition();
void CancelCurrentCompositeTask();
inline static PlatformThreadId CompositorThreadID();

View File

@ -32,6 +32,7 @@
#include "mozilla/mozalloc.h" // for operator delete, etc
#include "nsCoord.h" // for NSAppUnitsToFloatPixels
#include "nsDebug.h" // for NS_RUNTIMEABORT
#include "nsDeviceContext.h" // for AppUnitsPerCSSPixel
#include "nsISupportsImpl.h" // for Layer::Release, etc
#include "nsLayoutUtils.h" // for nsLayoutUtils
#include "nsMathUtils.h" // for NS_round
@ -568,25 +569,40 @@ LayerTransactionParent::RecvGetOpacity(PLayerParent* aParent,
}
bool
LayerTransactionParent::RecvGetTransform(PLayerParent* aParent,
gfx3DMatrix* aTransform)
LayerTransactionParent::RecvGetAnimationTransform(PLayerParent* aParent,
MaybeTransform* aTransform)
{
if (mDestroyed || !layer_manager() || layer_manager()->IsDestroyed()) {
return false;
}
// The following code recovers the untranslated transform
// from the shadow transform by undoing the translations in
// AsyncCompositionManager::SampleValue.
Layer* layer = cast(aParent)->AsLayer();
if (!layer) {
return false;
}
gfx::To3DMatrix(layer->AsLayerComposite()->GetShadowTransform(), *aTransform);
// This method is specific to transforms applied by animation.
// This is because this method uses the information stored with an animation
// such as the origin of the reference frame corresponding to the layer, to
// recover the untranslated transform from the shadow transform. For
// transforms that are not set by animation we don't have this information
// available.
if (!layer->AsLayerComposite()->GetShadowTransformSetByAnimation()) {
*aTransform = mozilla::void_t();
return true;
}
// The following code recovers the untranslated transform
// from the shadow transform by undoing the translations in
// AsyncCompositionManager::SampleValue.
gfx3DMatrix transform;
gfx::To3DMatrix(layer->AsLayerComposite()->GetShadowTransform(), transform);
if (ContainerLayer* c = layer->AsContainerLayer()) {
aTransform->ScalePost(1.0f/c->GetInheritedXScale(),
1.0f/c->GetInheritedYScale(),
1.0f);
// Undo the scale transform applied by AsyncCompositionManager::SampleValue
transform.ScalePost(1.0f/c->GetInheritedXScale(),
1.0f/c->GetInheritedYScale(),
1.0f);
}
float scale = 1;
gfxPoint3D scaledOrigin;
@ -599,13 +615,32 @@ LayerTransactionParent::RecvGetTransform(PLayerParent* aParent,
gfxPoint3D(NS_round(NSAppUnitsToFloatPixels(data.origin().x, scale)),
NS_round(NSAppUnitsToFloatPixels(data.origin().y, scale)),
0.0f);
transformOrigin = data.transformOrigin();
double cssPerDev =
double(nsDeviceContext::AppUnitsPerCSSPixel()) / double(scale);
transformOrigin = data.transformOrigin() * cssPerDev;
break;
}
}
aTransform->Translate(-scaledOrigin);
*aTransform = nsLayoutUtils::ChangeMatrixBasis(-scaledOrigin - transformOrigin, *aTransform);
// Undo the translation to the origin of the reference frame applied by
// AsyncCompositionManager::SampleValue
transform.Translate(-scaledOrigin);
// Undo the rebasing applied by
// nsDisplayTransform::GetResultingTransformMatrixInternal
transform = nsLayoutUtils::ChangeMatrixBasis(-scaledOrigin - transformOrigin,
transform);
// Convert to CSS pixels (this undoes the operations performed by
// nsStyleTransformMatrix::ProcessTranslatePart which is called from
// nsDisplayTransform::GetResultingTransformMatrix)
double devPerCss =
double(scale) / double(nsDeviceContext::AppUnitsPerCSSPixel());
transform._41 *= devPerCss;
transform._42 *= devPerCss;
transform._43 *= devPerCss;
*aTransform = transform;
return true;
}

View File

@ -95,8 +95,9 @@ protected:
virtual bool RecvForceComposite() MOZ_OVERRIDE;
virtual bool RecvGetOpacity(PLayerParent* aParent,
float* aOpacity) MOZ_OVERRIDE;
virtual bool RecvGetTransform(PLayerParent* aParent,
gfx3DMatrix* aTransform) MOZ_OVERRIDE;
virtual bool RecvGetAnimationTransform(PLayerParent* aParent,
MaybeTransform* aTransform)
MOZ_OVERRIDE;
virtual PGrallocBufferParent*
AllocPGrallocBufferParent(const IntSize& aSize,

View File

@ -17,6 +17,7 @@ include protocol PTexture;
include "mozilla/GfxMessageUtils.h";
using struct mozilla::layers::TextureInfo from "mozilla/layers/CompositorTypes.h";
using struct mozilla::void_t from "ipc/IPCMessageUtils.h";
/**
* The layers protocol is spoken between thread contexts that manage
@ -29,6 +30,11 @@ using struct mozilla::layers::TextureInfo from "mozilla/layers/CompositorTypes.h
namespace mozilla {
namespace layers {
union MaybeTransform {
gfx3DMatrix;
void_t;
};
sync protocol PLayerTransaction {
manager PRenderFrame or PCompositor;
manages PLayer;
@ -76,7 +82,13 @@ parent:
returns (EditReply[] reply);
sync GetOpacity(PLayer layer) returns (float opacity);
sync GetTransform(PLayer layer) returns (gfx3DMatrix transform);
// Returns the value of the transform applied to the layer by animation after
// factoring out translation components introduced to account for the offset
// of the corresponding frame and transform origin and after converting to CSS
// pixels. If the layer is not transformed by animation, the return value will
// be void_t.
sync GetAnimationTransform(PLayer layer) returns (MaybeTransform transform);
// We don't need to send a sync transaction if
// no transaction operate require a swap.

View File

@ -271,7 +271,7 @@ static const struct ParamPair {
// Keep this in sync with above params.
#define GC_PARAMETER_ARGS_LIST "maxBytes, maxMallocBytes, gcBytes, gcNumber, sliceTimeBudget, or markStackLimit"
static bool
GCParameter(JSContext *cx, unsigned argc, Value *vp)
{
@ -320,6 +320,11 @@ GCParameter(JSContext *cx, unsigned argc, Value *vp)
return false;
}
if (param == JSGC_MARK_STACK_LIMIT && IsIncrementalGCInProgress(cx->runtime())) {
JS_ReportError(cx, "attempt to set markStackLimit while a GC is in progress");
return false;
}
if (param == JSGC_MAX_BYTES) {
uint32_t gcBytes = JS_GetGCParameter(cx->runtime(), JSGC_BYTES);
if (value < gcBytes) {

View File

@ -533,7 +533,6 @@ ExclusiveContext::global() const
* barrier on it. Once the compartment is popped, the handle is no longer
* safe to use.
*/
MOZ_ASSERT(compartment_, "Caller needs to enter a compartment first");
return Handle<GlobalObject*>::fromMarkedLocation(compartment_->global_.unsafeGet());
}

View File

@ -416,8 +416,6 @@ js::AssertSameCompartment(JSObject *objA, JSObject *objB)
JS_FRIEND_API(JSObject *)
js::DefaultObjectForContextOrNull(JSContext *cx)
{
if (cx->options().noDefaultCompartmentObject())
return nullptr;
return cx->maybeDefaultCompartmentObject();
}

View File

@ -23,11 +23,6 @@ using mozilla::dom::DestroyProtoAndIfaceCache;
XPCJSContextStack::~XPCJSContextStack()
{
if (mSafeJSContext) {
{
JSAutoRequest ar(mSafeJSContext);
JS_RemoveObjectRoot(mSafeJSContext, &mSafeJSContextGlobal);
}
mSafeJSContextGlobal = nullptr;
JS_DestroyContextNoGC(mSafeJSContext);
mSafeJSContext = nullptr;
}
@ -79,17 +74,17 @@ XPCJSContextStack::Push(JSContext *cx)
if ((e.cx == cx) && ssm) {
// DOM JSContexts don't store their default compartment object on
// the cx, so in those cases we need to fetch it via the scx
// instead. And in some cases (i.e. the SafeJSContext), we have no
// default compartment object at all.
// instead.
RootedObject defaultScope(cx, GetDefaultScopeFromJSContext(cx));
if (defaultScope) {
nsIPrincipal *currentPrincipal =
GetCompartmentPrincipal(js::GetContextCompartment(cx));
nsIPrincipal *defaultPrincipal = GetObjectPrincipal(defaultScope);
if (currentPrincipal->Equals(defaultPrincipal)) {
mStack.AppendElement(cx);
return true;
}
nsIPrincipal *currentPrincipal =
GetCompartmentPrincipal(js::GetContextCompartment(cx));
nsIPrincipal *defaultPrincipal = GetObjectPrincipal(defaultScope);
bool equal = false;
currentPrincipal->Equals(defaultPrincipal, &equal);
if (equal) {
mStack.AppendElement(cx);
return true;
}
}
@ -147,13 +142,6 @@ XPCJSContextStack::GetSafeJSContext()
return mSafeJSContext;
}
JSObject*
XPCJSContextStack::GetSafeJSContextGlobal()
{
MOZ_ASSERT(mSafeJSContextGlobal);
return mSafeJSContextGlobal;
}
JSContext*
XPCJSContextStack::InitSafeJSContext()
{
@ -175,28 +163,32 @@ XPCJSContextStack::InitSafeJSContext()
if (!mSafeJSContext)
MOZ_CRASH();
JSAutoRequest req(mSafeJSContext);
ContextOptionsRef(mSafeJSContext).setNoDefaultCompartmentObject(true);
JS::RootedObject glob(mSafeJSContext);
JS_SetErrorReporter(mSafeJSContext, xpc::SystemErrorReporter);
JS::CompartmentOptions options;
options.setZone(JS::SystemZone);
mSafeJSContextGlobal = CreateGlobalObject(mSafeJSContext,
&SafeJSContextGlobalClass,
principal, options);
if (!mSafeJSContextGlobal)
glob = xpc::CreateGlobalObject(mSafeJSContext, &SafeJSContextGlobalClass, principal, options);
if (!glob)
MOZ_CRASH();
JS_AddNamedObjectRoot(mSafeJSContext, &mSafeJSContextGlobal, "SafeJSContext global");
// Make sure the context is associated with a proper compartment
// and not the default compartment.
js::SetDefaultObjectForContext(mSafeJSContext, glob);
// Note: make sure to set the private before calling
// InitClasses
nsRefPtr<SandboxPrivate> sp = new SandboxPrivate(principal, mSafeJSContextGlobal);
JS_SetPrivate(mSafeJSContextGlobal, sp.forget().get());
nsRefPtr<SandboxPrivate> sp = new SandboxPrivate(principal, glob);
JS_SetPrivate(glob, sp.forget().get());
if (NS_FAILED(xpc->InitClasses(mSafeJSContext, mSafeJSContextGlobal)))
// After this point either glob is null and the
// nsIScriptObjectPrincipal ownership is either handled by the
// nsCOMPtr or dealt with, or we'll release in the finalize
// hook.
if (NS_FAILED(xpc->InitClasses(mSafeJSContext, glob)))
MOZ_CRASH();
JS::RootedObject glob(mSafeJSContext, mSafeJSContextGlobal);
JS_FireOnNewGlobalObject(mSafeJSContext, glob);
return mSafeJSContext;

View File

@ -587,12 +587,6 @@ GetJunkScopeGlobal()
return GetNativeForGlobal(junkScope);
}
JSObject *
GetSafeJSContextGlobal()
{
return XPCJSRuntime::Get()->GetJSContextStack()->GetSafeJSContextGlobal();
}
nsGlobalWindow*
WindowGlobalOrNull(JSObject *aObj)
{

View File

@ -228,7 +228,6 @@ ThreadsafeAutoJSContext::operator JSContext*() const
AutoSafeJSContext::AutoSafeJSContext(MOZ_GUARD_OBJECT_NOTIFIER_ONLY_PARAM_IN_IMPL)
: AutoJSContext(true MOZ_GUARD_OBJECT_NOTIFIER_PARAM_TO_PARENT)
, mAc(mCx, XPCJSRuntime::Get()->GetJSContextStack()->GetSafeJSContextGlobal())
{
}

View File

@ -100,6 +100,7 @@ public:
protected:
AutoJSContext(bool aSafe MOZ_GUARD_OBJECT_NOTIFIER_PARAM);
private:
// We need this Init() method because we can't use delegating constructor for
// the moment. It is a C++11 feature and we do not require C++11 to be
// supported to be able to compile Gecko.
@ -133,8 +134,6 @@ private:
class MOZ_STACK_CLASS AutoSafeJSContext : public AutoJSContext {
public:
AutoSafeJSContext(MOZ_GUARD_OBJECT_NOTIFIER_ONLY_PARAM);
private:
JSAutoCompartment mAc;
};
/**

View File

@ -2777,7 +2777,6 @@ public:
XPCJSContextStack(XPCJSRuntime *aRuntime)
: mRuntime(aRuntime)
, mSafeJSContext(nullptr)
, mSafeJSContextGlobal(nullptr)
{ }
virtual ~XPCJSContextStack();
@ -2794,7 +2793,6 @@ public:
JSContext *InitSafeJSContext();
JSContext *GetSafeJSContext();
JSObject *GetSafeJSContextGlobal();
bool HasJSContext(JSContext *cx);
const InfallibleTArray<XPCJSContextInfo>* GetStack()
@ -2813,7 +2811,6 @@ private:
AutoInfallibleTArray<XPCJSContextInfo, 16> mStack;
XPCJSRuntime* mRuntime;
JSContext* mSafeJSContext;
JSObject* mSafeJSContextGlobal;
};
/***************************************************************************/

View File

@ -424,13 +424,6 @@ GetJunkScope();
nsIGlobalObject *
GetJunkScopeGlobal();
/**
* Returns the dummy global associated with the SafeJSContext. Callers MUST
* consult with the XPConnect module owner before using this function.
*/
JSObject *
GetSafeJSContextGlobal();
/**
* If |aObj| has a window for a global, returns the associated nsGlobalWindow.
* Otherwise, returns null.

View File

@ -1,23 +1,23 @@
# Tests related to SVG Animation (using SMIL) that use event timing.
skip-if(B2G) == event-begin-1.svg green-box-ref.svg # bug 773482
skip-if(B2G) == event-begin-offset-1.svg green-box-ref.svg # bug 773482
skip-if(B2G) == event-begin-offset-2.svg green-box-ref.svg # bug 773482
skip-if(B2G) == event-begin-timeevent-1.svg green-box-ref.svg # bug 773482
skip-if(B2G) == event-begin-timeevent-2.svg green-box-ref.svg # bug 773482
skip-if(B2G) random-if(Android) == event-begin-timeevent-3.svg green-box-ref.svg # bug 773482
== event-begin-1.svg green-box-ref.svg
== event-begin-offset-1.svg green-box-ref.svg
== event-begin-offset-2.svg green-box-ref.svg
== event-begin-timeevent-1.svg green-box-ref.svg
== event-begin-timeevent-2.svg green-box-ref.svg
random-if(Android) == event-begin-timeevent-3.svg green-box-ref.svg
== event-begin-load-1.svg green-box-ref.svg
== event-bubble-1.svg green-box-ref.svg
== event-custom-1.svg green-box-ref.svg
== event-end-1.svg green-box-ref.svg
skip-if(B2G) == event-end-2.svg green-box-ref.svg # bug 773482
== event-end-2.svg green-box-ref.svg
== event-end-open-1.svg green-box-ref.svg
skip-if(B2G) == event-end-trimmed-1.svg green-box-ref.svg
== event-end-trimmed-1.svg green-box-ref.svg
== event-preventDefault-1.svg green-box-ref.svg
skip-if(B2G) == event-seek-1.svg green-box-ref.svg
== event-seek-1.svg green-box-ref.svg
== event-target-default-1.svg green-box-ref.svg
skip-if(B2G) == event-target-default-2.svg green-box-ref.svg # bug 773482
skip-if(B2G) == event-target-id-change-1.svg green-box-ref.svg # bug 773482
== event-target-default-2.svg green-box-ref.svg
== event-target-id-change-1.svg green-box-ref.svg
== event-target-id-change-2.svg green-box-ref.svg
== event-target-id-change-3.svg green-box-ref.svg
== event-target-xlink-change-1.svg green-box-ref.svg
@ -28,5 +28,5 @@ skip-if(B2G) == event-target-id-change-1.svg green-box-ref.svg # bug 773482
== event-target-surgery-2.svg green-box-ref.svg
== event-target-surgery-3.svg green-box-ref.svg
== event-target-non-svg-1.xhtml green-box-ref.xhtml
skip-if(B2G) == accesskey-entity-1.svg green-box-ref.svg
skip-if(B2G) == accesskey-entity-2.svg green-box-ref.svg # bug 773482
== accesskey-entity-1.svg green-box-ref.svg
== accesskey-entity-2.svg green-box-ref.svg

View File

@ -1,14 +1,14 @@
# Tests related to SVG Animation (using SMIL), focusing on the animateMotion
# element.
skip-if(B2G) random-if(Android&&AndroidVersion>=15) == animateMotion-by-1.svg lime.svg # bug 773482
skip-if(B2G) random-if(Android&&AndroidVersion>=15) == animateMotion-by-2.svg lime.svg # bug 773482
== animateMotion-by-1.svg lime.svg
== animateMotion-by-2.svg lime.svg
fuzzy-if(/^Windows\x20NT\x206\.2/.test(http.oscpu),1,800) == animateMotion-flattening-1.svg lime.svg # bug 951541
skip-if(B2G) == animateMotion-from-to-1.svg lime.svg # bug 773482
== animateMotion-from-to-1.svg lime.svg
== animateMotion-indefinite-to-1.svg lime.svg
== animateMotion-indefinite-to-2.svg lime.svg
skip-if(B2G) random-if(Android&&AndroidVersion>=15) == animateMotion-rotate-1a.svg lime.svg # bug 773482
skip-if(B2G) random-if(Android&&AndroidVersion>=15) == animateMotion-rotate-1b.svg lime.svg # bug 773482
== animateMotion-rotate-1a.svg lime.svg
== animateMotion-rotate-1b.svg lime.svg
== animateMotion-rotate-2.svg lime.svg
== animateMotion-to-overridden-1.svg lime.svg
== animateMotion-values-linear-1.svg animateMotion-values-linear-1-ref.svg
@ -16,6 +16,6 @@ skip-if(B2G) random-if(Android&&AndroidVersion>=15) == animateMotion-rotate-1b.s
== animateMotion-values-paced-1b.svg animateMotion-values-paced-1-ref.svg
# Tests involving <mpath> sub-element
skip-if(B2G) == animateMotion-mpath-pathLength-1.svg lime.svg # bug 773482
skip-if(B2G) == animateMotion-mpath-targetChange-1.svg lime.svg # bug 773482
== animateMotion-mpath-pathLength-1.svg lime.svg
== animateMotion-mpath-targetChange-1.svg lime.svg
== animateMotion-mpath-target-transform-1.svg lime.svg

View File

@ -18,7 +18,7 @@
include motion/reftest.list
# animation sort-order tests
skip-if(B2G) include sort/reftest.list
include sort/reftest.list
# set tests
include set/reftest.list
@ -27,7 +27,7 @@ include set/reftest.list
include style/reftest.list
# animateTransform tests
skip-if(B2G) include transform/reftest.list
include transform/reftest.list
# time-dependent tests
# XXXdholbert Disabling this class of tests for now, because most of them
@ -48,7 +48,7 @@ include restart/reftest.list
include pause/reftest.list
# syncbase tests
skip-if(B2G) include syncbase/reftest.list
include syncbase/reftest.list
# seek tests
include seek/reftest.list
@ -57,17 +57,17 @@ include seek/reftest.list
include event/reftest.list
# General tests
skip-if(B2G) == anim-discrete-values-1.svg anim-standard-ref.svg
skip-if(B2G) == anim-discrete-values-2.svg anim-standard-ref.svg
skip-if(B2G) == anim-discrete-values-3.svg anim-standard-ref.svg
skip-if(B2G) == anim-discrete-replace-sum-1.svg anim-standard-ref.svg
skip-if(B2G) == anim-discrete-sum-none-1.svg anim-standard-ref.svg
skip-if(B2G) == anim-discrete-sum-sum-1.svg anim-standard-ref.svg
== anim-discrete-values-1.svg anim-standard-ref.svg
== anim-discrete-values-2.svg anim-standard-ref.svg
== anim-discrete-values-3.svg anim-standard-ref.svg
== anim-discrete-replace-sum-1.svg anim-standard-ref.svg
== anim-discrete-sum-none-1.svg anim-standard-ref.svg
== anim-discrete-sum-sum-1.svg anim-standard-ref.svg
skip-if(B2G) == anim-discrete-to-1.svg anim-standard-ref.svg
skip-if(B2G) == anim-discrete-to-2.svg anim-standard-ref.svg
skip-if(B2G) == anim-discrete-to-3.svg anim-standard-ref.svg # bug 773482
skip-if(B2G) == anim-discrete-to-4.svg anim-standard-ref.svg # bug 773482
== anim-discrete-to-1.svg anim-standard-ref.svg
== anim-discrete-to-2.svg anim-standard-ref.svg
== anim-discrete-to-3.svg anim-standard-ref.svg
== anim-discrete-to-4.svg anim-standard-ref.svg
== anim-indefinite-to-1.svg anim-standard-ref.svg
== anim-indefinite-to-2.svg anim-standard-ref.svg
@ -76,65 +76,65 @@ skip-if(B2G) == anim-discrete-to-4.svg anim-standard-ref.svg # bug 7734
fails == anim-fillcolor-1.svg anim-standard-ref.svg # bug 436296
== anim-fillopacity-1none.svg anim-standard-ref.svg
skip-if(B2G) == anim-fillopacity-1css.svg anim-standard-ref.svg
== anim-fillopacity-1css.svg anim-standard-ref.svg
== anim-fillopacity-1xml.svg anim-standard-ref.svg
skip-if(B2G) == anim-height-done-1a.svg anim-standard-ref.svg # bug 773482
skip-if(B2G) == anim-height-done-1b.svg anim-standard-ref.svg # bug 773482
== anim-height-done-1a.svg anim-standard-ref.svg
== anim-height-done-1b.svg anim-standard-ref.svg
== anim-height-done-2.svg lime.svg
skip-if(B2G) == anim-height-interp-1.svg anim-height-interp-1-ref.svg # bug 773482
skip-if(B2G) == anim-height-interp-2.svg anim-height-interp-2-ref.svg # bug 773482
skip-if(B2G) == anim-height-interp-3.svg anim-height-interp-3-ref.svg # bug 773482
skip-if(B2G) == anim-height-interp-4.svg anim-height-interp-4-ref.svg
skip-if(B2G) == anim-height-interp-5.svg anim-height-interp-5-ref.svg # bug 773482
skip-if(B2G) == anim-height-interp-6.svg anim-height-interp-6-ref.svg # bug 773482
== anim-height-interp-1.svg anim-height-interp-1-ref.svg
== anim-height-interp-2.svg anim-height-interp-2-ref.svg
== anim-height-interp-3.svg anim-height-interp-3-ref.svg
== anim-height-interp-4.svg anim-height-interp-4-ref.svg
== anim-height-interp-5.svg anim-height-interp-5-ref.svg
== anim-height-interp-6.svg anim-height-interp-6-ref.svg
# check conditional processing
== anim-conditions-01.svg lime.svg
skip-if(B2G) == anim-conditions-02.svg lime.svg # bug 773482
== anim-conditions-02.svg lime.svg
# animate some <length> attributes:
skip-if(B2G) == anim-filter-primitive-size-01.svg lime.svg # bug 773482
skip-if(B2G) == anim-filter-size-01.svg lime.svg # bug 773482
== anim-filter-primitive-size-01.svg lime.svg
== anim-filter-size-01.svg lime.svg
== anim-length-reset-01.svg lime.svg
== anim-nonpixel-length-reset-01.svg lime.svg
skip-if(B2G) == anim-use-length-01.svg lime.svg # bug 773482
== anim-use-length-01.svg lime.svg
== anim-use-length-02.svg lime.svg
# animate some <number> attributes:
skip-if(B2G) == anim-feComponentTransfer-01.svg lime.svg # bug 773482
skip-if(B2G) == anim-feDistantLight-01.svg anim-feDistantLight-01-ref.svg # bug 773482
skip-if(B2G) == anim-feOffset-01.svg lime.svg # bug 773482
skip-if(B2G) == anim-feSpotLight-01.svg anim-feSpotLight-01-ref.svg # bug 773482
skip-if(B2G) == anim-offset-01.svg lime.svg # bug 773482
== anim-feComponentTransfer-01.svg lime.svg
== anim-feDistantLight-01.svg anim-feDistantLight-01-ref.svg
== anim-feOffset-01.svg lime.svg
== anim-feSpotLight-01.svg anim-feSpotLight-01-ref.svg
== anim-offset-01.svg lime.svg
== anim-pathLength-01.svg anim-pathLength-01-ref.svg
# animate some <number-optional-number> attributes:
== anim-feGaussianBlur-01.svg lime.svg
# animate some <integer> attributes:
skip-if(B2G) == anim-feTurbulence-numOctaves-01.svg anim-feTurbulence-numOctaves-01-ref.svg # bug 773482
== anim-feTurbulence-numOctaves-01.svg anim-feTurbulence-numOctaves-01-ref.svg
# animate some <integer-optional-integer> attributes:
skip-if(B2G) random-if(/^Windows\x20NT\x205\.1/.test(http.oscpu)) == anim-filter-filterRes-01.svg lime.svg # bug 818177
random-if(/^Windows\x20NT\x205\.1/.test(http.oscpu)) == anim-filter-filterRes-01.svg lime.svg # bug 818177
# animate some <angle> attributes:
skip-if(B2G) == anim-marker-orient-01.svg lime.svg # bug 773482
skip-if(B2G) == anim-marker-orient-02.svg lime.svg # bug 773482
== anim-marker-orient-01.svg lime.svg
== anim-marker-orient-02.svg lime.svg
#animate points list:
skip-if(B2G) == anim-polygon-points-01.svg anim-polygon-points-01-ref.svg
== anim-polygon-points-01.svg anim-polygon-points-01-ref.svg
== anim-polyline-points-01.svg anim-polyline-points-01-ref.svg
# animate path data:
== anim-path-d-01.svg anim-path-d-01-ref.svg
# animate some enumeration attributes:
skip-if(B2G) == anim-feComposite-operator-01.svg lime.svg
== anim-feComposite-operator-01.svg lime.svg
== anim-filter-filterUnits-01.svg lime.svg
# animate some boolean attributes:
skip-if(B2G) == anim-feConvolveMatrix-preserveAlpha-01.svg lime.svg # bug 773482
== anim-feConvolveMatrix-preserveAlpha-01.svg lime.svg
# animate some viewBox attributes
fuzzy-if(Android,4,1) == anim-svg-viewBox-01.svg lime.svg
@ -143,19 +143,19 @@ fuzzy-if(Android,4,1) == anim-svg-viewBox-01.svg lime.svg
== anim-view-01.svg#view lime.svg
# animate some preserveAspectRatio attributes
skip-if(B2G) == anim-feImage-preserveAspectRatio-01.svg lime.svg
== anim-feImage-preserveAspectRatio-01.svg lime.svg
== anim-svg-preserveAspectRatio-01.svg lime.svg
# animate some string attributes:
== anim-filter-href-01.svg lime.svg
== anim-gradient-href-01.svg lime.svg
skip-if(B2G) == anim-image-href-01.svg lime.svg
skip-if(B2G) == anim-pattern-href-01.svg lime.svg
skip-if(B2G) == anim-use-href-01.svg lime.svg # bug 773482
== anim-image-href-01.svg lime.svg
== anim-pattern-href-01.svg lime.svg
== anim-use-href-01.svg lime.svg
# animate the class attribute
== anim-class-01.svg lime.svg
skip-if(B2G) == anim-class-02.svg lime.svg
== anim-class-02.svg lime.svg
== anim-class-03.svg lime.svg
== anim-class-04.svg anim-class-04-ref.svg
@ -180,7 +180,7 @@ skip-if(B2G) == anim-class-02.svg lime.svg
== anim-remove-8xml.svg anim-standard-ref.svg
== anim-remove-9.svg anim-standard-ref.svg
== anim-retarget-1.svg anim-standard-ref.svg
skip-if(B2G) == anim-retarget-2.svg anim-standard-ref.svg # bug 773482
== anim-retarget-2.svg anim-standard-ref.svg
== anim-retarget-3.svg anim-standard-ref.svg
== anim-retarget-4.svg anim-standard-ref.svg
== anim-retarget-5.svg anim-standard-ref.svg
@ -189,46 +189,46 @@ skip-if(B2G) == anim-retarget-2.svg anim-standard-ref.svg # bug 773482
== anim-retarget-8.svg anim-standard-ref.svg
fails == anim-strokecolor-1.svg anim-standard-ref.svg # bug 436296
skip-if(B2G) == anim-strokewidth-1xml.svg anim-standard-ref.svg # bug 773482
== anim-strokewidth-1xml.svg anim-standard-ref.svg
== anim-targethref-1.svg anim-standard-ref.svg
skip-if(B2G) == anim-targethref-2.svg anim-standard-ref.svg # bug 773482
== anim-targethref-2.svg anim-standard-ref.svg
== anim-targethref-3.svg anim-standard-ref.svg
== anim-targethref-4.svg anim-standard-ref.svg
skip-if(B2G) == anim-targethref-5.svg anim-standard-ref.svg # bug 773482
== anim-targethref-5.svg anim-standard-ref.svg
== anim-targethref-6.svg anim-standard-ref.svg
== anim-targethref-7.svg anim-standard-ref.svg
== anim-targethref-8.svg anim-standard-ref.svg
skip-if(B2G) == anim-targethref-9.svg anim-standard-ref.svg # bug 773482
== anim-targethref-9.svg anim-standard-ref.svg
skip-if(/^Windows\x20NT\x205\.1/.test(http.oscpu)) == anim-text-rotate-01.svg anim-text-rotate-01-ref.svg # Bug 645104 for skip failure on WinXP
skip-if(B2G) == anim-feFuncR-tableValues-01.svg anim-feFuncR-tableValues-01-ref.svg # bug 773482
== anim-feFuncR-tableValues-01.svg anim-feFuncR-tableValues-01-ref.svg
skip == anim-text-x-y-dx-dy-01.svg anim-text-x-y-dx-dy-01-ref.svg # bug 579588
skip-if(B2G) == anim-width-done-1a.svg anim-standard-ref.svg # bug 773482
== anim-width-done-1a.svg anim-standard-ref.svg
== anim-width-done-1b.svg anim-standard-ref.svg
skip-if(B2G) == anim-x-done-1a.svg anim-standard-ref.svg # bug 773482
skip-if(B2G) == anim-x-done-1b.svg anim-standard-ref.svg # bug 773482
skip-if(B2G) == anim-x-interp-1.svg anim-x-interp-1-ref.svg # bug 773482
skip-if(B2G) == anim-x-interp-2.svg anim-x-interp-2-ref.svg
skip-if(B2G) == anim-x-interp-3.svg anim-x-interp-3-ref.svg
skip-if(B2G) == anim-x-interp-4.svg anim-x-interp-4-ref.svg # bug 773482
skip-if(B2G) == anim-x-interp-5.svg anim-x-interp-5-ref.svg # bug 773482
skip-if(B2G) == anim-x-interp-6.svg anim-x-interp-6-ref.svg
== anim-x-done-1a.svg anim-standard-ref.svg
== anim-x-done-1b.svg anim-standard-ref.svg
== anim-x-interp-1.svg anim-x-interp-1-ref.svg
== anim-x-interp-2.svg anim-x-interp-2-ref.svg
== anim-x-interp-3.svg anim-x-interp-3-ref.svg
== anim-x-interp-4.svg anim-x-interp-4-ref.svg
== anim-x-interp-5.svg anim-x-interp-5-ref.svg
== anim-x-interp-6.svg anim-x-interp-6-ref.svg
== anim-y-done-1a.svg anim-standard-ref.svg
== anim-y-done-1b.svg anim-standard-ref.svg
skip-if(B2G) == anim-y-interp-1.svg anim-y-interp-1-ref.svg
skip-if(B2G) == anim-y-interp-2.svg anim-y-interp-2-ref.svg # bug 773482
skip-if(B2G) == anim-y-interp-3.svg anim-y-interp-3-ref.svg
skip-if(B2G) == anim-y-interp-4.svg anim-y-interp-4-ref.svg
skip-if(B2G) == anim-y-interp-5.svg anim-y-interp-5-ref.svg # bug 773482
skip-if(B2G) == anim-y-interp-6.svg anim-y-interp-6-ref.svg
== anim-y-interp-1.svg anim-y-interp-1-ref.svg
== anim-y-interp-2.svg anim-y-interp-2-ref.svg
== anim-y-interp-3.svg anim-y-interp-3-ref.svg
== anim-y-interp-4.svg anim-y-interp-4-ref.svg
== anim-y-interp-5.svg anim-y-interp-5-ref.svg
== anim-y-interp-6.svg anim-y-interp-6-ref.svg
# Test we don't rely on HasAttr to see if an attribute has been set
skip-if(B2G) == anim-rect-rxry-1.svg anim-rect-rxry-1-ref.svg # bug 773482
== anim-rect-rxry-1.svg anim-rect-rxry-1-ref.svg
== anim-pattern-attr-presence-01.svg anim-pattern-attr-presence-01-ref.svg
fails == anim-pattern-attr-presence-02.svg anim-pattern-attr-presence-02-ref.svg
# ^ bug 621651
@ -256,10 +256,10 @@ fuzzy-if(cocoaWidget&&layersGPUAccelerated,1,2) == anim-gradient-attr-presence-0
== smil-transitions-interaction-1a.svg lime.svg
== smil-transitions-interaction-1b.svg lime.svg
== smil-transitions-interaction-2a.svg lime.svg
skip-if(B2G) == smil-transitions-interaction-2b.svg lime.svg
== smil-transitions-interaction-2b.svg lime.svg
== smil-transitions-interaction-3a.svg lime.svg
== smil-transitions-interaction-3b.svg lime.svg
skip-if(B2G) == smil-transitions-interaction-4a.svg lime.svg # bug 773482
== smil-transitions-interaction-4a.svg lime.svg
== smil-transitions-interaction-4b.svg lime.svg
# Test filtering of excessive times

View File

@ -1,3 +1,3 @@
# Tests for repeat behaviour
skip-if(B2G) == indefinite-repeat-1.svg green-box-ref.svg # bug 773482
== indefinite-repeat-1.svg green-box-ref.svg
== init-repeat-1.svg init-repeat-1-ref.svg

View File

@ -4,5 +4,5 @@
== reset-3.svg green-box-ref.svg
== reset-4.svg green-box-ref.svg
# reset-5.svg is no longer valid and has been removed
skip-if(B2G) == reset-6.svg green-box-ref.svg # bug 773482
== reset-6.svg green-box-ref.svg
== reset-7.svg green-box-ref.svg

View File

@ -4,31 +4,31 @@
== new-interval-simple-1.svg green-box-ref.svg
== new-interval-simple-2.svg green-box-ref.svg
== new-interval-negative-offset-1.svg green-box-ref.svg
skip-if(B2G) == new-interval-negative-offset-2.svg green-box-ref.svg
skip-if(B2G) == new-interval-negative-offset-3.svg green-box-ref.svg # bug 773482
skip-if(B2G) == new-interval-negative-offset-4.svg green-box-ref.svg # bug 773482
== new-interval-negative-offset-2.svg green-box-ref.svg
== new-interval-negative-offset-3.svg green-box-ref.svg
== new-interval-negative-offset-4.svg green-box-ref.svg
== new-interval-negative-syncbase-1.svg green-box-ref.svg
skip-if(B2G) == new-interval-restart-1.svg green-box-ref.svg # bug 773482
skip-if(B2G) == new-interval-restart-2.svg green-box-ref.svg # bug 773482
skip-if(B2G) == new-interval-restart-3.svg green-box-ref.svg # bug 773482
skip-if(B2G) == new-interval-early-end-1.svg green-box-ref.svg # bug 773482
== new-interval-restart-1.svg green-box-ref.svg
== new-interval-restart-2.svg green-box-ref.svg
== new-interval-restart-3.svg green-box-ref.svg
== new-interval-early-end-1.svg green-box-ref.svg
== new-interval-early-end-2.svg green-box-ref.svg
skip-if(B2G) == new-interval-early-end-3.svg green-box-ref.svg
== new-interval-early-end-3.svg green-box-ref.svg
== new-interval-early-end-4.svg green-box-ref.svg
skip-if(B2G) == new-interval-early-end-5.svg green-box-ref.svg # bug 773482
== new-interval-early-end-5.svg green-box-ref.svg
== new-interval-early-end-6.svg green-box-ref.svg
== new-interval-early-end-7.svg green-box-ref.svg
== new-interval-doubly-dependent-1.svg green-box-ref.svg
skip-if(B2G) == new-interval-doubly-dependent-2.svg green-box-ref.svg # bug 773482
skip-if(B2G) == new-interval-doubly-dependent-3.svg green-box-ref.svg # bug 773482
== new-interval-doubly-dependent-2.svg green-box-ref.svg
== new-interval-doubly-dependent-3.svg green-box-ref.svg
== new-interval-triply-dependent-1.svg green-box-ref.svg
== new-interval-triply-dependent-2.svg green-box-ref.svg
== new-interval-end-negative-1.svg green-box-ref.svg
skip-if(B2G) == new-interval-end-negative-2.svg green-box-ref.svg # bug 773482
== new-interval-end-negative-2.svg green-box-ref.svg
== new-interval-end-dep-1.svg green-box-ref.svg
skip-if(B2G) == new-interval-chain-1.svg green-box-ref.svg # bug 773482
skip-if(B2G) == new-interval-chain-2.svg green-box-ref.svg # bug 773482
skip-if(B2G) == new-interval-sample-order-1.svg green-box-ref.svg
== new-interval-chain-1.svg green-box-ref.svg
== new-interval-chain-2.svg green-box-ref.svg
== new-interval-sample-order-1.svg green-box-ref.svg
== new-interval-freeze-begin-1.svg green-box-ref.svg
# Changing intervals
@ -37,12 +37,12 @@ skip-if(B2G) == new-interval-sample-order-1.svg green-box-ref.svg
== changed-interval-simple-3.svg green-box-ref.svg
== changed-interval-simple-4.svg green-box-ref.svg
== changed-interval-simple-5.svg green-box-ref.svg
skip-if(B2G) == changed-interval-resolved-1.svg green-box-ref.svg
skip-if(B2G) == changed-interval-resolved-2.svg green-box-ref.svg # bug 773482
== changed-interval-resolved-1.svg green-box-ref.svg
== changed-interval-resolved-2.svg green-box-ref.svg
== changed-interval-sort-1.svg green-box-ref.svg
skip-if(B2G) == changed-interval-change-spec-1.svg green-box-ref.svg # bug 773482
== changed-interval-change-spec-1.svg green-box-ref.svg
== changed-interval-change-spec-2.svg green-box-ref.svg
skip-if(B2G) == changed-interval-change-spec-3.svg green-box-ref.svg # bug 773482
== changed-interval-change-spec-3.svg green-box-ref.svg
== changed-interval-change-spec-4.svg green-box-ref.svg
# Deleted intervals
@ -56,39 +56,39 @@ skip-if(B2G) == changed-interval-change-spec-3.svg green-box-ref.svg # bug 77348
== trimmed-interval-1.svg green-box-ref.svg
# Cyclic dependencies
skip-if(B2G) == cycle-ok-1.svg green-box-ref.svg
skip-if(B2G) == cycle-ok-2.svg green-box-ref.svg
skip-if(B2G) == cycle-ok-3.svg green-box-ref.svg # bug 773482
skip-if(B2G) == cycle-ok-4.svg green-box-ref.svg
skip-if(B2G) == cycle-ok-5.svg green-box-ref.svg # bug 773482
skip-if(B2G) == cycle-self-ref-1.svg green-box-ref.svg
skip-if(B2G) == cycle-self-ref-2.svg green-box-ref.svg # bug 773482
skip-if(B2G) == cycle-self-ref-3.svg green-box-ref.svg
skip-if(B2G) == cycle-self-ref-4.svg green-box-ref.svg
skip-if(B2G) == cycle-self-ref-5.svg green-box-ref.svg
skip-if(B2G) == cycle-invalid-1.svg green-box-ref.svg
skip-if(B2G) == cycle-invalid-2.svg green-box-ref.svg # bug 773482
skip-if(B2G) == cycle-invalid-3.svg green-box-ref.svg # bug 773482
skip-if(B2G) == cycle-invalid-4.svg green-box-ref.svg
skip-if(B2G) == cycle-change-1.svg green-box-ref.svg
skip-if(B2G) == cycle-change-2.svg green-box-ref.svg
skip-if(B2G) == cycle-delete-1.svg green-box-ref.svg
skip-if(B2G) == cycle-recursion-1.svg green-box-ref.svg
skip-if(B2G) == cycle-recursion-2.svg green-box-ref.svg
== cycle-ok-1.svg green-box-ref.svg
== cycle-ok-2.svg green-box-ref.svg
== cycle-ok-3.svg green-box-ref.svg
== cycle-ok-4.svg green-box-ref.svg
== cycle-ok-5.svg green-box-ref.svg
== cycle-self-ref-1.svg green-box-ref.svg
== cycle-self-ref-2.svg green-box-ref.svg
== cycle-self-ref-3.svg green-box-ref.svg
== cycle-self-ref-4.svg green-box-ref.svg
== cycle-self-ref-5.svg green-box-ref.svg
== cycle-invalid-1.svg green-box-ref.svg
== cycle-invalid-2.svg green-box-ref.svg
== cycle-invalid-3.svg green-box-ref.svg
== cycle-invalid-4.svg green-box-ref.svg
== cycle-change-1.svg green-box-ref.svg
== cycle-change-2.svg green-box-ref.svg
== cycle-delete-1.svg green-box-ref.svg
== cycle-recursion-1.svg green-box-ref.svg
== cycle-recursion-2.svg green-box-ref.svg
# Animation sandwich priority
skip-if(B2G) == sandwich-priority-1.svg green-box-ref.svg # bug 773482
== sandwich-priority-1.svg green-box-ref.svg
== sandwich-priority-2.svg green-box-ref.svg
skip-if(B2G) == sandwich-priority-3.svg green-box-ref.svg # bug 773482
skip-if(B2G) == sandwich-priority-4.svg green-box-ref.svg # bug 773482
== sandwich-priority-3.svg green-box-ref.svg
== sandwich-priority-4.svg green-box-ref.svg
== sandwich-priority-5.svg green-box-ref.svg
skip-if(B2G) == sandwich-priority-6.svg green-box-ref.svg # bug 773482
skip-if(B2G) == sandwich-priority-7.svg green-box-ref.svg # bug 773482
skip-if(B2G) == sandwich-priority-8.svg green-box-ref.svg # bug 773482
skip-if(B2G) == sandwich-priority-9.svg green-box-ref.svg
== sandwich-priority-6.svg green-box-ref.svg
== sandwich-priority-7.svg green-box-ref.svg
== sandwich-priority-8.svg green-box-ref.svg
== sandwich-priority-9.svg green-box-ref.svg
== sandwich-priority-10.svg green-box-ref.svg
== sandwich-priority-11.svg green-box-ref.svg
skip-if(B2G) == sandwich-priority-12.svg green-box-ref.svg # bug 773482
== sandwich-priority-12.svg green-box-ref.svg
# Cross-time container dependencies
== cross-container-1.xhtml green-box-ref.xhtml

View File

@ -1,17 +1,17 @@
# Tests related to SVG Animation (using SMIL), focusing on the animateTransform
# element.
fuzzy(110,1058) random-if(Android&&AndroidVersion>=15) == additive-1.svg additive-1-ref.svg # bug 839865
fuzzy(110,1802) == additive-1.svg additive-1-ref.svg # bug 981344
== animate-width-1.svg lime.svg
fuzzy(155,4352) random-if(Android&&AndroidVersion>=15) == paced-1.svg paced-1-ref.svg # bug 839865
fuzzy(32,225) random-if(Android&&AndroidVersion>=15) == rotate-angle-1.svg rotate-angle-ref.svg # bug 839865
fuzzy(32,225) random-if(Android&&AndroidVersion>=15) == rotate-angle-2.svg rotate-angle-ref.svg # bug 839865
fuzzy(32,225) random-if(Android&&AndroidVersion>=15) == rotate-angle-3.svg rotate-angle-ref.svg # bug 839865
fuzzy(32,200) random-if(Android&&AndroidVersion>=15) == rotate-angle-4.svg rotate-angle-ref.svg # bug 839865
fuzzy(32,125) random-if(Android&&AndroidVersion>=15) == rotate-angle-5.svg rotate-angle-ref.svg # bug 839865
== paced-1.svg paced-1-ref.svg
== rotate-angle-1.svg rotate-angle-ref.svg
== rotate-angle-2.svg rotate-angle-ref.svg
== rotate-angle-3.svg rotate-angle-ref.svg
== rotate-angle-4.svg rotate-angle-ref.svg
== rotate-angle-5.svg rotate-angle-ref.svg
fuzzy(12,27) == scale-1.svg scale-1-ref.svg # bug 981004
== set-transform-1.svg lime.svg
fuzzy(132,15500) == skew-1.svg skew-1-ref.svg # bug 839865
random-if(Android&&!browserIsRemote) == translate-clipPath-1.svg lime.svg # bug 760266
== skew-1.svg skew-1-ref.svg
== translate-clipPath-1.svg lime.svg
fails-if(OSX==10.6) == translate-gradient-1.svg lime.svg
fuzzy-if(Android,8,200) == translate-pattern-1.svg lime.svg
== translate-pattern-1.svg lime.svg

View File

@ -1342,7 +1342,7 @@ Declaration::AddVariableDeclaration(const nsAString& aName,
break;
default:
MOZ_ASSERT("unexpected aType value");
MOZ_ASSERT(false, "unexpected aType value");
}
uint32_t propertyIndex = index + eCSSProperty_COUNT;

View File

@ -39,9 +39,5 @@ else:
if CONFIG['INTEL_ARCHITECTURE'] and CONFIG['OS_TARGET'] != 'Android':
DEFINES['_USE_SSE'] = True
DEFINES['_USE_SSE2'] = True
# Suppress warnings in third-party code.
if CONFIG['OS_TARGET'] == 'Darwin':
CFLAGS += ['-Wno-sign-compare']
if CONFIG['GNU_CC']:
SOURCES['resample.c'].flags += ['-msse2']

View File

@ -516,7 +516,8 @@ int NrSocket::sendto(const void *msg, size_t len,
sustained.getTokens(UINT32_MAX) < len) {
r_log(LOG_GENERIC, LOG_ERR,
"Global rate limit for STUN requests exceeded.");
MOZ_ASSERT("Global rate limit for STUN requests exceeded. Go bug "
MOZ_ASSERT(false,
"Global rate limit for STUN requests exceeded. Go bug "
"bcampen@mozilla.com if you weren't intentionally spamming "
"ICE candidates, or don't know what that means.");
ABORT(R_WOULDBLOCK);

View File

@ -101,6 +101,7 @@ LOCAL_INCLUDES += [
if CONFIG['NSS_DISABLE_DBM']:
DEFINES['NSS_DISABLE_DBM'] = '1'
DEFINES['SSL_DISABLE_DEPRECATED_CIPHER_SUITE_NAMES'] = 'True'
DEFINES['NSS_ENABLE_ECC'] = 'True'
for var in ('DLL_PREFIX', 'DLL_SUFFIX'):
DEFINES[var] = '"%s"' % CONFIG[var]

View File

@ -1096,12 +1096,12 @@ AccumulateCipherSuite(Telemetry::ID probe, const SSLChannelInfo& channelInfo)
case TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA: value = 22; break;
case TLS_DHE_RSA_WITH_AES_256_CBC_SHA: value = 23; break;
case TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA: value = 24; break;
case SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA: value = 25; break;
case TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA: value = 25; break;
case TLS_DHE_DSS_WITH_AES_128_CBC_SHA: value = 26; break;
case TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA: value = 27; break;
case TLS_DHE_DSS_WITH_AES_256_CBC_SHA: value = 28; break;
case TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA: value = 29; break;
case SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA: value = 30; break;
case TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA: value = 30; break;
// ECDH key exchange
case TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA: value = 41; break;
case TLS_ECDH_RSA_WITH_AES_128_CBC_SHA: value = 42; break;
@ -1117,10 +1117,10 @@ AccumulateCipherSuite(Telemetry::ID probe, const SSLChannelInfo& channelInfo)
case TLS_RSA_WITH_AES_256_CBC_SHA: value = 63; break;
case TLS_RSA_WITH_CAMELLIA_256_CBC_SHA: value = 64; break;
case SSL_RSA_FIPS_WITH_3DES_EDE_CBC_SHA: value = 65; break;
case SSL_RSA_WITH_3DES_EDE_CBC_SHA: value = 66; break;
case TLS_RSA_WITH_3DES_EDE_CBC_SHA: value = 66; break;
case TLS_RSA_WITH_SEED_CBC_SHA: value = 67; break;
case SSL_RSA_WITH_RC4_128_SHA: value = 68; break;
case SSL_RSA_WITH_RC4_128_MD5: value = 69; break;
case TLS_RSA_WITH_RC4_128_SHA: value = 68; break;
case TLS_RSA_WITH_RC4_128_MD5: value = 69; break;
// unknown
default:
value = 0;

View File

@ -809,7 +809,7 @@ static const CipherPref sCipherPrefs[] = {
TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA, true },
{ "security.ssl3.dhe_rsa_des_ede3_sha",
SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA, true }, // deprecated (3DES)
TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA, true }, // deprecated (3DES)
{ "security.ssl3.dhe_dss_aes_128_sha",
TLS_DHE_DSS_WITH_AES_128_CBC_SHA, true }, // deprecated (DSS)
@ -830,12 +830,12 @@ static const CipherPref sCipherPrefs[] = {
{ "security.ssl3.rsa_camellia_256_sha",
TLS_RSA_WITH_CAMELLIA_256_CBC_SHA, true }, // deprecated (RSA key exchange)
{ "security.ssl3.rsa_des_ede3_sha",
SSL_RSA_WITH_3DES_EDE_CBC_SHA, true }, // deprecated (RSA key exchange, 3DES)
TLS_RSA_WITH_3DES_EDE_CBC_SHA, true }, // deprecated (RSA key exchange, 3DES)
{ "security.ssl3.rsa_rc4_128_sha",
SSL_RSA_WITH_RC4_128_SHA, true }, // deprecated (RSA key exchange, RC4)
TLS_RSA_WITH_RC4_128_SHA, true }, // deprecated (RSA key exchange, RC4)
{ "security.ssl3.rsa_rc4_128_md5",
SSL_RSA_WITH_RC4_128_MD5, true }, // deprecated (RSA key exchange, RC4, HMAC-MD5)
TLS_RSA_WITH_RC4_128_MD5, true }, // deprecated (RSA key exchange, RC4, HMAC-MD5)
// All the rest are disabled by default

View File

@ -61,6 +61,9 @@ endif
ifdef BUILD_OPT
NSPR_CONFIGURE_OPTS += --disable-debug --enable-optimize
endif
ifdef USE_X32
NSPR_CONFIGURE_OPTS += --enable-x32
endif
ifdef USE_64
NSPR_CONFIGURE_OPTS += --enable-64bit
endif

View File

@ -1 +1 @@
NSS_3_16_BETA4
NSS_3_16_BETA5

View File

@ -777,7 +777,7 @@ loser:
if(tempname) {
PRFileInfo info;
if(PR_GetFileInfo(tempname, &info) == PR_SUCCESS) {
if((info.type == PR_FILE_DIRECTORY)) {
if(info.type == PR_FILE_DIRECTORY) {
/* Recursively remove temporary directory */
if(rm_dash_r(tempname)) {
error(PK11_INSTALL_REMOVE_DIR,

View File

@ -107,30 +107,30 @@ const int ssl2CipherSuites[] = {
const int ssl3CipherSuites[] = {
-1, /* SSL_FORTEZZA_DMS_WITH_FORTEZZA_CBC_SHA* a */
-1, /* SSL_FORTEZZA_DMS_WITH_RC4_128_SHA * b */
SSL_RSA_WITH_RC4_128_MD5, /* c */
SSL_RSA_WITH_3DES_EDE_CBC_SHA, /* d */
SSL_RSA_WITH_DES_CBC_SHA, /* e */
SSL_RSA_EXPORT_WITH_RC4_40_MD5, /* f */
SSL_RSA_EXPORT_WITH_RC2_CBC_40_MD5, /* g */
TLS_RSA_WITH_RC4_128_MD5, /* c */
TLS_RSA_WITH_3DES_EDE_CBC_SHA, /* d */
TLS_RSA_WITH_DES_CBC_SHA, /* e */
TLS_RSA_EXPORT_WITH_RC4_40_MD5, /* f */
TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5, /* g */
-1, /* SSL_FORTEZZA_DMS_WITH_NULL_SHA, * h */
SSL_RSA_WITH_NULL_MD5, /* i */
TLS_RSA_WITH_NULL_MD5, /* i */
SSL_RSA_FIPS_WITH_3DES_EDE_CBC_SHA, /* j */
SSL_RSA_FIPS_WITH_DES_CBC_SHA, /* k */
TLS_RSA_EXPORT1024_WITH_DES_CBC_SHA, /* l */
TLS_RSA_EXPORT1024_WITH_RC4_56_SHA, /* m */
SSL_RSA_WITH_RC4_128_SHA, /* n */
TLS_RSA_WITH_RC4_128_SHA, /* n */
-1, /* TLS_DHE_DSS_WITH_RC4_128_SHA, * o */
-1, /* SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA, * p */
-1, /* SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA, * q */
-1, /* SSL_DHE_RSA_WITH_DES_CBC_SHA, * r */
-1, /* SSL_DHE_DSS_WITH_DES_CBC_SHA, * s */
-1, /* TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA, * p */
-1, /* TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA, * q */
-1, /* TLS_DHE_RSA_WITH_DES_CBC_SHA, * r */
-1, /* TLS_DHE_DSS_WITH_DES_CBC_SHA, * s */
-1, /* TLS_DHE_DSS_WITH_AES_128_CBC_SHA, * t */
-1, /* TLS_DHE_RSA_WITH_AES_128_CBC_SHA, * u */
TLS_RSA_WITH_AES_128_CBC_SHA, /* v */
-1, /* TLS_DHE_DSS_WITH_AES_256_CBC_SHA, * w */
-1, /* TLS_DHE_RSA_WITH_AES_256_CBC_SHA, * x */
TLS_RSA_WITH_AES_256_CBC_SHA, /* y */
SSL_RSA_WITH_NULL_SHA, /* z */
TLS_RSA_WITH_NULL_SHA, /* z */
0
};
@ -1932,9 +1932,9 @@ server_main(
* would like it to be. Turn this cipher on.
*/
secStatus = SSL_CipherPrefSetDefault( SSL_RSA_WITH_NULL_MD5, PR_TRUE);
secStatus = SSL_CipherPrefSetDefault( TLS_RSA_WITH_NULL_MD5, PR_TRUE);
if ( secStatus != SECSuccess ) {
errExit("SSL_CipherPrefSetDefault:SSL_RSA_WITH_NULL_MD5");
errExit("SSL_CipherPrefSetDefault:TLS_RSA_WITH_NULL_MD5");
}
if (expectedHostNameVal) {

View File

@ -493,13 +493,13 @@ const char * helloExtensionNameString(int ex_num)
static int isNULLmac(int cs_int)
{
return (cs_int == SSL_NULL_WITH_NULL_NULL);
return (cs_int == TLS_NULL_WITH_NULL_NULL);
}
static int isNULLcipher(int cs_int)
{
return ((cs_int == SSL_RSA_WITH_NULL_MD5) ||
(cs_int == SSL_RSA_WITH_NULL_SHA) ||
return ((cs_int == TLS_RSA_WITH_NULL_MD5) ||
(cs_int == TLS_RSA_WITH_NULL_SHA) ||
(cs_int == SSL_FORTEZZA_DMS_WITH_NULL_SHA) ||
(cs_int == TLS_ECDH_ECDSA_WITH_NULL_SHA) ||
(cs_int == TLS_ECDHE_ECDSA_WITH_NULL_SHA) ||

View File

@ -59,30 +59,30 @@ int ssl2CipherSuites[] = {
int ssl3CipherSuites[] = {
-1, /* SSL_FORTEZZA_DMS_WITH_FORTEZZA_CBC_SHA* a */
-1, /* SSL_FORTEZZA_DMS_WITH_RC4_128_SHA * b */
SSL_RSA_WITH_RC4_128_MD5, /* c */
SSL_RSA_WITH_3DES_EDE_CBC_SHA, /* d */
SSL_RSA_WITH_DES_CBC_SHA, /* e */
SSL_RSA_EXPORT_WITH_RC4_40_MD5, /* f */
SSL_RSA_EXPORT_WITH_RC2_CBC_40_MD5, /* g */
TLS_RSA_WITH_RC4_128_MD5, /* c */
TLS_RSA_WITH_3DES_EDE_CBC_SHA, /* d */
TLS_RSA_WITH_DES_CBC_SHA, /* e */
TLS_RSA_EXPORT_WITH_RC4_40_MD5, /* f */
TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5, /* g */
-1, /* SSL_FORTEZZA_DMS_WITH_NULL_SHA * h */
SSL_RSA_WITH_NULL_MD5, /* i */
TLS_RSA_WITH_NULL_MD5, /* i */
SSL_RSA_FIPS_WITH_3DES_EDE_CBC_SHA, /* j */
SSL_RSA_FIPS_WITH_DES_CBC_SHA, /* k */
TLS_RSA_EXPORT1024_WITH_DES_CBC_SHA, /* l */
TLS_RSA_EXPORT1024_WITH_RC4_56_SHA, /* m */
SSL_RSA_WITH_RC4_128_SHA, /* n */
TLS_RSA_WITH_RC4_128_SHA, /* n */
TLS_DHE_DSS_WITH_RC4_128_SHA, /* o */
SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA, /* p */
SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA, /* q */
SSL_DHE_RSA_WITH_DES_CBC_SHA, /* r */
SSL_DHE_DSS_WITH_DES_CBC_SHA, /* s */
TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA, /* p */
TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA, /* q */
TLS_DHE_RSA_WITH_DES_CBC_SHA, /* r */
TLS_DHE_DSS_WITH_DES_CBC_SHA, /* s */
TLS_DHE_DSS_WITH_AES_128_CBC_SHA, /* t */
TLS_DHE_RSA_WITH_AES_128_CBC_SHA, /* u */
TLS_RSA_WITH_AES_128_CBC_SHA, /* v */
TLS_DHE_DSS_WITH_AES_256_CBC_SHA, /* w */
TLS_DHE_RSA_WITH_AES_256_CBC_SHA, /* x */
TLS_RSA_WITH_AES_256_CBC_SHA, /* y */
SSL_RSA_WITH_NULL_SHA, /* z */
TLS_RSA_WITH_NULL_SHA, /* z */
0
};

View File

@ -68,30 +68,30 @@ int ssl2CipherSuites[] = {
int ssl3CipherSuites[] = {
-1, /* SSL_FORTEZZA_DMS_WITH_FORTEZZA_CBC_SHA* a */
-1, /* SSL_FORTEZZA_DMS_WITH_RC4_128_SHA, * b */
SSL_RSA_WITH_RC4_128_MD5, /* c */
SSL_RSA_WITH_3DES_EDE_CBC_SHA, /* d */
SSL_RSA_WITH_DES_CBC_SHA, /* e */
SSL_RSA_EXPORT_WITH_RC4_40_MD5, /* f */
SSL_RSA_EXPORT_WITH_RC2_CBC_40_MD5, /* g */
TLS_RSA_WITH_RC4_128_MD5, /* c */
TLS_RSA_WITH_3DES_EDE_CBC_SHA, /* d */
TLS_RSA_WITH_DES_CBC_SHA, /* e */
TLS_RSA_EXPORT_WITH_RC4_40_MD5, /* f */
TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5, /* g */
-1, /* SSL_FORTEZZA_DMS_WITH_NULL_SHA, * h */
SSL_RSA_WITH_NULL_MD5, /* i */
TLS_RSA_WITH_NULL_MD5, /* i */
SSL_RSA_FIPS_WITH_3DES_EDE_CBC_SHA, /* j */
SSL_RSA_FIPS_WITH_DES_CBC_SHA, /* k */
TLS_RSA_EXPORT1024_WITH_DES_CBC_SHA, /* l */
TLS_RSA_EXPORT1024_WITH_RC4_56_SHA, /* m */
SSL_RSA_WITH_RC4_128_SHA, /* n */
TLS_RSA_WITH_RC4_128_SHA, /* n */
TLS_DHE_DSS_WITH_RC4_128_SHA, /* o */
SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA, /* p */
SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA, /* q */
SSL_DHE_RSA_WITH_DES_CBC_SHA, /* r */
SSL_DHE_DSS_WITH_DES_CBC_SHA, /* s */
TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA, /* p */
TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA, /* q */
TLS_DHE_RSA_WITH_DES_CBC_SHA, /* r */
TLS_DHE_DSS_WITH_DES_CBC_SHA, /* s */
TLS_DHE_DSS_WITH_AES_128_CBC_SHA, /* t */
TLS_DHE_RSA_WITH_AES_128_CBC_SHA, /* u */
TLS_RSA_WITH_AES_128_CBC_SHA, /* v */
TLS_DHE_DSS_WITH_AES_256_CBC_SHA, /* w */
TLS_DHE_RSA_WITH_AES_256_CBC_SHA, /* x */
TLS_RSA_WITH_AES_256_CBC_SHA, /* y */
SSL_RSA_WITH_NULL_SHA, /* z */
TLS_RSA_WITH_NULL_SHA, /* z */
0
};

View File

@ -497,7 +497,7 @@ main(int argc, char **argv)
/* All cipher suites except RSA_NULL_MD5 are enabled by
* Domestic Policy. */
NSS_SetDomesticPolicy();
SSL_CipherPrefSetDefault(SSL_RSA_WITH_NULL_MD5, PR_TRUE);
SSL_CipherPrefSetDefault(TLS_RSA_WITH_NULL_MD5, PR_TRUE);
/* all the SSL2 and SSL3 cipher suites are enabled by default. */
if (cipherString) {

View File

@ -27,30 +27,30 @@ int ssl2CipherSuites[] = {
int ssl3CipherSuites[] = {
-1, /* SSL_FORTEZZA_DMS_WITH_FORTEZZA_CBC_SHA* a */
-1, /* SSL_FORTEZZA_DMS_WITH_RC4_128_SHA, * b */
SSL_RSA_WITH_RC4_128_MD5, /* c */
SSL_RSA_WITH_3DES_EDE_CBC_SHA, /* d */
SSL_RSA_WITH_DES_CBC_SHA, /* e */
SSL_RSA_EXPORT_WITH_RC4_40_MD5, /* f */
SSL_RSA_EXPORT_WITH_RC2_CBC_40_MD5, /* g */
TLS_RSA_WITH_RC4_128_MD5, /* c */
TLS_RSA_WITH_3DES_EDE_CBC_SHA, /* d */
TLS_RSA_WITH_DES_CBC_SHA, /* e */
TLS_RSA_EXPORT_WITH_RC4_40_MD5, /* f */
TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5, /* g */
-1, /* SSL_FORTEZZA_DMS_WITH_NULL_SHA, * h */
SSL_RSA_WITH_NULL_MD5, /* i */
TLS_RSA_WITH_NULL_MD5, /* i */
SSL_RSA_FIPS_WITH_3DES_EDE_CBC_SHA, /* j */
SSL_RSA_FIPS_WITH_DES_CBC_SHA, /* k */
TLS_RSA_EXPORT1024_WITH_DES_CBC_SHA, /* l */
TLS_RSA_EXPORT1024_WITH_RC4_56_SHA, /* m */
SSL_RSA_WITH_RC4_128_SHA, /* n */
TLS_RSA_WITH_RC4_128_SHA, /* n */
TLS_DHE_DSS_WITH_RC4_128_SHA, /* o */
SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA, /* p */
SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA, /* q */
SSL_DHE_RSA_WITH_DES_CBC_SHA, /* r */
SSL_DHE_DSS_WITH_DES_CBC_SHA, /* s */
TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA, /* p */
TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA, /* q */
TLS_DHE_RSA_WITH_DES_CBC_SHA, /* r */
TLS_DHE_DSS_WITH_DES_CBC_SHA, /* s */
TLS_DHE_DSS_WITH_AES_128_CBC_SHA, /* t */
TLS_DHE_RSA_WITH_AES_128_CBC_SHA, /* u */
TLS_RSA_WITH_AES_128_CBC_SHA, /* v */
TLS_DHE_DSS_WITH_AES_256_CBC_SHA, /* w */
TLS_DHE_RSA_WITH_AES_256_CBC_SHA, /* x */
TLS_RSA_WITH_AES_256_CBC_SHA, /* y */
SSL_RSA_WITH_NULL_SHA, /* z */
TLS_RSA_WITH_NULL_SHA, /* z */
0
};

View File

@ -55,11 +55,18 @@ else
ifeq ($(OS_TEST),x86_64)
ifeq ($(USE_64),1)
CPU_ARCH = x86_64
ARCHFLAG = -m64
else
ifeq ($(USE_X32),1)
CPU_ARCH = x86_64
ARCHFLAG = -mx32
64BIT_TAG = _x32
else
OS_REL_CFLAGS = -Di386
CPU_ARCH = x86
ARCHFLAG = -m32
endif
endif
else
ifeq ($(OS_TEST),sparc64)
CPU_ARCH = sparc
@ -123,12 +130,7 @@ ifeq ($(USE_PTHREADS),1)
OS_PTHREAD = -lpthread
endif
# See bug 537829, in particular comment 23.
# Place -ansi and *_SOURCE before $(DSO_CFLAGS) so DSO_CFLAGS can override
# -ansi on platforms like Android where the system headers are C99 and do
# not build with -ansi.
STANDARDS_CFLAGS = -D_POSIX_SOURCE -D_BSD_SOURCE -D_XOPEN_SOURCE
OS_CFLAGS = $(STANDARDS_CFLAGS) $(DSO_CFLAGS) $(OS_REL_CFLAGS) $(ARCHFLAG) -Wall -Werror-implicit-function-declaration -Wno-switch -pipe -DLINUX -Dlinux -DHAVE_STRERROR
OS_CFLAGS = $(DSO_CFLAGS) $(OS_REL_CFLAGS) $(ARCHFLAG) -Wall -Werror-implicit-function-declaration -Wno-switch -pipe -DLINUX -Dlinux -DHAVE_STRERROR
OS_LIBS = $(OS_PTHREAD) -ldl -lc
ifdef USE_PTHREADS

View File

@ -185,3 +185,6 @@ USE_UTIL_DIRECTLY = 1
# Build with NO_NSPR_10_SUPPORT to avoid using obsolete NSPR features
DEFINES += -DNO_NSPR_10_SUPPORT
# Hide old, deprecated, TLS cipher suite names when building NSS
DEFINES += -DSSL_DISABLE_DEPRECATED_CIPHER_SUITE_NAMES

View File

@ -10,3 +10,4 @@
*/
#error "Do not include this header file."

View File

@ -1394,8 +1394,8 @@ cert_TestHostName(char * cn, const char * hn)
* - must not be preceded by an IDNA ACE prefix (xn--)
*/
if (wildcard && secondcndot && secondcndot[1] && firsthndot
&& firstcndot - wildcard == 1 /* no chars between * and . */
&& secondcndot - firstcndot > 1 /* not .. */
&& firstcndot - wildcard == 1 /* wildcard is last char in first component */
&& secondcndot - firstcndot > 1 /* second component is non-empty */
&& PORT_Strrchr(cn, '*') == wildcard /* only one wildcard in cn */
&& !PORT_Strncasecmp(cn, hn, wildcard - cn)
&& !PORT_Strcasecmp(firstcndot, firsthndot)

View File

@ -607,7 +607,7 @@ CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR
CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR
CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE
# Distrust "Distrust a pb.com certificate that does not comply with the baseline requirements.""
# Distrust "Distrust a pb.com certificate that does not comply with the baseline requirements."
# Issuer: OU=Equifax Secure Certificate Authority,O=Equifax,C=US
# Serial Number: 1407252 (0x157914)
# Subject: CN=*.pb.com,OU=Meters,O=Pitney Bowes,L=Danbury,ST=Connecticut,C=US
@ -619,7 +619,7 @@ CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST
CKA_TOKEN CK_BBOOL CK_TRUE
CKA_PRIVATE CK_BBOOL CK_FALSE
CKA_MODIFIABLE CK_BBOOL CK_FALSE
CKA_LABEL UTF8 "Distrust a pb.com certificate that does not comply with the baseline requirements.""
CKA_LABEL UTF8 "Distrust a pb.com certificate that does not comply with the baseline requirements."
CKA_ISSUER MULTILINE_OCTAL
\060\116\061\013\060\011\006\003\125\004\006\023\002\125\123\061
\020\060\016\006\003\125\004\012\023\007\105\161\165\151\146\141

View File

@ -45,7 +45,11 @@ typedef PRUintn uint;
#endif
typedef PRUint8 uint8;
typedef PRUint16 uint16;
/* On AIX 5.2, sys/inttypes.h (which is included by sys/types.h)
* defines the types int8, int16, int32, and int64. */
#if !defined(AIX)
typedef PRInt32 int32;
#endif
typedef PRUint32 uint32;
#include <limits.h>

View File

@ -95,7 +95,7 @@ endif
# NSS_X86_OR_X64 means the target is either x86 or x64
ifeq (,$(filter-out i386 x386 x86 x86_64,$(CPU_ARCH)))
DEFINES += -DNSS_X86_OR_X64
ifdef USE_64
ifneq (,$(USE_64)$(USE_X32))
DEFINES += -DNSS_X64
else
DEFINES += -DNSS_X86
@ -180,7 +180,7 @@ endif # Darwin
ifeq ($(OS_TARGET),Linux)
ifeq ($(CPU_ARCH),x86_64)
ASFILES = arcfour-amd64-gas.s mpi_amd64_gas.s
ASFLAGS += -m64 -fPIC -Wa,--noexecstack
ASFLAGS += -fPIC -Wa,--noexecstack
DEFINES += -DNSS_BEVAND_ARCFOUR -DMPI_AMD64 -DMP_ASSEMBLY_MULTIPLY
DEFINES += -DNSS_USE_COMBA
DEFINES += -DMP_CHAR_STORE_SLOW -DMP_IS_LITTLE_ENDIAN

View File

@ -30,7 +30,7 @@
#define USE_WORD
#endif
#if (defined(IS_64))
#if defined(IS_64) || defined(NSS_BEVAND_ARCFOUR)
typedef PRUint64 WORD;
#else
typedef PRUint32 WORD;

View File

@ -56,11 +56,11 @@ typedef int mp_err;
#error "USHRT_MAX not defined"
#endif
#if defined(ULONG_LONG_MAX) /* GCC, HPUX */
#define MP_ULONG_LONG_MAX ULONG_LONG_MAX
#elif defined(ULLONG_MAX) /* Solaris */
#if defined(ULLONG_MAX) /* C99, Solaris */
#define MP_ULONG_LONG_MAX ULLONG_MAX
/* MP_ULONG_LONG_MAX was defined to be ULLONG_MAX */
#elif defined(ULONG_LONG_MAX) /* HPUX */
#define MP_ULONG_LONG_MAX ULONG_LONG_MAX
#elif defined(ULONGLONG_MAX) /* IRIX, AIX */
#define MP_ULONG_LONG_MAX ULONGLONG_MAX
#endif

View File

@ -1515,7 +1515,7 @@ typedef enum PKIX_PL_TrustAnchorModeEnum {
* explicitly untrustworthy, explicitly configured trust anchors
* MAY be ignored/rejected.
*/
PKIX_PL_TrustAnchorMode_Exclusive,
PKIX_PL_TrustAnchorMode_Exclusive
} PKIX_PL_TrustAnchorMode;
/*

View File

@ -772,7 +772,8 @@ PK11_GetPBECryptoMechanism(SECAlgorithmID *algid,
**********************************************************************/
PK11DefaultArrayEntry *PK11_GetDefaultArray(int *size);
SECStatus PK11_UpdateSlotAttribute(PK11SlotInfo *slot,
PK11DefaultArrayEntry *entry, PRBool add);
const PK11DefaultArrayEntry *entry,
PRBool add);
/**********************************************************************
* Functions to look at PKCS #11 dependent data

View File

@ -948,9 +948,10 @@ PK11_LoadSlotList(PK11SlotInfo *slot, PK11PreSlotInfo *psi, int count)
* returns: SECSuccess if nothing to do or add/delete is successful
*/
SECStatus
PK11_UpdateSlotAttribute(PK11SlotInfo *slot, PK11DefaultArrayEntry *entry,
PRBool add)
/* add: PR_TRUE if want to turn on */
PK11_UpdateSlotAttribute(PK11SlotInfo *slot,
const PK11DefaultArrayEntry *entry,
PRBool add)
/* add: PR_TRUE if want to turn on */
{
SECStatus result = SECSuccess;
PK11SlotList *slotList = PK11_GetSlotList(entry->mechanism);

View File

@ -634,7 +634,7 @@ SSL_CanBypass(CERTCertificate *cert, SECKEYPrivateKey *srvPrivkey,
rv = SECFailure;
/* determine which KEAs to test */
/* 0 (SSL_NULL_WITH_NULL_NULL) is used as a list terminator because
/* 0 (TLS_NULL_WITH_NULL_NULL) is used as a list terminator because
* SSL3 and TLS specs forbid negotiating that cipher suite number.
*/
for (i=0; i < nsuites && (suite = *ciphersuites++) != 0; i++) {
@ -647,8 +647,8 @@ SSL_CanBypass(CERTCertificate *cert, SECKEYPrivateKey *srvPrivkey,
switch (csdef.cipherSuite) {
case TLS_RSA_EXPORT1024_WITH_RC4_56_SHA:
case TLS_RSA_EXPORT1024_WITH_DES_CBC_SHA:
case SSL_RSA_EXPORT_WITH_RC4_40_MD5:
case SSL_RSA_EXPORT_WITH_RC2_CBC_40_MD5:
case TLS_RSA_EXPORT_WITH_RC4_40_MD5:
case TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5:
testrsa_export = PR_TRUE;
}
if (!testrsa_export)

View File

@ -39,10 +39,10 @@ static const ssl3CipherSuite nonDTLSSuites[] = {
TLS_ECDH_RSA_WITH_RC4_128_SHA,
TLS_ECDH_ECDSA_WITH_RC4_128_SHA,
#endif /* NSS_DISABLE_ECC */
SSL_RSA_WITH_RC4_128_MD5,
SSL_RSA_WITH_RC4_128_SHA,
TLS_RSA_WITH_RC4_128_MD5,
TLS_RSA_WITH_RC4_128_SHA,
TLS_RSA_EXPORT1024_WITH_RC4_56_SHA,
SSL_RSA_EXPORT_WITH_RC4_40_MD5,
TLS_RSA_EXPORT_WITH_RC4_40_MD5,
0 /* End of list marker */
};

View File

@ -118,8 +118,8 @@ static ssl3CipherSuiteCfg cipherSuites[ssl_V3_SUITES_IMPLEMENTED] = {
{ TLS_DHE_RSA_WITH_AES_256_CBC_SHA256, SSL_ALLOWED, PR_TRUE, PR_FALSE},
{ TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA, SSL_ALLOWED, PR_FALSE, PR_FALSE},
{ TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA, SSL_ALLOWED, PR_FALSE, PR_FALSE},
{ SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA, SSL_ALLOWED, PR_TRUE, PR_FALSE},
{ SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA, SSL_ALLOWED, PR_TRUE, PR_FALSE},
{ TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA, SSL_ALLOWED, PR_TRUE, PR_FALSE},
{ TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA, SSL_ALLOWED, PR_TRUE, PR_FALSE},
{ TLS_DHE_DSS_WITH_RC4_128_SHA, SSL_ALLOWED, PR_FALSE, PR_FALSE},
#ifndef NSS_DISABLE_ECC
@ -143,23 +143,23 @@ static ssl3CipherSuiteCfg cipherSuites[ssl_V3_SUITES_IMPLEMENTED] = {
{ TLS_RSA_WITH_CAMELLIA_256_CBC_SHA, SSL_ALLOWED, PR_FALSE, PR_FALSE},
{ TLS_RSA_WITH_SEED_CBC_SHA, SSL_ALLOWED, PR_FALSE, PR_FALSE},
{ SSL_RSA_FIPS_WITH_3DES_EDE_CBC_SHA, SSL_ALLOWED, PR_FALSE, PR_FALSE},
{ SSL_RSA_WITH_3DES_EDE_CBC_SHA, SSL_ALLOWED, PR_TRUE, PR_FALSE},
{ SSL_RSA_WITH_RC4_128_SHA, SSL_ALLOWED, PR_TRUE, PR_FALSE},
{ SSL_RSA_WITH_RC4_128_MD5, SSL_ALLOWED, PR_TRUE, PR_FALSE},
{ TLS_RSA_WITH_3DES_EDE_CBC_SHA, SSL_ALLOWED, PR_TRUE, PR_FALSE},
{ TLS_RSA_WITH_RC4_128_SHA, SSL_ALLOWED, PR_TRUE, PR_FALSE},
{ TLS_RSA_WITH_RC4_128_MD5, SSL_ALLOWED, PR_TRUE, PR_FALSE},
/* 56-bit DES "domestic" cipher suites */
{ SSL_DHE_RSA_WITH_DES_CBC_SHA, SSL_ALLOWED, PR_FALSE, PR_FALSE},
{ SSL_DHE_DSS_WITH_DES_CBC_SHA, SSL_ALLOWED, PR_FALSE, PR_FALSE},
{ TLS_DHE_RSA_WITH_DES_CBC_SHA, SSL_ALLOWED, PR_FALSE, PR_FALSE},
{ TLS_DHE_DSS_WITH_DES_CBC_SHA, SSL_ALLOWED, PR_FALSE, PR_FALSE},
{ SSL_RSA_FIPS_WITH_DES_CBC_SHA, SSL_ALLOWED, PR_FALSE, PR_FALSE},
{ SSL_RSA_WITH_DES_CBC_SHA, SSL_ALLOWED, PR_FALSE, PR_FALSE},
{ TLS_RSA_WITH_DES_CBC_SHA, SSL_ALLOWED, PR_FALSE, PR_FALSE},
/* export ciphersuites with 1024-bit public key exchange keys */
{ TLS_RSA_EXPORT1024_WITH_RC4_56_SHA, SSL_ALLOWED, PR_FALSE, PR_FALSE},
{ TLS_RSA_EXPORT1024_WITH_DES_CBC_SHA, SSL_ALLOWED, PR_FALSE, PR_FALSE},
/* export ciphersuites with 512-bit public key exchange keys */
{ SSL_RSA_EXPORT_WITH_RC4_40_MD5, SSL_ALLOWED, PR_FALSE, PR_FALSE},
{ SSL_RSA_EXPORT_WITH_RC2_CBC_40_MD5, SSL_ALLOWED, PR_FALSE, PR_FALSE},
{ TLS_RSA_EXPORT_WITH_RC4_40_MD5, SSL_ALLOWED, PR_FALSE, PR_FALSE},
{ TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5, SSL_ALLOWED, PR_FALSE, PR_FALSE},
/* ciphersuites with no encryption */
#ifndef NSS_DISABLE_ECC
@ -168,9 +168,9 @@ static ssl3CipherSuiteCfg cipherSuites[ssl_V3_SUITES_IMPLEMENTED] = {
{ TLS_ECDH_RSA_WITH_NULL_SHA, SSL_ALLOWED, PR_FALSE, PR_FALSE},
{ TLS_ECDH_ECDSA_WITH_NULL_SHA, SSL_ALLOWED, PR_FALSE, PR_FALSE},
#endif /* NSS_DISABLE_ECC */
{ SSL_RSA_WITH_NULL_SHA, SSL_ALLOWED, PR_FALSE, PR_FALSE},
{ TLS_RSA_WITH_NULL_SHA, SSL_ALLOWED, PR_FALSE, PR_FALSE},
{ TLS_RSA_WITH_NULL_SHA256, SSL_ALLOWED, PR_FALSE, PR_FALSE},
{ SSL_RSA_WITH_NULL_MD5, SSL_ALLOWED, PR_FALSE, PR_FALSE},
{ TLS_RSA_WITH_NULL_MD5, SSL_ALLOWED, PR_FALSE, PR_FALSE},
};
/* Verify that SSL_ImplementedCiphers and cipherSuites are in consistent order.
@ -313,49 +313,49 @@ static const ssl3CipherSuiteDef cipher_suite_defs[] =
{
/* cipher_suite bulk_cipher_alg mac_alg key_exchange_alg */
{SSL_NULL_WITH_NULL_NULL, cipher_null, mac_null, kea_null},
{SSL_RSA_WITH_NULL_MD5, cipher_null, mac_md5, kea_rsa},
{SSL_RSA_WITH_NULL_SHA, cipher_null, mac_sha, kea_rsa},
{TLS_NULL_WITH_NULL_NULL, cipher_null, mac_null, kea_null},
{TLS_RSA_WITH_NULL_MD5, cipher_null, mac_md5, kea_rsa},
{TLS_RSA_WITH_NULL_SHA, cipher_null, mac_sha, kea_rsa},
{TLS_RSA_WITH_NULL_SHA256, cipher_null, hmac_sha256, kea_rsa},
{SSL_RSA_EXPORT_WITH_RC4_40_MD5,cipher_rc4_40, mac_md5, kea_rsa_export},
{SSL_RSA_WITH_RC4_128_MD5, cipher_rc4, mac_md5, kea_rsa},
{SSL_RSA_WITH_RC4_128_SHA, cipher_rc4, mac_sha, kea_rsa},
{SSL_RSA_EXPORT_WITH_RC2_CBC_40_MD5,
{TLS_RSA_EXPORT_WITH_RC4_40_MD5,cipher_rc4_40, mac_md5, kea_rsa_export},
{TLS_RSA_WITH_RC4_128_MD5, cipher_rc4, mac_md5, kea_rsa},
{TLS_RSA_WITH_RC4_128_SHA, cipher_rc4, mac_sha, kea_rsa},
{TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5,
cipher_rc2_40, mac_md5, kea_rsa_export},
#if 0 /* not implemented */
{SSL_RSA_WITH_IDEA_CBC_SHA, cipher_idea, mac_sha, kea_rsa},
{SSL_RSA_EXPORT_WITH_DES40_CBC_SHA,
{TLS_RSA_WITH_IDEA_CBC_SHA, cipher_idea, mac_sha, kea_rsa},
{TLS_RSA_EXPORT_WITH_DES40_CBC_SHA,
cipher_des40, mac_sha, kea_rsa_export},
#endif
{SSL_RSA_WITH_DES_CBC_SHA, cipher_des, mac_sha, kea_rsa},
{SSL_RSA_WITH_3DES_EDE_CBC_SHA, cipher_3des, mac_sha, kea_rsa},
{SSL_DHE_DSS_WITH_DES_CBC_SHA, cipher_des, mac_sha, kea_dhe_dss},
{SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA,
{TLS_RSA_WITH_DES_CBC_SHA, cipher_des, mac_sha, kea_rsa},
{TLS_RSA_WITH_3DES_EDE_CBC_SHA, cipher_3des, mac_sha, kea_rsa},
{TLS_DHE_DSS_WITH_DES_CBC_SHA, cipher_des, mac_sha, kea_dhe_dss},
{TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA,
cipher_3des, mac_sha, kea_dhe_dss},
{TLS_DHE_DSS_WITH_RC4_128_SHA, cipher_rc4, mac_sha, kea_dhe_dss},
#if 0 /* not implemented */
{SSL_DH_DSS_EXPORT_WITH_DES40_CBC_SHA,
{TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA,
cipher_des40, mac_sha, kea_dh_dss_export},
{SSL_DH_DSS_DES_CBC_SHA, cipher_des, mac_sha, kea_dh_dss},
{SSL_DH_DSS_3DES_CBC_SHA, cipher_3des, mac_sha, kea_dh_dss},
{SSL_DH_RSA_EXPORT_WITH_DES40_CBC_SHA,
{TLS_DH_DSS_DES_CBC_SHA, cipher_des, mac_sha, kea_dh_dss},
{TLS_DH_DSS_3DES_CBC_SHA, cipher_3des, mac_sha, kea_dh_dss},
{TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA,
cipher_des40, mac_sha, kea_dh_rsa_export},
{SSL_DH_RSA_DES_CBC_SHA, cipher_des, mac_sha, kea_dh_rsa},
{SSL_DH_RSA_3DES_CBC_SHA, cipher_3des, mac_sha, kea_dh_rsa},
{SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA,
{TLS_DH_RSA_DES_CBC_SHA, cipher_des, mac_sha, kea_dh_rsa},
{TLS_DH_RSA_3DES_CBC_SHA, cipher_3des, mac_sha, kea_dh_rsa},
{TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA,
cipher_des40, mac_sha, kea_dh_dss_export},
{SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA,
{TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA,
cipher_des40, mac_sha, kea_dh_rsa_export},
#endif
{SSL_DHE_RSA_WITH_DES_CBC_SHA, cipher_des, mac_sha, kea_dhe_rsa},
{SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA,
{TLS_DHE_RSA_WITH_DES_CBC_SHA, cipher_des, mac_sha, kea_dhe_rsa},
{TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA,
cipher_3des, mac_sha, kea_dhe_rsa},
#if 0
{SSL_DH_ANON_EXPORT_RC4_40_MD5, cipher_rc4_40, mac_md5, kea_dh_anon_export},
{SSL_DH_ANON_EXPORT_WITH_DES40_CBC_SHA,
{TLS_DH_anon_EXPORT_WITH_DES40_CBC_SHA,
cipher_des40, mac_sha, kea_dh_anon_export},
{SSL_DH_ANON_DES_CBC_SHA, cipher_des, mac_sha, kea_dh_anon},
{SSL_DH_ANON_3DES_CBC_SHA, cipher_3des, mac_sha, kea_dh_anon},
{TLS_DH_anon_WITH_DES_CBC_SHA, cipher_des, mac_sha, kea_dh_anon},
{TLS_DH_anon_WITH_3DES_CBC_SHA, cipher_3des, mac_sha, kea_dh_anon},
#endif
@ -373,10 +373,10 @@ static const ssl3CipherSuiteDef cipher_suite_defs[] =
#if 0
{TLS_DH_DSS_WITH_AES_128_CBC_SHA, cipher_aes_128, mac_sha, kea_dh_dss},
{TLS_DH_RSA_WITH_AES_128_CBC_SHA, cipher_aes_128, mac_sha, kea_dh_rsa},
{TLS_DH_ANON_WITH_AES_128_CBC_SHA, cipher_aes_128, mac_sha, kea_dh_anon},
{TLS_DH_anon_WITH_AES_128_CBC_SHA, cipher_aes_128, mac_sha, kea_dh_anon},
{TLS_DH_DSS_WITH_AES_256_CBC_SHA, cipher_aes_256, mac_sha, kea_dh_dss},
{TLS_DH_RSA_WITH_AES_256_CBC_SHA, cipher_aes_256, mac_sha, kea_dh_rsa},
{TLS_DH_ANON_WITH_AES_256_CBC_SHA, cipher_aes_256, mac_sha, kea_dh_anon},
{TLS_DH_anon_WITH_AES_256_CBC_SHA, cipher_aes_256, mac_sha, kea_dh_anon},
#endif
{TLS_RSA_WITH_SEED_CBC_SHA, cipher_seed, mac_sha, kea_rsa},
@ -622,15 +622,15 @@ ssl3_CipherSuiteAllowedForVersionRange(
* later. This set of cipher suites is similar to, but different from, the
* set of cipher suites considered exportable by SSL_IsExportCipherSuite.
*/
case SSL_RSA_EXPORT_WITH_RC4_40_MD5:
case SSL_RSA_EXPORT_WITH_RC2_CBC_40_MD5:
/* SSL_RSA_EXPORT_WITH_DES40_CBC_SHA: never implemented
* SSL_DH_DSS_EXPORT_WITH_DES40_CBC_SHA: never implemented
* SSL_DH_RSA_EXPORT_WITH_DES40_CBC_SHA: never implemented
* SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA: never implemented
* SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA: never implemented
* SSL_DH_ANON_EXPORT_WITH_RC4_40_MD5: never implemented
* SSL_DH_ANON_EXPORT_WITH_DES40_CBC_SHA: never implemented
case TLS_RSA_EXPORT_WITH_RC4_40_MD5:
case TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5:
/* TLS_RSA_EXPORT_WITH_DES40_CBC_SHA: never implemented
* TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA: never implemented
* TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA: never implemented
* TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA: never implemented
* TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA: never implemented
* TLS_DH_anon_EXPORT_WITH_RC4_40_MD5: never implemented
* TLS_DH_anon_EXPORT_WITH_DES40_CBC_SHA: never implemented
*/
return vrange->min <= SSL_LIBRARY_VERSION_TLS_1_0;
case TLS_DHE_RSA_WITH_AES_256_CBC_SHA256:
@ -9409,17 +9409,21 @@ ssl3_HandleNewSessionTicket(sslSocket *ss, SSL3Opaque *b, PRUint32 length)
(PRUint32)ssl3_ConsumeHandshakeNumber(ss, 4, &b, &length);
rv = ssl3_ConsumeHandshakeVariable(ss, &ticketData, 2, &b, &length);
if (length != 0 || rv != SECSuccess) {
if (rv != SECSuccess || length != 0) {
(void)SSL3_SendAlert(ss, alert_fatal, decode_error);
PORT_SetError(SSL_ERROR_RX_MALFORMED_NEW_SESSION_TICKET);
return SECFailure; /* malformed */
}
rv = SECITEM_CopyItem(NULL, &ss->ssl3.hs.newSessionTicket.ticket,
&ticketData);
if (rv != SECSuccess) {
return rv;
/* If the server sent a zero-length ticket, ignore it and keep the
* existing ticket. */
if (ticketData.len != 0) {
rv = SECITEM_CopyItem(NULL, &ss->ssl3.hs.newSessionTicket.ticket,
&ticketData);
if (rv != SECSuccess) {
return rv;
}
ss->ssl3.hs.receivedNewSessionTicket = PR_TRUE;
}
ss->ssl3.hs.receivedNewSessionTicket = PR_TRUE;
ss->ssl3.hs.ws = wait_change_cipher;
return SECSuccess;

View File

@ -76,8 +76,8 @@ const PRUint16 SSL_ImplementedCiphers[] = {
TLS_DHE_RSA_WITH_AES_256_CBC_SHA256,
TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA,
TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA,
SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA,
SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA,
TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA,
TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA,
TLS_DHE_DSS_WITH_RC4_128_SHA,
#ifndef NSS_DISABLE_ECC
@ -100,23 +100,23 @@ const PRUint16 SSL_ImplementedCiphers[] = {
TLS_RSA_WITH_CAMELLIA_256_CBC_SHA,
TLS_RSA_WITH_SEED_CBC_SHA,
SSL_RSA_FIPS_WITH_3DES_EDE_CBC_SHA,
SSL_RSA_WITH_3DES_EDE_CBC_SHA,
SSL_RSA_WITH_RC4_128_SHA,
SSL_RSA_WITH_RC4_128_MD5,
TLS_RSA_WITH_3DES_EDE_CBC_SHA,
TLS_RSA_WITH_RC4_128_SHA,
TLS_RSA_WITH_RC4_128_MD5,
/* 56-bit DES "domestic" cipher suites */
SSL_DHE_RSA_WITH_DES_CBC_SHA,
SSL_DHE_DSS_WITH_DES_CBC_SHA,
TLS_DHE_RSA_WITH_DES_CBC_SHA,
TLS_DHE_DSS_WITH_DES_CBC_SHA,
SSL_RSA_FIPS_WITH_DES_CBC_SHA,
SSL_RSA_WITH_DES_CBC_SHA,
TLS_RSA_WITH_DES_CBC_SHA,
/* export ciphersuites with 1024-bit public key exchange keys */
TLS_RSA_EXPORT1024_WITH_RC4_56_SHA,
TLS_RSA_EXPORT1024_WITH_DES_CBC_SHA,
/* export ciphersuites with 512-bit public key exchange keys */
SSL_RSA_EXPORT_WITH_RC4_40_MD5,
SSL_RSA_EXPORT_WITH_RC2_CBC_40_MD5,
TLS_RSA_EXPORT_WITH_RC4_40_MD5,
TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5,
/* ciphersuites with no encryption */
#ifndef NSS_DISABLE_ECC
@ -125,9 +125,9 @@ const PRUint16 SSL_ImplementedCiphers[] = {
TLS_ECDH_RSA_WITH_NULL_SHA,
TLS_ECDH_ECDSA_WITH_NULL_SHA,
#endif /* NSS_DISABLE_ECC */
SSL_RSA_WITH_NULL_SHA,
TLS_RSA_WITH_NULL_SHA,
TLS_RSA_WITH_NULL_SHA256,
SSL_RSA_WITH_NULL_MD5,
TLS_RSA_WITH_NULL_MD5,
/* SSL2 cipher suites. */
SSL_EN_RC4_128_WITH_MD5,

View File

@ -148,28 +148,28 @@ static const SSLCipherSuiteInfo suiteInfo[] = {
{0,CS(TLS_DHE_DSS_WITH_AES_128_CBC_SHA), S_DSA, K_DHE, C_AES, B_128, M_SHA, 1, 0, 0, },
{0,CS(TLS_RSA_WITH_SEED_CBC_SHA), S_RSA, K_RSA, C_SEED,B_128, M_SHA, 1, 0, 0, },
{0,CS(TLS_RSA_WITH_CAMELLIA_128_CBC_SHA), S_RSA, K_RSA, C_CAMELLIA, B_128, M_SHA, 0, 0, 0, },
{0,CS(SSL_RSA_WITH_RC4_128_SHA), S_RSA, K_RSA, C_RC4, B_128, M_SHA, 0, 0, 0, },
{0,CS(SSL_RSA_WITH_RC4_128_MD5), S_RSA, K_RSA, C_RC4, B_128, M_MD5, 0, 0, 0, },
{0,CS(TLS_RSA_WITH_RC4_128_SHA), S_RSA, K_RSA, C_RC4, B_128, M_SHA, 0, 0, 0, },
{0,CS(TLS_RSA_WITH_RC4_128_MD5), S_RSA, K_RSA, C_RC4, B_128, M_MD5, 0, 0, 0, },
{0,CS(TLS_RSA_WITH_AES_128_CBC_SHA256), S_RSA, K_RSA, C_AES, B_128, M_SHA256, 1, 0, 0, },
{0,CS(TLS_RSA_WITH_AES_128_CBC_SHA), S_RSA, K_RSA, C_AES, B_128, M_SHA, 1, 0, 0, },
{0,CS(SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA), S_RSA, K_DHE, C_3DES,B_3DES,M_SHA, 1, 0, 0, },
{0,CS(SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA), S_DSA, K_DHE, C_3DES,B_3DES,M_SHA, 1, 0, 0, },
{0,CS(TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA), S_RSA, K_DHE, C_3DES,B_3DES,M_SHA, 1, 0, 0, },
{0,CS(TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA), S_DSA, K_DHE, C_3DES,B_3DES,M_SHA, 1, 0, 0, },
{0,CS(SSL_RSA_FIPS_WITH_3DES_EDE_CBC_SHA), S_RSA, K_RSA, C_3DES,B_3DES,M_SHA, 1, 0, 1, },
{0,CS(SSL_RSA_WITH_3DES_EDE_CBC_SHA), S_RSA, K_RSA, C_3DES,B_3DES,M_SHA, 1, 0, 0, },
{0,CS(TLS_RSA_WITH_3DES_EDE_CBC_SHA), S_RSA, K_RSA, C_3DES,B_3DES,M_SHA, 1, 0, 0, },
{0,CS(SSL_DHE_RSA_WITH_DES_CBC_SHA), S_RSA, K_DHE, C_DES, B_DES, M_SHA, 0, 0, 0, },
{0,CS(SSL_DHE_DSS_WITH_DES_CBC_SHA), S_DSA, K_DHE, C_DES, B_DES, M_SHA, 0, 0, 0, },
{0,CS(TLS_DHE_RSA_WITH_DES_CBC_SHA), S_RSA, K_DHE, C_DES, B_DES, M_SHA, 0, 0, 0, },
{0,CS(TLS_DHE_DSS_WITH_DES_CBC_SHA), S_DSA, K_DHE, C_DES, B_DES, M_SHA, 0, 0, 0, },
{0,CS(SSL_RSA_FIPS_WITH_DES_CBC_SHA), S_RSA, K_RSA, C_DES, B_DES, M_SHA, 0, 0, 1, },
{0,CS(SSL_RSA_WITH_DES_CBC_SHA), S_RSA, K_RSA, C_DES, B_DES, M_SHA, 0, 0, 0, },
{0,CS(TLS_RSA_WITH_DES_CBC_SHA), S_RSA, K_RSA, C_DES, B_DES, M_SHA, 0, 0, 0, },
{0,CS(TLS_RSA_EXPORT1024_WITH_RC4_56_SHA), S_RSA, K_RSA, C_RC4, B_56, M_SHA, 0, 1, 0, },
{0,CS(TLS_RSA_EXPORT1024_WITH_DES_CBC_SHA), S_RSA, K_RSA, C_DES, B_DES, M_SHA, 0, 1, 0, },
{0,CS(SSL_RSA_EXPORT_WITH_RC4_40_MD5), S_RSA, K_RSA, C_RC4, B_40, M_MD5, 0, 1, 0, },
{0,CS(SSL_RSA_EXPORT_WITH_RC2_CBC_40_MD5), S_RSA, K_RSA, C_RC2, B_40, M_MD5, 0, 1, 0, },
{0,CS(TLS_RSA_EXPORT_WITH_RC4_40_MD5), S_RSA, K_RSA, C_RC4, B_40, M_MD5, 0, 1, 0, },
{0,CS(TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5), S_RSA, K_RSA, C_RC2, B_40, M_MD5, 0, 1, 0, },
{0,CS(TLS_RSA_WITH_NULL_SHA256), S_RSA, K_RSA, C_NULL,B_0, M_SHA256, 0, 1, 0, },
{0,CS(SSL_RSA_WITH_NULL_SHA), S_RSA, K_RSA, C_NULL,B_0, M_SHA, 0, 1, 0, },
{0,CS(SSL_RSA_WITH_NULL_MD5), S_RSA, K_RSA, C_NULL,B_0, M_MD5, 0, 1, 0, },
{0,CS(TLS_RSA_WITH_NULL_SHA), S_RSA, K_RSA, C_NULL,B_0, M_SHA, 0, 1, 0, },
{0,CS(TLS_RSA_WITH_NULL_MD5), S_RSA, K_RSA, C_NULL,B_0, M_MD5, 0, 1, 0, },
#ifndef NSS_DISABLE_ECC
/* ECC cipher suites */

View File

@ -483,6 +483,8 @@ ssl3_SetSIDSessionTicket(sslSessionID *sid,
{
PORT_Assert(sid);
PORT_Assert(newSessionTicket);
PORT_Assert(newSessionTicket->ticket.data);
PORT_Assert(newSessionTicket->ticket.len != 0);
/* if sid->u.ssl3.lock, we are updating an existing entry that is already
* cached or was once cached, so we need to acquire and release the write
@ -491,10 +493,6 @@ ssl3_SetSIDSessionTicket(sslSessionID *sid,
*/
if (sid->u.ssl3.lock) {
PR_RWLock_Wlock(sid->u.ssl3.lock);
/* A server might have sent us an empty ticket, which has the
* effect of clearing the previously known ticket.
*/
if (sid->u.ssl3.locked.sessionTicket.ticket.data) {
SECITEM_FreeItem(&sid->u.ssl3.locked.sessionTicket.ticket,
PR_FALSE);

View File

@ -81,58 +81,92 @@
#define SSL_EN_DES_64_CBC_WITH_MD5 0xFF06
#define SSL_EN_DES_192_EDE3_CBC_WITH_MD5 0xFF07
/* SSL v3 Cipher Suites */
#define SSL_NULL_WITH_NULL_NULL 0x0000
/* Deprecated SSL 3.0 & libssl names replaced by IANA-registered TLS names. */
#ifndef SSL_DISABLE_DEPRECATED_CIPHER_SUITE_NAMES
#define SSL_NULL_WITH_NULL_NULL TLS_NULL_WITH_NULL_NULL
#define SSL_RSA_WITH_NULL_MD5 TLS_RSA_WITH_NULL_MD5
#define SSL_RSA_WITH_NULL_SHA TLS_RSA_WITH_NULL_SHA
#define SSL_RSA_EXPORT_WITH_RC4_40_MD5 TLS_RSA_EXPORT_WITH_RC4_40_MD5
#define SSL_RSA_WITH_RC4_128_MD5 TLS_RSA_WITH_RC4_128_MD5
#define SSL_RSA_WITH_RC4_128_SHA TLS_RSA_WITH_RC4_128_SHA
#define SSL_RSA_EXPORT_WITH_RC2_CBC_40_MD5 TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5
#define SSL_RSA_WITH_IDEA_CBC_SHA TLS_RSA_WITH_IDEA_CBC_SHA
#define SSL_RSA_EXPORT_WITH_DES40_CBC_SHA TLS_RSA_EXPORT_WITH_DES40_CBC_SHA
#define SSL_RSA_WITH_DES_CBC_SHA TLS_RSA_WITH_DES_CBC_SHA
#define SSL_RSA_WITH_3DES_EDE_CBC_SHA TLS_RSA_WITH_3DES_EDE_CBC_SHA
#define SSL_DH_DSS_EXPORT_WITH_DES40_CBC_SHA TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA
#define SSL_DH_DSS_WITH_DES_CBC_SHA TLS_DH_DSS_WITH_DES_CBC_SHA
#define SSL_DH_DSS_WITH_3DES_EDE_CBC_SHA TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA
#define SSL_DH_RSA_EXPORT_WITH_DES40_CBC_SHA TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA
#define SSL_DH_RSA_WITH_DES_CBC_SHA TLS_DH_RSA_WITH_DES_CBC_SHA
#define SSL_DH_RSA_WITH_3DES_EDE_CBC_SHA TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA
#define SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA
#define SSL_DHE_DSS_WITH_DES_CBC_SHA TLS_DHE_DSS_WITH_DES_CBC_SHA
#define SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA
#define SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA
#define SSL_DHE_RSA_WITH_DES_CBC_SHA TLS_DHE_RSA_WITH_DES_CBC_SHA
#define SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA
#define SSL_DH_ANON_WITH_RC4_128_MD5 TLS_DH_anon_WITH_RC4_128_MD5
#define SSL_DH_ANON_EXPORT_WITH_DES40_CBC_SHA TLS_DH_anon_EXPORT_WITH_DES40_CBC_SHA
#define SSL_DH_ANON_WITH_DES_CBC_SHA TLS_DH_anon_WITH_DES_CBC_SHA
#define SSL_DH_ANON_WITH_3DES_EDE_CBC_SHA TLS_DH_anon_WITH_3DES_EDE_CBC_SHA
#define SSL_DH_ANON_EXPORT_WITH_RC4_40_MD5 TLS_DH_anon_EXPORT_WITH_RC4_40_MD5
#define TLS_DH_ANON_WITH_AES_128_CBC_SHA TLS_DH_anon_WITH_AES_128_CBC_SHA
#define TLS_DH_ANON_WITH_AES_256_CBC_SHA TLS_DH_anon_WITH_AES_256_CBC_SHA
#define TLS_DH_ANON_WITH_CAMELLIA_128_CBC_SHA TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA
#define TLS_DH_ANON_WITH_CAMELLIA_256_CBC_SHA TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA
#endif
#define SSL_RSA_WITH_NULL_MD5 0x0001
#define SSL_RSA_WITH_NULL_SHA 0x0002
#define SSL_RSA_EXPORT_WITH_RC4_40_MD5 0x0003
#define SSL_RSA_WITH_RC4_128_MD5 0x0004
#define SSL_RSA_WITH_RC4_128_SHA 0x0005
#define SSL_RSA_EXPORT_WITH_RC2_CBC_40_MD5 0x0006
#define SSL_RSA_WITH_IDEA_CBC_SHA 0x0007
#define SSL_RSA_EXPORT_WITH_DES40_CBC_SHA 0x0008
#define SSL_RSA_WITH_DES_CBC_SHA 0x0009
#define SSL_RSA_WITH_3DES_EDE_CBC_SHA 0x000a
#define SSL_DH_DSS_EXPORT_WITH_DES40_CBC_SHA 0x000b
#define SSL_DH_DSS_WITH_DES_CBC_SHA 0x000c
#define SSL_DH_DSS_WITH_3DES_EDE_CBC_SHA 0x000d
#define SSL_DH_RSA_EXPORT_WITH_DES40_CBC_SHA 0x000e
#define SSL_DH_RSA_WITH_DES_CBC_SHA 0x000f
#define SSL_DH_RSA_WITH_3DES_EDE_CBC_SHA 0x0010
#define SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA 0x0011
#define SSL_DHE_DSS_WITH_DES_CBC_SHA 0x0012
#define SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA 0x0013
#define SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA 0x0014
#define SSL_DHE_RSA_WITH_DES_CBC_SHA 0x0015
#define SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA 0x0016
#define SSL_DH_ANON_EXPORT_WITH_RC4_40_MD5 0x0017
#define SSL_DH_ANON_WITH_RC4_128_MD5 0x0018
#define SSL_DH_ANON_EXPORT_WITH_DES40_CBC_SHA 0x0019
#define SSL_DH_ANON_WITH_DES_CBC_SHA 0x001a
#define SSL_DH_ANON_WITH_3DES_EDE_CBC_SHA 0x001b
#define TLS_NULL_WITH_NULL_NULL 0x0000
#define TLS_RSA_WITH_NULL_MD5 0x0001
#define TLS_RSA_WITH_NULL_SHA 0x0002
#define TLS_RSA_EXPORT_WITH_RC4_40_MD5 0x0003
#define TLS_RSA_WITH_RC4_128_MD5 0x0004
#define TLS_RSA_WITH_RC4_128_SHA 0x0005
#define TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5 0x0006
#define TLS_RSA_WITH_IDEA_CBC_SHA 0x0007
#define TLS_RSA_EXPORT_WITH_DES40_CBC_SHA 0x0008
#define TLS_RSA_WITH_DES_CBC_SHA 0x0009
#define TLS_RSA_WITH_3DES_EDE_CBC_SHA 0x000a
#define TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA 0x000b
#define TLS_DH_DSS_WITH_DES_CBC_SHA 0x000c
#define TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA 0x000d
#define TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA 0x000e
#define TLS_DH_RSA_WITH_DES_CBC_SHA 0x000f
#define TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA 0x0010
#define TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA 0x0011
#define TLS_DHE_DSS_WITH_DES_CBC_SHA 0x0012
#define TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA 0x0013
#define TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA 0x0014
#define TLS_DHE_RSA_WITH_DES_CBC_SHA 0x0015
#define TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA 0x0016
#define TLS_DH_anon_EXPORT_WITH_RC4_40_MD5 0x0017
#define TLS_DH_anon_WITH_RC4_128_MD5 0x0018
#define TLS_DH_anon_EXPORT_WITH_DES40_CBC_SHA 0x0019
#define TLS_DH_anon_WITH_DES_CBC_SHA 0x001a
#define TLS_DH_anon_WITH_3DES_EDE_CBC_SHA 0x001b
#define SSL_FORTEZZA_DMS_WITH_NULL_SHA 0x001c /* deprecated */
#define SSL_FORTEZZA_DMS_WITH_FORTEZZA_CBC_SHA 0x001d /* deprecated */
#define SSL_FORTEZZA_DMS_WITH_RC4_128_SHA 0x001e /* deprecated */
/* New TLS cipher suites */
#define TLS_RSA_WITH_AES_128_CBC_SHA 0x002F
#define TLS_DH_DSS_WITH_AES_128_CBC_SHA 0x0030
#define TLS_DH_RSA_WITH_AES_128_CBC_SHA 0x0031
#define TLS_DHE_DSS_WITH_AES_128_CBC_SHA 0x0032
#define TLS_DHE_RSA_WITH_AES_128_CBC_SHA 0x0033
#define TLS_DH_ANON_WITH_AES_128_CBC_SHA 0x0034
#define TLS_DH_anon_WITH_AES_128_CBC_SHA 0x0034
#define TLS_RSA_WITH_AES_256_CBC_SHA 0x0035
#define TLS_DH_DSS_WITH_AES_256_CBC_SHA 0x0036
#define TLS_DH_RSA_WITH_AES_256_CBC_SHA 0x0037
#define TLS_DHE_DSS_WITH_AES_256_CBC_SHA 0x0038
#define TLS_DHE_RSA_WITH_AES_256_CBC_SHA 0x0039
#define TLS_DH_ANON_WITH_AES_256_CBC_SHA 0x003A
#define TLS_DH_anon_WITH_AES_256_CBC_SHA 0x003A
#define TLS_RSA_WITH_NULL_SHA256 0x003B
#define TLS_RSA_WITH_AES_128_CBC_SHA256 0x003C
#define TLS_RSA_WITH_AES_256_CBC_SHA256 0x003D
@ -142,7 +176,7 @@
#define TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA 0x0043
#define TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA 0x0044
#define TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA 0x0045
#define TLS_DH_ANON_WITH_CAMELLIA_128_CBC_SHA 0x0046
#define TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA 0x0046
#define TLS_RSA_EXPORT1024_WITH_DES_CBC_SHA 0x0062
#define TLS_RSA_EXPORT1024_WITH_RC4_56_SHA 0x0064
@ -158,7 +192,7 @@
#define TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA 0x0086
#define TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA 0x0087
#define TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA 0x0088
#define TLS_DH_ANON_WITH_CAMELLIA_256_CBC_SHA 0x0089
#define TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA 0x0089
#define TLS_RSA_WITH_SEED_CBC_SHA 0x0096

View File

@ -14,3 +14,7 @@ IMPORT_LIBRARY =
PROGRAM =
EXTRA_LIBS = $(LIBRARY)
ifeq ($(OS_TARGET),Linux)
DEFINES += -DHAVE_UNISTD_H
endif

View File

@ -940,8 +940,8 @@ cert_ssl()
fi
echo "$SCRIPTNAME: Creating database for OCSP stapling tests ==============="
echo "cp -rv ${SERVERDIR} ${STAPLINGDIR}"
cp -rv ${R_SERVERDIR} ${R_STAPLINGDIR}
echo "cp -r ${SERVERDIR} ${STAPLINGDIR}"
cp -r ${R_SERVERDIR} ${R_STAPLINGDIR}
pk12u -o ${R_STAPLINGDIR}/ca.p12 -n TestCA -k ${R_PWFILE} -w ${R_PWFILE} -d ${R_CADIR}
pk12u -i ${R_STAPLINGDIR}/ca.p12 -k ${R_PWFILE} -w ${R_PWFILE} -d ${R_STAPLINGDIR}
}

View File

@ -14,6 +14,9 @@ if [ -z "${CLEANUP}" -o "${CLEANUP}" = "${SCRIPTNAME}" ]; then
echo "HOST=${HOST}"
echo "DOMSUF=${DOMSUF}"
echo "BUILD_OPT=${BUILD_OPT}"
if [ "${OS_ARCH}" = "Linux" ]; then
echo "USE_X32=${USE_X32}"
fi
echo "USE_64=${USE_64}"
echo "NSS_CYCLES=\"${NSS_CYCLES}\""
echo "NSS_TESTS=\"${NSS_TESTS}\""

View File

@ -1,50 +1,65 @@
var accumulatedRect = null;
var onpaint = function() {};
var debug = false;
(function() {
var accumulatedRect = null;
var onpaint = function() {};
var debug = false;
const FlushModes = {
FLUSH: 0,
NOFLUSH: 1
};
function paintListener(event) {
if (event.target != window)
return;
if (debug) {
dump("got MozAfterPaint: " + event.boundingClientRect.left + "," + event.boundingClientRect.top + "," +
event.boundingClientRect.right + "," + event.boundingClientRect.bottom + "\n");
}
if (accumulatedRect) {
accumulatedRect[0] = Math.min(accumulatedRect[0], event.boundingClientRect.left);
accumulatedRect[1] = Math.min(accumulatedRect[1], event.boundingClientRect.top);
accumulatedRect[2] = Math.max(accumulatedRect[2], event.boundingClientRect.right);
accumulatedRect[3] = Math.max(accumulatedRect[3], event.boundingClientRect.bottom);
} else {
accumulatedRect = [event.boundingClientRect.left, event.boundingClientRect.top,
event.boundingClientRect.right, event.boundingClientRect.bottom];
}
onpaint();
}
window.addEventListener("MozAfterPaint", paintListener, false);
function waitForAllPaintsFlushed(callback, subdoc) {
document.documentElement.getBoundingClientRect();
if (subdoc) {
subdoc.documentElement.getBoundingClientRect();
}
var CI = Components.interfaces;
var utils = window.QueryInterface(CI.nsIInterfaceRequestor)
.getInterface(CI.nsIDOMWindowUtils);
if (!utils.isMozAfterPaintPending) {
function paintListener(event) {
if (event.target != window)
return;
var eventRect =
[ event.boundingClientRect.left,
event.boundingClientRect.top,
event.boundingClientRect.right,
event.boundingClientRect.bottom ];
if (debug) {
dump("done...\n");
dump("got MozAfterPaint: " + eventRect.join(",") + "\n");
}
var result = accumulatedRect;
accumulatedRect = null;
onpaint = function() {};
if (!result) {
result = [0,0,0,0];
accumulatedRect = accumulatedRect
? [ Math.min(accumulatedRect[0], eventRect[0]),
Math.min(accumulatedRect[1], eventRect[1]),
Math.max(accumulatedRect[2], eventRect[2]),
Math.max(accumulatedRect[3], eventRect[3]) ]
: eventRect;
onpaint();
}
window.addEventListener("MozAfterPaint", paintListener, false);
function waitForPaints(callback, subdoc, flushMode) {
// The call to getBoundingClientRect will flush pending layout
// notifications. Sometimes, however, this is undesirable since it can mask
// bugs where the code under test should be performing the flush.
if (flushMode === FlushModes.FLUSH) {
document.documentElement.getBoundingClientRect();
if (subdoc) {
subdoc.documentElement.getBoundingClientRect();
}
}
callback(result[0], result[1], result[2], result[3]);
return;
var utils = SpecialPowers.getDOMWindowUtils(window);
if (!utils.isMozAfterPaintPending) {
if (debug) {
dump("done...\n");
}
var result = accumulatedRect || [ 0, 0, 0, 0 ];
accumulatedRect = null;
onpaint = function() {};
callback.apply(null, result);
return;
}
if (debug) {
dump("waiting for paint...\n");
}
onpaint = function() { waitForPaints(callback, subdoc, flushMode); };
}
if (debug) {
dump("waiting for paint...\n");
}
onpaint = function() { waitForAllPaintsFlushed(callback, subdoc); };
}
window.waitForAllPaintsFlushed = function(callback, subdoc) {
waitForPaints(callback, subdoc, FlushModes.FLUSH);
};
window.waitForAllPaints = function(callback) {
waitForPaints(callback, null, FlushModes.NOFLUSH);
};
})();

View File

@ -5,11 +5,16 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#include "WinUtils.h"
#include "gfxPlatform.h"
#include "nsWindow.h"
#include "nsWindowDefs.h"
#include "KeyboardLayout.h"
#include "nsIDOMMouseEvent.h"
#include "mozilla/gfx/2D.h"
#include "mozilla/gfx/DataSurfaceHelpers.h"
#include "mozilla/Preferences.h"
#include "mozilla/RefPtr.h"
#include "mozilla/WindowsVersion.h"
#ifdef MOZ_LOGGING
@ -49,6 +54,8 @@
PRLogModuleInfo* gWindowsLog = nullptr;
#endif
using namespace mozilla::gfx;
namespace mozilla {
namespace widget {
@ -728,45 +735,63 @@ AsyncFaviconDataReady::OnComplete(nsIURI *aFaviconURI,
container->GetFrame(imgIContainer::FRAME_FIRST, 0);
NS_ENSURE_TRUE(imgFrame, NS_ERROR_FAILURE);
nsRefPtr<gfxImageSurface> imageSurface;
gfxIntSize size;
if (mURLShortcut) {
imageSurface =
new gfxImageSurface(gfxIntSize(48, 48),
gfxImageFormat::ARGB32);
gfxContext context(imageSurface);
context.SetOperator(gfxContext::OPERATOR_SOURCE);
context.SetColor(gfxRGBA(1, 1, 1, 1));
context.Rectangle(gfxRect(0, 0, 48, 48));
context.Fill();
RefPtr<SourceSurface> surface =
gfxPlatform::GetPlatform()->GetSourceSurfaceForSurface(nullptr, imgFrame);
NS_ENSURE_TRUE(surface, NS_ERROR_FAILURE);
context.Translate(gfxPoint(16, 16));
context.SetOperator(gfxContext::OPERATOR_OVER);
context.DrawSurface(imgFrame, gfxSize(16, 16));
size = imageSurface->GetSize();
RefPtr<DataSourceSurface> dataSurface;
IntSize size;
if (mURLShortcut) {
// Create a 48x48 surface and paint the icon into the central 16x16 rect.
size.width = 48;
size.height = 48;
dataSurface =
Factory::CreateDataSourceSurface(size, SurfaceFormat::B8G8R8A8);
NS_ENSURE_TRUE(dataSurface, NS_ERROR_FAILURE);
DataSourceSurface::MappedSurface map;
if (!dataSurface->Map(DataSourceSurface::MapType::WRITE, &map)) {
return NS_ERROR_FAILURE;
}
RefPtr<DrawTarget> dt =
Factory::CreateDrawTargetForData(BackendType::CAIRO,
map.mData,
dataSurface->GetSize(),
map.mStride,
dataSurface->GetFormat());
dt->FillRect(Rect(0, 0, size.width, size.height),
ColorPattern(Color(1.0f, 1.0f, 1.0f, 1.0f)));
dt->DrawSurface(surface,
Rect(16, 16, 16, 16),
Rect(Point(0, 0),
Size(surface->GetSize().width, surface->GetSize().height)));
dataSurface->Unmap();
} else {
imageSurface = imgFrame->GetAsReadableARGB32ImageSurface();
size.width = GetSystemMetrics(SM_CXSMICON);
size.height = GetSystemMetrics(SM_CYSMICON);
if (!size.width || !size.height) {
size.width = 16;
size.height = 16;
}
dataSurface = surface->GetDataSurface();
}
// Allocate a new buffer that we own and can use out of line in
// another thread. Copy the favicon raw data into it.
const fallible_t fallible = fallible_t();
uint8_t *data = new (fallible) uint8_t[imageSurface->GetDataSize()];
// Allocate a new buffer that we own and can use out of line in
// another thread.
uint8_t *data = SurfaceToPackedBGRA(dataSurface);
if (!data) {
return NS_ERROR_OUT_OF_MEMORY;
}
memcpy(data, imageSurface->Data(), imageSurface->GetDataSize());
int32_t stride = 4 * size.width;
int32_t dataLength = stride * size.height;
// AsyncEncodeAndWriteIcon takes ownership of the heap allocated buffer
nsCOMPtr<nsIRunnable> event = new AsyncEncodeAndWriteIcon(path, data,
imageSurface->GetDataSize(),
imageSurface->Stride(),
dataLength,
stride,
size.width,
size.height,
mURLShortcut);