Merge mozilla-central to b2g-inbound on a CLOSED TREE
@ -29,6 +29,7 @@ XPIDL_SOURCES += [
|
||||
'nsIAccessibleTableChangeEvent.idl',
|
||||
'nsIAccessibleText.idl',
|
||||
'nsIAccessibleTextChangeEvent.idl',
|
||||
'nsIAccessibleTextRange.idl',
|
||||
'nsIAccessibleTypes.idl',
|
||||
'nsIAccessibleValue.idl',
|
||||
'nsIAccessibleVirtualCursorChangeEvent.idl',
|
||||
|
@ -9,9 +9,11 @@
|
||||
typedef long AccessibleTextBoundary;
|
||||
|
||||
interface nsIAccessible;
|
||||
interface nsIArray;
|
||||
interface nsIPersistentProperties;
|
||||
interface nsIAccessibleTextRange;
|
||||
|
||||
[scriptable, uuid(1e63dd8b-173d-4a68-8ade-fd671abbe1ee)]
|
||||
[scriptable, uuid(88789f40-54c9-494a-846d-3acaaf4cf46a)]
|
||||
interface nsIAccessibleText : nsISupports
|
||||
{
|
||||
// In parameters for character offsets:
|
||||
@ -189,6 +191,34 @@ interface nsIAccessibleText : nsISupports
|
||||
void scrollSubstringToPoint(in long startIndex, in long endIndex,
|
||||
in unsigned long coordinateType,
|
||||
in long x, in long y);
|
||||
|
||||
/**
|
||||
* Return a range that encloses this text control or otherwise the document
|
||||
* this text accessible belongs to.
|
||||
*/
|
||||
readonly attribute nsIAccessibleTextRange enclosingRange;
|
||||
|
||||
/**
|
||||
* Return an array of disjoint ranges for selected text within the text control
|
||||
* or otherwise the document this accessible belongs to.
|
||||
*/
|
||||
readonly attribute nsIArray selectionRanges;
|
||||
|
||||
/**
|
||||
* Return an array of disjoint ranges of visible text within the text control
|
||||
* or otherwise the document this accessible belongs to.
|
||||
*/
|
||||
readonly attribute nsIArray visibleRanges;
|
||||
|
||||
/**
|
||||
* Return a range containing the given accessible.
|
||||
*/
|
||||
nsIAccessibleTextRange getRangeByChild(in nsIAccessible child);
|
||||
|
||||
/**
|
||||
* Return a range containing an accessible at the given point.
|
||||
*/
|
||||
nsIAccessibleTextRange getRangeAtPoint(in long x, in long y);
|
||||
};
|
||||
|
||||
/*
|
||||
|
25
accessible/public/nsIAccessibleTextRange.idl
Normal file
@ -0,0 +1,25 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
#include "nsISupports.idl"
|
||||
|
||||
interface nsIAccessible;
|
||||
|
||||
/**
|
||||
* A range representing a piece of text in the document.
|
||||
*/
|
||||
[scriptable, uuid(6fe17c33-6709-4d7a-9ba0-3d448c4b3ef4)]
|
||||
interface nsIAccessibleTextRange : nsISupports
|
||||
{
|
||||
readonly attribute nsIAccessible startContainer;
|
||||
readonly attribute long startOffset;
|
||||
readonly attribute nsIAccessible endContainer;
|
||||
readonly attribute long endOffset;
|
||||
|
||||
/**
|
||||
* Return text within the range.
|
||||
*/
|
||||
readonly attribute AString text;
|
||||
};
|
@ -9,23 +9,11 @@
|
||||
|
||||
#include "AccIterator.h"
|
||||
|
||||
#include "mozilla/Move.h"
|
||||
|
||||
namespace mozilla {
|
||||
namespace a11y {
|
||||
|
||||
/**
|
||||
* This class is used to return Relation objects from functions. A copy
|
||||
* constructor doesn't work here because we need to mutate the old relation to
|
||||
* have its nsAutoPtr forget what it points to.
|
||||
*/
|
||||
struct RelationCopyHelper
|
||||
{
|
||||
RelationCopyHelper(AccIterable* aFirstIter, AccIterable* aLastIter) :
|
||||
mFirstIter(aFirstIter), mLastIter(aLastIter) { }
|
||||
|
||||
AccIterable* mFirstIter;
|
||||
AccIterable* mLastIter;
|
||||
};
|
||||
|
||||
/**
|
||||
* A collection of relation targets of a certain type. Targets are computed
|
||||
* lazily while enumerating.
|
||||
@ -35,9 +23,6 @@ class Relation
|
||||
public:
|
||||
Relation() : mFirstIter(nullptr), mLastIter(nullptr) { }
|
||||
|
||||
Relation(const RelationCopyHelper aRelation) :
|
||||
mFirstIter(aRelation.mFirstIter), mLastIter(aRelation.mLastIter) { }
|
||||
|
||||
Relation(AccIterable* aIter) :
|
||||
mFirstIter(aIter), mLastIter(aIter) { }
|
||||
|
||||
@ -49,16 +34,18 @@ public:
|
||||
mFirstIter(nullptr), mLastIter(nullptr)
|
||||
{ AppendTarget(aDocument, aContent); }
|
||||
|
||||
Relation& operator = (const RelationCopyHelper& aRH)
|
||||
Relation(Relation&& aOther) :
|
||||
mFirstIter(Move(aOther.mFirstIter)), mLastIter(aOther.mLastIter)
|
||||
{
|
||||
mFirstIter = aRH.mFirstIter;
|
||||
mLastIter = aRH.mLastIter;
|
||||
return *this;
|
||||
aOther.mLastIter = nullptr;
|
||||
}
|
||||
|
||||
operator RelationCopyHelper()
|
||||
Relation& operator = (Relation&& aRH)
|
||||
{
|
||||
return RelationCopyHelper(mFirstIter.forget(), mLastIter);
|
||||
mFirstIter = Move(aRH.mFirstIter);
|
||||
mLastIter = aRH.mLastIter;
|
||||
aRH.mLastIter = nullptr;
|
||||
return *this;
|
||||
}
|
||||
|
||||
inline void AppendIter(AccIterable* aIter)
|
||||
@ -108,7 +95,8 @@ public:
|
||||
}
|
||||
|
||||
private:
|
||||
Relation& operator = (const Relation&);
|
||||
Relation& operator = (const Relation&) MOZ_DELETE;
|
||||
Relation(const Relation&) MOZ_DELETE;
|
||||
|
||||
nsAutoPtr<AccIterable> mFirstIter;
|
||||
AccIterable* mLastIter;
|
||||
|
25
accessible/src/base/TextRange.cpp
Normal file
@ -0,0 +1,25 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
/* vim: set ts=2 et sw=2 tw=80: */
|
||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
#include "TextRange.h"
|
||||
|
||||
#include "HyperTextAccessible.h"
|
||||
|
||||
using namespace mozilla::a11y;
|
||||
|
||||
TextRange::TextRange(HyperTextAccessible* aRoot,
|
||||
Accessible* aStartContainer, int32_t aStartOffset,
|
||||
Accessible* aEndContainer, int32_t aEndOffset) :
|
||||
mRoot(aRoot), mStartContainer(aStartContainer), mEndContainer(aEndContainer),
|
||||
mStartOffset(aStartOffset), mEndOffset(aEndOffset)
|
||||
{
|
||||
}
|
||||
|
||||
void
|
||||
TextRange::Text(nsAString& aText) const
|
||||
{
|
||||
|
||||
}
|
66
accessible/src/base/TextRange.h
Normal file
@ -0,0 +1,66 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
/* vim: set ts=2 et sw=2 tw=80: */
|
||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
#ifndef mozilla_a11y_TextRange_h__
|
||||
#define mozilla_a11y_TextRange_h__
|
||||
|
||||
#include "mozilla/Move.h"
|
||||
#include "nsAutoPtr.h"
|
||||
|
||||
namespace mozilla {
|
||||
namespace a11y {
|
||||
|
||||
class Accessible;
|
||||
class HyperTextAccessible;
|
||||
|
||||
/**
|
||||
* Represents a text range within the text control or document.
|
||||
*/
|
||||
class TextRange MOZ_FINAL
|
||||
{
|
||||
public:
|
||||
TextRange(HyperTextAccessible* aRoot,
|
||||
Accessible* aStartContainer, int32_t aStartOffset,
|
||||
Accessible* aEndContainer, int32_t aEndOffset);
|
||||
TextRange() {}
|
||||
TextRange(TextRange&& aRange) :
|
||||
mRoot(Move(aRange.mRoot)), mStartContainer(Move(aRange.mStartContainer)),
|
||||
mEndContainer(Move(aRange.mEndContainer)),
|
||||
mStartOffset(aRange.mStartOffset), mEndOffset(aRange.mEndOffset) {}
|
||||
|
||||
Accessible* StartContainer() const { return mStartContainer; }
|
||||
int32_t StartOffset() const { return mStartOffset; }
|
||||
Accessible* EndContainer() const { return mEndContainer; }
|
||||
int32_t EndOffset() const { return mEndOffset; }
|
||||
|
||||
/**
|
||||
* Return text enclosed by the range.
|
||||
*/
|
||||
void Text(nsAString& aText) const;
|
||||
|
||||
/**
|
||||
* Return true if this TextRange object represents an actual range of text.
|
||||
*/
|
||||
bool IsValid() const { return mRoot; }
|
||||
|
||||
private:
|
||||
friend class HyperTextAccessible;
|
||||
|
||||
TextRange(const TextRange&) MOZ_DELETE;
|
||||
TextRange& operator=(const TextRange&) MOZ_DELETE;
|
||||
|
||||
const nsRefPtr<HyperTextAccessible> mRoot;
|
||||
nsRefPtr<Accessible> mStartContainer;
|
||||
nsRefPtr<Accessible> mEndContainer;
|
||||
int32_t mStartOffset;
|
||||
int32_t mEndOffset;
|
||||
};
|
||||
|
||||
|
||||
} // namespace a11y
|
||||
} // namespace mozilla
|
||||
|
||||
#endif
|
@ -47,6 +47,7 @@ UNIFIED_SOURCES += [
|
||||
'SelectionManager.cpp',
|
||||
'StyleInfo.cpp',
|
||||
'TextAttrs.cpp',
|
||||
'TextRange.cpp',
|
||||
'TextUpdater.cpp',
|
||||
'TreeWalker.cpp',
|
||||
]
|
||||
|
@ -14,6 +14,7 @@
|
||||
#include "Role.h"
|
||||
#include "States.h"
|
||||
#include "TextAttrs.h"
|
||||
#include "TextRange.h"
|
||||
#include "TreeWalker.h"
|
||||
|
||||
#include "nsCaret.h"
|
||||
@ -1504,6 +1505,33 @@ HyperTextAccessible::ScrollSubstringToPoint(int32_t aStartOffset,
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
HyperTextAccessible::EnclosingRange(a11y::TextRange& aRange) const
|
||||
{
|
||||
}
|
||||
|
||||
void
|
||||
HyperTextAccessible::SelectionRanges(nsTArray<a11y::TextRange>* aRanges) const
|
||||
{
|
||||
}
|
||||
|
||||
void
|
||||
HyperTextAccessible::VisibleRanges(nsTArray<a11y::TextRange>* aRanges) const
|
||||
{
|
||||
}
|
||||
|
||||
void
|
||||
HyperTextAccessible::RangeByChild(Accessible* aChild,
|
||||
a11y::TextRange& aRange) const
|
||||
{
|
||||
}
|
||||
|
||||
void
|
||||
HyperTextAccessible::RangeAtPoint(int32_t aX, int32_t aY,
|
||||
a11y::TextRange& aRange) const
|
||||
{
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Accessible public
|
||||
|
||||
|
@ -16,6 +16,8 @@
|
||||
namespace mozilla {
|
||||
namespace a11y {
|
||||
|
||||
class TextRange;
|
||||
|
||||
struct DOMPoint {
|
||||
DOMPoint() : node(nullptr), idx(0) { }
|
||||
DOMPoint(nsINode* aNode, int32_t aIdx) : node(aNode), idx(aIdx) { }
|
||||
@ -361,6 +363,34 @@ public:
|
||||
uint32_t aCoordinateType,
|
||||
int32_t aX, int32_t aY);
|
||||
|
||||
/**
|
||||
* Return a range that encloses the text control or the document this
|
||||
* accessible belongs to.
|
||||
*/
|
||||
void EnclosingRange(TextRange& aRange) const;
|
||||
|
||||
/**
|
||||
* Return an array of disjoint ranges for selected text within the text control
|
||||
* or the document this accessible belongs to.
|
||||
*/
|
||||
void SelectionRanges(nsTArray<TextRange>* aRanges) const;
|
||||
|
||||
/**
|
||||
* Return an array of disjoint ranges of visible text within the text control
|
||||
* or the document this accessible belongs to.
|
||||
*/
|
||||
void VisibleRanges(nsTArray<TextRange>* aRanges) const;
|
||||
|
||||
/**
|
||||
* Return a range containing the given accessible.
|
||||
*/
|
||||
void RangeByChild(Accessible* aChild, TextRange& aRange) const;
|
||||
|
||||
/**
|
||||
* Return a range containing an accessible at the given point.
|
||||
*/
|
||||
void RangeAtPoint(int32_t aX, int32_t aY, TextRange& aRange) const;
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
// EditableTextAccessible
|
||||
|
||||
|
@ -212,4 +212,12 @@ protected:
|
||||
} // namespace a11y
|
||||
} // namespace mozilla
|
||||
|
||||
#ifdef XP_WIN
|
||||
// Undo the windows.h damage
|
||||
#undef GetMessage
|
||||
#undef CreateEvent
|
||||
#undef GetClassName
|
||||
#undef GetBinaryType
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
@ -16,6 +16,7 @@ UNIFIED_SOURCES += [
|
||||
'xpcAccessibleSelectable.cpp',
|
||||
'xpcAccessibleTable.cpp',
|
||||
'xpcAccessibleTableCell.cpp',
|
||||
'xpcAccessibleTextRange.cpp',
|
||||
'xpcAccessibleValue.cpp',
|
||||
]
|
||||
|
||||
|
@ -7,8 +7,11 @@
|
||||
#include "xpcAccessibleHyperText.h"
|
||||
|
||||
#include "HyperTextAccessible-inl.h"
|
||||
#include "TextRange.h"
|
||||
#include "xpcAccessibleTextRange.h"
|
||||
|
||||
#include "nsIPersistentProperties2.h"
|
||||
#include "nsIMutableArray.h"
|
||||
|
||||
using namespace mozilla::a11y;
|
||||
|
||||
@ -363,6 +366,119 @@ xpcAccessibleHyperText::ScriptableScrollSubstringToPoint(int32_t aStartOffset,
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
xpcAccessibleHyperText::GetEnclosingRange(nsIAccessibleTextRange** aRange)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aRange);
|
||||
*aRange = nullptr;
|
||||
|
||||
HyperTextAccessible* text = static_cast<HyperTextAccessible*>(this);
|
||||
if (text->IsDefunct())
|
||||
return NS_ERROR_FAILURE;
|
||||
|
||||
nsRefPtr<xpcAccessibleTextRange> range = new xpcAccessibleTextRange;
|
||||
text->EnclosingRange(range->mRange);
|
||||
NS_ASSERTION(range->mRange.IsValid(),
|
||||
"Should always have an enclosing range!");
|
||||
|
||||
range.forget(aRange);
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
xpcAccessibleHyperText::GetSelectionRanges(nsIArray** aRanges)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aRanges);
|
||||
*aRanges = nullptr;
|
||||
|
||||
HyperTextAccessible* text = static_cast<HyperTextAccessible*>(this);
|
||||
if (text->IsDefunct())
|
||||
return NS_ERROR_FAILURE;
|
||||
|
||||
nsresult rv = NS_OK;
|
||||
nsCOMPtr<nsIMutableArray> xpcRanges =
|
||||
do_CreateInstance(NS_ARRAY_CONTRACTID, &rv);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
nsAutoTArray<TextRange, 1> ranges;
|
||||
text->SelectionRanges(&ranges);
|
||||
uint32_t len = ranges.Length();
|
||||
for (uint32_t idx = 0; idx < len; idx++)
|
||||
xpcRanges->AppendElement(new xpcAccessibleTextRange(Move(ranges[idx])),
|
||||
false);
|
||||
|
||||
xpcRanges.forget(aRanges);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
xpcAccessibleHyperText::GetVisibleRanges(nsIArray** aRanges)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aRanges);
|
||||
*aRanges = nullptr;
|
||||
|
||||
HyperTextAccessible* text = static_cast<HyperTextAccessible*>(this);
|
||||
if (text->IsDefunct())
|
||||
return NS_ERROR_FAILURE;
|
||||
|
||||
nsresult rv = NS_OK;
|
||||
nsCOMPtr<nsIMutableArray> xpcRanges =
|
||||
do_CreateInstance(NS_ARRAY_CONTRACTID, &rv);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
nsTArray<TextRange> ranges;
|
||||
text->VisibleRanges(&ranges);
|
||||
uint32_t len = ranges.Length();
|
||||
for (uint32_t idx = 0; idx < len; idx++)
|
||||
xpcRanges->AppendElement(new xpcAccessibleTextRange(Move(ranges[idx])),
|
||||
false);
|
||||
|
||||
xpcRanges.forget(aRanges);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
xpcAccessibleHyperText::GetRangeByChild(nsIAccessible* aChild,
|
||||
nsIAccessibleTextRange** aRange)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aRange);
|
||||
*aRange = nullptr;
|
||||
|
||||
HyperTextAccessible* text = static_cast<HyperTextAccessible*>(this);
|
||||
if (text->IsDefunct())
|
||||
return NS_ERROR_FAILURE;
|
||||
|
||||
nsRefPtr<Accessible> child = do_QueryObject(aChild);
|
||||
if (child) {
|
||||
nsRefPtr<xpcAccessibleTextRange> range = new xpcAccessibleTextRange;
|
||||
text->RangeByChild(child, range->mRange);
|
||||
if (range->mRange.IsValid())
|
||||
range.forget(aRange);
|
||||
}
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
xpcAccessibleHyperText::GetRangeAtPoint(int32_t aX, int32_t aY,
|
||||
nsIAccessibleTextRange** aRange)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aRange);
|
||||
*aRange = nullptr;
|
||||
|
||||
HyperTextAccessible* text = static_cast<HyperTextAccessible*>(this);
|
||||
if (text->IsDefunct())
|
||||
return NS_ERROR_FAILURE;
|
||||
|
||||
nsRefPtr<xpcAccessibleTextRange> range = new xpcAccessibleTextRange;
|
||||
text->RangeAtPoint(aX, aY, range->mRange);
|
||||
if (range->mRange.IsValid())
|
||||
range.forget(aRange);
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// nsIAccessibleEditableText
|
||||
|
||||
|
60
accessible/src/xpcom/xpcAccessibleTextRange.cpp
Normal file
@ -0,0 +1,60 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
/* vim: set ts=2 et sw=2 tw=80: */
|
||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
||||
* You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
#include "xpcAccessibleTextRange.h"
|
||||
|
||||
#include "HyperTextAccessible.h"
|
||||
#include "TextRange.h"
|
||||
|
||||
using namespace mozilla;
|
||||
using namespace mozilla::a11y;
|
||||
|
||||
// nsISupports
|
||||
NS_IMPL_ISUPPORTS1(xpcAccessibleTextRange, nsIAccessibleTextRange)
|
||||
|
||||
// nsIAccessibleTextRange
|
||||
|
||||
NS_IMETHODIMP
|
||||
xpcAccessibleTextRange::GetStartContainer(nsIAccessible** aAnchor)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aAnchor);
|
||||
*aAnchor = static_cast<nsIAccessible*>(mRange.StartContainer());
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
xpcAccessibleTextRange::GetStartOffset(int32_t* aOffset)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aOffset);
|
||||
*aOffset = mRange.StartOffset();
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
xpcAccessibleTextRange::GetEndContainer(nsIAccessible** aAnchor)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aAnchor);
|
||||
*aAnchor = static_cast<nsIAccessible*>(mRange.EndContainer());
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
xpcAccessibleTextRange::GetEndOffset(int32_t* aOffset)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aOffset);
|
||||
*aOffset = mRange.EndOffset();
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
xpcAccessibleTextRange::GetText(nsAString& aText)
|
||||
{
|
||||
nsAutoString text;
|
||||
mRange.Text(text);
|
||||
aText.Assign(text);
|
||||
|
||||
return NS_OK;
|
||||
}
|
46
accessible/src/xpcom/xpcAccessibleTextRange.h
Normal file
@ -0,0 +1,46 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
/* vim: set ts=2 et sw=2 tw=80: */
|
||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
||||
* You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
#ifndef mozilla_a11y_xpcAccessibleTextRange_h_
|
||||
#define mozilla_a11y_xpcAccessibleTextRange_h_
|
||||
|
||||
#include "nsIAccessibleTextRange.h"
|
||||
#include "TextRange.h"
|
||||
|
||||
#include "mozilla/Move.h"
|
||||
|
||||
namespace mozilla {
|
||||
namespace a11y {
|
||||
|
||||
class TextRange;
|
||||
|
||||
class xpcAccessibleTextRange MOZ_FINAL : public nsIAccessibleTextRange
|
||||
{
|
||||
public:
|
||||
NS_DECL_ISUPPORTS
|
||||
|
||||
NS_IMETHOD GetStartContainer(nsIAccessible** aAnchor) MOZ_FINAL MOZ_OVERRIDE;
|
||||
NS_IMETHOD GetStartOffset(int32_t* aOffset) MOZ_FINAL MOZ_OVERRIDE;
|
||||
NS_IMETHOD GetEndContainer(nsIAccessible** aAnchor) MOZ_FINAL MOZ_OVERRIDE;
|
||||
NS_IMETHOD GetEndOffset(int32_t* aOffset) MOZ_FINAL MOZ_OVERRIDE;
|
||||
NS_IMETHOD GetText(nsAString& aText) MOZ_FINAL MOZ_OVERRIDE;
|
||||
|
||||
private:
|
||||
xpcAccessibleTextRange(TextRange&& aRange) :
|
||||
mRange(Forward<TextRange>(aRange)) {}
|
||||
xpcAccessibleTextRange() {}
|
||||
friend class xpcAccessibleHyperText;
|
||||
|
||||
xpcAccessibleTextRange(const xpcAccessibleTextRange&) MOZ_DELETE;
|
||||
xpcAccessibleTextRange& operator =(const xpcAccessibleTextRange&) MOZ_DELETE;
|
||||
|
||||
TextRange mRange;
|
||||
};
|
||||
|
||||
} // namespace a11y
|
||||
} // namespace mozilla
|
||||
|
||||
#endif
|
1
aclocal.m4
vendored
@ -11,6 +11,7 @@ builtin(include, build/autoconf/toolchain.m4)dnl
|
||||
builtin(include, build/autoconf/ccache.m4)dnl
|
||||
builtin(include, build/autoconf/wrapper.m4)dnl
|
||||
builtin(include, build/autoconf/nspr.m4)dnl
|
||||
builtin(include, build/autoconf/nspr-build.m4)dnl
|
||||
builtin(include, build/autoconf/nss.m4)dnl
|
||||
builtin(include, build/autoconf/pkg.m4)dnl
|
||||
builtin(include, build/autoconf/codeset.m4)dnl
|
||||
|
@ -1,4 +1,5 @@
|
||||
[DEFAULT]
|
||||
skip-if = (buildapp == 'b2g' && toolkit != 'gonk') #require OOP support for mochitest-b2g-desktop, Bug 957554
|
||||
support-files =
|
||||
RecordingStatusChromeScript.js
|
||||
RecordingStatusHelper.js
|
||||
|
@ -1120,6 +1120,14 @@ pref("devtools.toolbox.toolbarSpec", '["splitconsole", "paintflashing toggle","t
|
||||
pref("devtools.toolbox.sideEnabled", true);
|
||||
pref("devtools.toolbox.zoomValue", "1");
|
||||
|
||||
// Toolbox Button preferences
|
||||
pref("devtools.command-button-pick.enabled", true);
|
||||
pref("devtools.command-button-splitconsole.enabled", true);
|
||||
pref("devtools.command-button-paintflashing.enabled", false);
|
||||
pref("devtools.command-button-tilt.enabled", false);
|
||||
pref("devtools.command-button-scratchpad.enabled", false);
|
||||
pref("devtools.command-button-responsive.enabled", true);
|
||||
|
||||
// Inspector preferences
|
||||
// Enable the Inspector
|
||||
pref("devtools.inspector.enabled", true);
|
||||
|
@ -9,3 +9,7 @@
|
||||
<svg:clipPath id="tab-curve-clip-path-end" clipPathUnits="objectBoundingBox">
|
||||
<svg:path d="m 0,0.0625 -0.05,0 0,0.938 1,0 0,-0.028 C 0.67917542,0.95840561 0.56569036,0.81970962 0.51599998,0.5625 0.48279998,0.3905 0.465,0.0659 0,0.0625 z"/>
|
||||
</svg:clipPath>
|
||||
|
||||
<svg:clipPath id="tab-hover-clip-path" clipPathUnits="objectBoundingBox">
|
||||
<svg:path d="M 0,0.2 0,1 1,1, 1,0.2 z"/>
|
||||
</svg:clipPath>
|
||||
|
Before Width: | Height: | Size: 731 B After Width: | Height: | Size: 865 B |
@ -237,7 +237,8 @@
|
||||
flip="none"
|
||||
side="left"
|
||||
position="leftcenter topright"
|
||||
noautohide="true">
|
||||
noautohide="true"
|
||||
hidden="true">
|
||||
<hbox class="customization-tipPanel-wrapper">
|
||||
<vbox class="customization-tipPanel-infoBox"/>
|
||||
<vbox class="customization-tipPanel-content" flex="1">
|
||||
|
@ -569,6 +569,7 @@ CustomizeMode.prototype = {
|
||||
});
|
||||
}
|
||||
|
||||
this.tipPanel.hidden = false;
|
||||
this.tipPanel.openPopup(anchorNode);
|
||||
Services.prefs.setBoolPref(kShownPref, true);
|
||||
},
|
||||
|
@ -461,7 +461,7 @@ var PlacesOrganizer = {
|
||||
let backupFilePaths = yield PlacesBackups.getBackupFiles();
|
||||
for (let backupFilePath of backupFilePaths) {
|
||||
if (OS.Path.basename(backupFilePath) == backupName) {
|
||||
PlacesOrganizer.restoreBookmarksFromFile(new FileUtils.File(backupFilePath));
|
||||
PlacesOrganizer.restoreBookmarksFromFile(backupFilePath);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -479,7 +479,7 @@ var PlacesOrganizer = {
|
||||
let fp = Cc["@mozilla.org/filepicker;1"].createInstance(Ci.nsIFilePicker);
|
||||
let fpCallback = function fpCallback_done(aResult) {
|
||||
if (aResult != Ci.nsIFilePicker.returnCancel) {
|
||||
this.restoreBookmarksFromFile(fp.file);
|
||||
this.restoreBookmarksFromFile(fp.file.path);
|
||||
}
|
||||
}.bind(this);
|
||||
|
||||
@ -495,9 +495,9 @@ var PlacesOrganizer = {
|
||||
/**
|
||||
* Restores bookmarks from a JSON file.
|
||||
*/
|
||||
restoreBookmarksFromFile: function PO_restoreBookmarksFromFile(aFile) {
|
||||
restoreBookmarksFromFile: function PO_restoreBookmarksFromFile(aFilePath) {
|
||||
// check file extension
|
||||
if (!aFile.leafName.match(/\.json$/)) {
|
||||
if (!aFilePath.endsWith("json")) {
|
||||
this._showErrorAlert(PlacesUIUtils.getString("bookmarksRestoreFormatError"));
|
||||
return;
|
||||
}
|
||||
@ -512,7 +512,7 @@ var PlacesOrganizer = {
|
||||
|
||||
Task.spawn(function() {
|
||||
try {
|
||||
yield BookmarkJSONUtils.importFromFile(aFile, true);
|
||||
yield BookmarkJSONUtils.importFromFile(aFilePath, true);
|
||||
} catch(ex) {
|
||||
PlacesOrganizer._showErrorAlert(PlacesUIUtils.getString("bookmarksRestoreParseError"));
|
||||
}
|
||||
|
@ -4,8 +4,6 @@
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
TEST_DIRS += ['tests']
|
||||
|
||||
for var in ('MOZ_APP_NAME', 'MOZ_MACBUNDLE_NAME'):
|
||||
DEFINES[var] = CONFIG[var]
|
||||
|
||||
|
@ -1,11 +0,0 @@
|
||||
# -- This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# - License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
||||
# - You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
ifdef ENABLE_TESTS
|
||||
pp_mochitest_browser_files := \
|
||||
browser_privacypane_4.js \
|
||||
$(NULL)
|
||||
pp_mochitest_browser_files_PATH := $(DEPTH)/_tests/testing/mochitest/browser/$(relativesrcdir)
|
||||
PP_TARGETS += pp_mochitest_browser_files
|
||||
endif # ENABLE_TESTS
|
@ -12,5 +12,6 @@ skip-if = !healthreport || (os == 'linux' && debug)
|
||||
[browser_proxy_backup.js]
|
||||
[browser_privacypane_1.js]
|
||||
[browser_privacypane_3.js]
|
||||
[browser_privacypane_4.js]
|
||||
[browser_privacypane_5.js]
|
||||
[browser_privacypane_8.js]
|
||||
|
@ -11,17 +11,20 @@ function test() {
|
||||
rootDir = "file://" + tmpdir.path + '/';
|
||||
}
|
||||
loader.loadSubScript(rootDir + "privacypane_tests_perwindow.js", this);
|
||||
let runtime = Cc["@mozilla.org/xre/app-info;1"].getService(Ci.nsIXULRuntime);
|
||||
|
||||
run_test_subset([
|
||||
run_test_subset(Array.concat([
|
||||
test_custom_retention("acceptCookies", "remember"),
|
||||
test_custom_retention("acceptCookies", "custom"),
|
||||
#ifdef RELEASE_BUILD
|
||||
test_custom_retention("acceptCookies", "custom")
|
||||
],
|
||||
(runtime.isReleaseBuild ? [
|
||||
test_custom_retention("acceptThirdPartyMenu", "remember", "visited"),
|
||||
test_custom_retention("acceptThirdPartyMenu", "custom", "always"),
|
||||
#else
|
||||
test_custom_retention("acceptThirdPartyMenu", "custom", "always")
|
||||
]
|
||||
: [
|
||||
test_custom_retention("acceptThirdPartyMenu", "remember", "always"),
|
||||
test_custom_retention("acceptThirdPartyMenu", "custom", "visited"),
|
||||
#endif
|
||||
test_custom_retention("acceptThirdPartyMenu", "custom", "visited")
|
||||
]), [
|
||||
test_custom_retention("keepCookiesUntil", "remember", 1),
|
||||
test_custom_retention("keepCookiesUntil", "custom", 2),
|
||||
test_custom_retention("keepCookiesUntil", "custom", 0),
|
||||
@ -31,5 +34,5 @@ function test() {
|
||||
|
||||
// reset all preferences to their default values once we're done
|
||||
reset_preferences
|
||||
]);
|
||||
]));
|
||||
}
|
||||
|
@ -1,5 +0,0 @@
|
||||
# -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
|
||||
# vim: set filetype=python:
|
||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
@ -326,6 +326,7 @@ function reset_preferences(win) {
|
||||
let testRunner;
|
||||
function run_test_subset(subset) {
|
||||
Services.prefs.setBoolPref("browser.preferences.instantApply", true);
|
||||
dump("subset: " + [x.name for (x of subset)].join(",") + "\n");
|
||||
|
||||
waitForExplicitFinish();
|
||||
registerCleanupFunction(function() {
|
||||
|
@ -5,7 +5,6 @@
|
||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
PARALLEL_DIRS += ['in-content']
|
||||
TEST_DIRS += ['tests']
|
||||
|
||||
BROWSER_CHROME_MANIFESTS += [
|
||||
'in-content/tests/browser.ini',
|
||||
|
@ -1,11 +0,0 @@
|
||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
ifdef ENABLE_TESTS
|
||||
pp_mochitest_browser_files := \
|
||||
browser_privacypane_4.js \
|
||||
$(NULL)
|
||||
pp_mochitest_browser_files_PATH := $(DEPTH)/_tests/testing/mochitest/browser/$(relativesrcdir)
|
||||
PP_TARGETS += pp_mochitest_browser_files
|
||||
endif # ENABLE_TESTS
|
@ -12,5 +12,6 @@ skip-if = !healthreport || (os == 'linux' && debug)
|
||||
[browser_permissions.js]
|
||||
[browser_privacypane_1.js]
|
||||
[browser_privacypane_3.js]
|
||||
[browser_privacypane_4.js]
|
||||
[browser_privacypane_5.js]
|
||||
[browser_privacypane_8.js]
|
||||
|
@ -12,17 +12,20 @@ function test() {
|
||||
rootDir = "file://" + tmpdir.path + '/';
|
||||
}
|
||||
loader.loadSubScript(rootDir + "privacypane_tests_perwindow.js", this);
|
||||
let runtime = Cc["@mozilla.org/xre/app-info;1"].getService(Ci.nsIXULRuntime);
|
||||
|
||||
run_test_subset([
|
||||
run_test_subset(Array.concat([
|
||||
test_custom_retention("acceptCookies", "remember"),
|
||||
test_custom_retention("acceptCookies", "custom"),
|
||||
#ifdef RELEASE_BUILD
|
||||
test_custom_retention("acceptCookies", "custom")
|
||||
],
|
||||
(runtime.isReleaseBuild ? [
|
||||
test_custom_retention("acceptThirdPartyMenu", "remember", "visited"),
|
||||
test_custom_retention("acceptThirdPartyMenu", "custom", "always"),
|
||||
#else
|
||||
test_custom_retention("acceptThirdPartyMenu", "custom", "always")
|
||||
]
|
||||
: [
|
||||
test_custom_retention("acceptThirdPartyMenu", "remember", "always"),
|
||||
test_custom_retention("acceptThirdPartyMenu", "custom", "visited"),
|
||||
#endif
|
||||
test_custom_retention("acceptThirdPartyMenu", "custom", "visited")
|
||||
]), [
|
||||
test_custom_retention("keepCookiesUntil", "remember", 1),
|
||||
test_custom_retention("keepCookiesUntil", "custom", 2),
|
||||
test_custom_retention("keepCookiesUntil", "custom", 0),
|
||||
@ -32,5 +35,5 @@ function test() {
|
||||
|
||||
// reset all preferences to their default values once we're done
|
||||
reset_preferences
|
||||
]);
|
||||
]));
|
||||
}
|
||||
|
@ -1,5 +0,0 @@
|
||||
# -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
|
||||
# vim: set filetype=python:
|
||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
@ -1,14 +0,0 @@
|
||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
ifdef ENABLE_TESTS
|
||||
pp_mochitest_browser_files := \
|
||||
browser_google.js \
|
||||
browser_google_behavior.js \
|
||||
$(NULL)
|
||||
|
||||
pp_mochitest_browser_files_PATH := $(DEPTH)/_tests/testing/mochitest/browser/$(relativesrcdir)
|
||||
pp_mochitest_browser_files_FLAGS := -DMOZ_DISTRIBUTION_ID=$(MOZ_DISTRIBUTION_ID)
|
||||
PP_TARGETS += pp_mochitest_browser_files
|
||||
endif # ENABLE_TESTS
|
@ -14,5 +14,7 @@ support-files =
|
||||
[browser_483086.js]
|
||||
[browser_addEngine.js]
|
||||
[browser_contextmenu.js]
|
||||
[browser_google.js]
|
||||
[browser_google_behavior.js]
|
||||
[browser_healthreport.js]
|
||||
[browser_private_search_perwindowpb.js]
|
||||
|
@ -13,24 +13,28 @@ const MOZ_PARAM_LOCALE = /\{moz:locale\}/g;
|
||||
const MOZ_PARAM_DIST_ID = /\{moz:distributionID\}/g;
|
||||
const MOZ_PARAM_OFFICIAL = /\{moz:official\}/g;
|
||||
|
||||
let runtime = Cc["@mozilla.org/xre/app-info;1"].getService(Ci.nsIXULRuntime);
|
||||
// Custom search parameters
|
||||
#ifdef MOZ_OFFICIAL_BRANDING
|
||||
const MOZ_OFFICIAL = "official";
|
||||
#else
|
||||
const MOZ_OFFICIAL = "unofficial";
|
||||
#endif
|
||||
const MOZ_OFFICIAL = runtime.isOfficialBranding ? "official" : "unofficial";
|
||||
|
||||
#if MOZ_UPDATE_CHANNEL == beta
|
||||
const GOOGLE_CLIENT = "firefox-beta";
|
||||
#elif MOZ_UPDATE_CHANNEL == aurora
|
||||
const GOOGLE_CLIENT = "firefox-aurora";
|
||||
#elif MOZ_UPDATE_CHANNEL == nightly
|
||||
const GOOGLE_CLIENT = "firefox-nightly";
|
||||
#else
|
||||
const GOOGLE_CLIENT = "firefox-a";
|
||||
#endif
|
||||
var google_client;
|
||||
switch (runtime.defaultUpdateChannel) {
|
||||
case "beta":
|
||||
google_client = "firefox-beta";
|
||||
break;
|
||||
case "aurora":
|
||||
google_client = "firefox-aurora";
|
||||
break;
|
||||
case "nightly":
|
||||
google_client = "firefox-nightly";
|
||||
break;
|
||||
default:
|
||||
google_client = "firefox-a";
|
||||
break;
|
||||
}
|
||||
|
||||
#expand const MOZ_DISTRIBUTION_ID = __MOZ_DISTRIBUTION_ID__;
|
||||
const GOOGLE_CLIENT = google_client;
|
||||
const MOZ_DISTRIBUTION_ID = runtime.distributionID;
|
||||
|
||||
function getLocale() {
|
||||
const localePref = "general.useragent.locale";
|
||||
|
@ -13,24 +13,28 @@ const MOZ_PARAM_LOCALE = /\{moz:locale\}/g;
|
||||
const MOZ_PARAM_DIST_ID = /\{moz:distributionID\}/g;
|
||||
const MOZ_PARAM_OFFICIAL = /\{moz:official\}/g;
|
||||
|
||||
let runtime = Cc["@mozilla.org/xre/app-info;1"].getService(Ci.nsIXULRuntime);
|
||||
// Custom search parameters
|
||||
#ifdef MOZ_OFFICIAL_BRANDING
|
||||
const MOZ_OFFICIAL = "official";
|
||||
#else
|
||||
const MOZ_OFFICIAL = "unofficial";
|
||||
#endif
|
||||
const MOZ_OFFICIAL = runtime.isOfficialBranding ? "official" : "unofficial";
|
||||
|
||||
#if MOZ_UPDATE_CHANNEL == beta
|
||||
const GOOGLE_CLIENT = "firefox-beta";
|
||||
#elif MOZ_UPDATE_CHANNEL == aurora
|
||||
const GOOGLE_CLIENT = "firefox-aurora";
|
||||
#elif MOZ_UPDATE_CHANNEL == nightly
|
||||
const GOOGLE_CLIENT = "firefox-nightly";
|
||||
#else
|
||||
const GOOGLE_CLIENT = "firefox-a";
|
||||
#endif
|
||||
var google_client;
|
||||
switch (runtime.defaultUpdateChannel) {
|
||||
case "beta":
|
||||
google_client = "firefox-beta";
|
||||
break;
|
||||
case "aurora":
|
||||
google_client = "firefox-aurora";
|
||||
break;
|
||||
case "nightly":
|
||||
google_client = "firefox-nightly";
|
||||
break;
|
||||
default:
|
||||
google_client = "firefox-a";
|
||||
break;
|
||||
}
|
||||
|
||||
#expand const MOZ_DISTRIBUTION_ID = __MOZ_DISTRIBUTION_ID__;
|
||||
const GOOGLE_CLIENT = google_client;
|
||||
const MOZ_DISTRIBUTION_ID = runtime.distributionID;
|
||||
|
||||
function getLocale() {
|
||||
const localePref = "general.useragent.locale";
|
||||
|
@ -47,11 +47,6 @@
|
||||
padding: 4px 0 0; /* To align it with the checkbox */
|
||||
}
|
||||
|
||||
.options-citation-label + label {
|
||||
padding: 3px 0 0 !important; /* To align it with the checkbox */
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.hidden-labels-box:not(.visible) > label,
|
||||
.hidden-labels-box.visible ~ .hidden-labels-box > label:last-child {
|
||||
display: none;
|
||||
|
@ -15,6 +15,7 @@ support-files =
|
||||
[browser_toolbox_highlight.js]
|
||||
[browser_toolbox_hosts.js]
|
||||
[browser_toolbox_options.js]
|
||||
[browser_toolbox_options_disable_buttons.js]
|
||||
[browser_toolbox_options_disable_cache.js]
|
||||
[browser_toolbox_options_disable_js.js]
|
||||
# [browser_toolbox_raise.js] # Bug 962258
|
||||
|
@ -0,0 +1,148 @@
|
||||
/* Any copyright is dedicated to the Public Domain.
|
||||
* http://creativecommons.org/publicdomain/zero/1.0/ */
|
||||
|
||||
let doc = null, toolbox = null, panelWin = null, modifiedPrefs = [];
|
||||
|
||||
function test() {
|
||||
waitForExplicitFinish();
|
||||
|
||||
gBrowser.selectedTab = gBrowser.addTab();
|
||||
let target = TargetFactory.forTab(gBrowser.selectedTab);
|
||||
|
||||
gBrowser.selectedBrowser.addEventListener("load", function onLoad(evt) {
|
||||
gBrowser.selectedBrowser.removeEventListener(evt.type, onLoad, true);
|
||||
gDevTools.showToolbox(target)
|
||||
.then(testSelectTool)
|
||||
.then(testToggleToolboxButtons)
|
||||
.then(testPrefsAreRespectedWhenReopeningToolbox)
|
||||
.then(cleanup, errorHandler);
|
||||
}, true);
|
||||
|
||||
content.location = "data:text/html;charset=utf8,test for dynamically registering and unregistering tools";
|
||||
}
|
||||
|
||||
function testPrefsAreRespectedWhenReopeningToolbox() {
|
||||
let deferred = promise.defer();
|
||||
let target = TargetFactory.forTab(gBrowser.selectedTab);
|
||||
|
||||
info ("Closing toolbox to test after reopening");
|
||||
gDevTools.closeToolbox(target).then(() => {
|
||||
let target = TargetFactory.forTab(gBrowser.selectedTab);
|
||||
gDevTools.showToolbox(target)
|
||||
.then(testSelectTool)
|
||||
.then(() => {
|
||||
info ("Toolbox has been reopened. Checking UI state.");
|
||||
testPreferenceAndUIStateIsConsistent();
|
||||
deferred.resolve();
|
||||
});
|
||||
});
|
||||
|
||||
return deferred.promise;
|
||||
}
|
||||
|
||||
function testSelectTool(aToolbox) {
|
||||
let deferred = promise.defer();
|
||||
info ("Selecting the options panel");
|
||||
|
||||
toolbox = aToolbox;
|
||||
doc = toolbox.doc;
|
||||
toolbox.once("options-selected", (event, tool) => {
|
||||
ok(true, "Options panel selected via selectTool method");
|
||||
panelWin = tool.panelWin;
|
||||
deferred.resolve();
|
||||
});
|
||||
toolbox.selectTool("options");
|
||||
|
||||
return deferred.promise;
|
||||
}
|
||||
|
||||
function testPreferenceAndUIStateIsConsistent() {
|
||||
let checkNodes = [...panelWin.document.querySelectorAll("#enabled-toolbox-buttons-box > checkbox")];
|
||||
let toolboxButtonNodes = [...doc.querySelectorAll("#toolbox-buttons > toolbarbutton")];
|
||||
let toggleableTools = toolbox.toolboxButtons;
|
||||
|
||||
for (let tool of toggleableTools) {
|
||||
let isVisible = getBoolPref(tool.visibilityswitch);
|
||||
|
||||
let button = toolboxButtonNodes.filter(button=>button.id === tool.id)[0];
|
||||
is (!button.hasAttribute("hidden"), isVisible, "Button visibility matches pref for " + tool.id);
|
||||
|
||||
let check = checkNodes.filter(node=>node.id === tool.id)[0];
|
||||
is (check.checked, isVisible, "Checkbox should be selected based on current pref for " + tool.id);
|
||||
}
|
||||
}
|
||||
|
||||
function testToggleToolboxButtons() {
|
||||
let checkNodes = [...panelWin.document.querySelectorAll("#enabled-toolbox-buttons-box > checkbox")];
|
||||
let toolboxButtonNodes = [...doc.querySelectorAll("#toolbox-buttons > toolbarbutton")];
|
||||
let visibleButtons = toolboxButtonNodes.filter(button=>!button.hasAttribute("hidden"));
|
||||
let toggleableTools = toolbox.toolboxButtons;
|
||||
|
||||
is (checkNodes.length, toggleableTools.length, "All of the buttons are toggleable." );
|
||||
is (checkNodes.length, toolboxButtonNodes.length, "All of the DOM buttons are toggleable." );
|
||||
|
||||
for (let tool of toggleableTools) {
|
||||
let id = tool.id;
|
||||
let matchedCheckboxes = checkNodes.filter(node=>node.id === id);
|
||||
let matchedButtons = toolboxButtonNodes.filter(button=>button.id === id);
|
||||
ok (matchedCheckboxes.length === 1,
|
||||
"There should be a single toggle checkbox for: " + id);
|
||||
ok (matchedButtons.length === 1,
|
||||
"There should be a DOM button for: " + id);
|
||||
is (matchedButtons[0], tool.button,
|
||||
"DOM buttons should match for: " + id);
|
||||
|
||||
is (matchedCheckboxes[0].getAttribute("label"), tool.label,
|
||||
"The label for checkbox matches the tool definition.")
|
||||
is (matchedButtons[0].getAttribute("tooltiptext"), tool.label,
|
||||
"The tooltip for button matches the tool definition.")
|
||||
}
|
||||
|
||||
// Store modified pref names so that they can be cleared on error.
|
||||
for (let tool of toggleableTools) {
|
||||
let pref = tool.visibilityswitch;
|
||||
modifiedPrefs.push(pref);
|
||||
}
|
||||
|
||||
// Try checking each checkbox, making sure that it changes the preference
|
||||
for (let node of checkNodes) {
|
||||
let tool = toggleableTools.filter(tool=>tool.id === node.id)[0];
|
||||
let isVisible = getBoolPref(tool.visibilityswitch);
|
||||
|
||||
testPreferenceAndUIStateIsConsistent();
|
||||
toggleButton(node);
|
||||
testPreferenceAndUIStateIsConsistent();
|
||||
|
||||
let isVisibleAfterClick = getBoolPref(tool.visibilityswitch);
|
||||
|
||||
is (isVisible, !isVisibleAfterClick,
|
||||
"Clicking on the node should have toggled visibility preference for " + tool.visibilityswitch);
|
||||
}
|
||||
|
||||
return promise.resolve();
|
||||
}
|
||||
|
||||
function getBoolPref(key) {
|
||||
return Services.prefs.getBoolPref(key);
|
||||
}
|
||||
|
||||
function toggleButton(node) {
|
||||
node.scrollIntoView();
|
||||
EventUtils.synthesizeMouseAtCenter(node, {}, panelWin);
|
||||
}
|
||||
|
||||
function cleanup() {
|
||||
toolbox.destroy().then(function() {
|
||||
gBrowser.removeCurrentTab();
|
||||
for (let pref of modifiedPrefs) {
|
||||
Services.prefs.clearUserPref(pref);
|
||||
}
|
||||
toolbox = doc = panelWin = modifiedPrefs = null;
|
||||
finish();
|
||||
});
|
||||
}
|
||||
|
||||
function errorHandler(error) {
|
||||
ok(false, "Unexpected error: " + error);
|
||||
cleanup();
|
||||
}
|
@ -61,6 +61,7 @@ OptionsPanel.prototype = {
|
||||
|
||||
return targetPromise.then(() => {
|
||||
this.setupToolsList();
|
||||
this.setupToolbarButtonsList();
|
||||
this.populatePreferences();
|
||||
|
||||
this._disableJSClicked = this._disableJSClicked.bind(this);
|
||||
@ -81,6 +82,43 @@ OptionsPanel.prototype = {
|
||||
});
|
||||
},
|
||||
|
||||
setupToolbarButtonsList: function() {
|
||||
let enabledToolbarButtonsBox = this.panelDoc.getElementById("enabled-toolbox-buttons-box");
|
||||
enabledToolbarButtonsBox.textContent = "";
|
||||
|
||||
let toggleableButtons = this.toolbox.toolboxButtons;
|
||||
let setToolboxButtonsVisibility =
|
||||
this.toolbox.setToolboxButtonsVisibility.bind(this.toolbox);
|
||||
|
||||
let onCheckboxClick = (checkbox) => {
|
||||
let toolDefinition = toggleableButtons.filter(tool => tool.id === checkbox.id)[0];
|
||||
Services.prefs.setBoolPref(toolDefinition.visibilityswitch, checkbox.checked);
|
||||
setToolboxButtonsVisibility();
|
||||
};
|
||||
|
||||
let createCommandCheckbox = tool => {
|
||||
let checkbox = this.panelDoc.createElement("checkbox");
|
||||
checkbox.setAttribute("id", tool.id);
|
||||
checkbox.setAttribute("label", tool.label);
|
||||
checkbox.setAttribute("checked", this.getBoolPref(tool.visibilityswitch));
|
||||
checkbox.addEventListener("command", onCheckboxClick.bind(this, checkbox));
|
||||
return checkbox;
|
||||
};
|
||||
|
||||
for (let tool of toggleableButtons) {
|
||||
enabledToolbarButtonsBox.appendChild(createCommandCheckbox(tool));
|
||||
}
|
||||
},
|
||||
|
||||
getBoolPref: function(key) {
|
||||
try {
|
||||
return Services.prefs.getBoolPref(key);
|
||||
}
|
||||
catch (ex) {
|
||||
return true;
|
||||
}
|
||||
},
|
||||
|
||||
setupToolsList: function() {
|
||||
let defaultToolsBox = this.panelDoc.getElementById("default-tools-box");
|
||||
let additionalToolsBox = this.panelDoc.getElementById("additional-tools-box");
|
||||
@ -90,15 +128,6 @@ OptionsPanel.prototype = {
|
||||
defaultToolsBox.textContent = "";
|
||||
additionalToolsBox.textContent = "";
|
||||
|
||||
let pref = function(key) {
|
||||
try {
|
||||
return Services.prefs.getBoolPref(key);
|
||||
}
|
||||
catch (ex) {
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
let onCheckboxClick = function(id) {
|
||||
let toolDefinition = gDevTools._tools.get(id);
|
||||
// Set the kill switch pref boolean to true
|
||||
@ -124,7 +153,7 @@ OptionsPanel.prototype = {
|
||||
l10n("options.toolNotSupportedMarker", tool.label));
|
||||
checkbox.setAttribute("unsupported", "");
|
||||
}
|
||||
checkbox.setAttribute("checked", pref(tool.visibilityswitch));
|
||||
checkbox.setAttribute("checked", this.getBoolPref(tool.visibilityswitch));
|
||||
checkbox.addEventListener("command", onCheckboxClick.bind(checkbox, tool.id));
|
||||
return checkbox;
|
||||
};
|
||||
|
@ -20,9 +20,12 @@
|
||||
<vbox id="default-tools-box" class="options-groupbox" tabindex="0"/>
|
||||
<label value="&options.selectAdditionalTools.label;"/>
|
||||
<vbox id="additional-tools-box" class="options-groupbox"/>
|
||||
<label value="&options.selectEnabledToolboxButtons.label;"/>
|
||||
<vbox id="enabled-toolbox-buttons-box" class="options-groupbox"/>
|
||||
<label id="tools-not-supported-label"
|
||||
class="options-citation-label theme-comment"
|
||||
value="&options.toolNotSupported.label;"/>
|
||||
|
||||
</vbox>
|
||||
<vbox class="options-vertical-pane" flex="1">
|
||||
<label value="&options.selectDevToolsTheme.label;"/>
|
||||
|
@ -543,6 +543,7 @@ Toolbox.prototype = {
|
||||
this.doc, this._requisition);
|
||||
let container = this.doc.getElementById("toolbox-buttons");
|
||||
buttons.forEach(container.appendChild.bind(container));
|
||||
this.setToolboxButtonsVisibility();
|
||||
},
|
||||
|
||||
/**
|
||||
@ -562,6 +563,57 @@ Toolbox.prototype = {
|
||||
this._pickerButton.addEventListener("command", this._togglePicker, false);
|
||||
},
|
||||
|
||||
/**
|
||||
* Return all toolbox buttons (command buttons, plus any others that were
|
||||
* added manually).
|
||||
*/
|
||||
get toolboxButtons() {
|
||||
// White-list buttons that can be toggled to prevent adding prefs for
|
||||
// addons that have manually inserted toolbarbuttons into DOM.
|
||||
return [
|
||||
"command-button-pick",
|
||||
"command-button-splitconsole",
|
||||
"command-button-responsive",
|
||||
"command-button-paintflashing",
|
||||
"command-button-tilt",
|
||||
"command-button-scratchpad"
|
||||
].map(id => {
|
||||
let button = this.doc.getElementById(id);
|
||||
// Some buttons may not exist inside of Browser Toolbox
|
||||
if (!button) {
|
||||
return false;
|
||||
}
|
||||
return {
|
||||
id: id,
|
||||
button: button,
|
||||
label: button.getAttribute("tooltiptext"),
|
||||
visibilityswitch: "devtools." + id + ".enabled"
|
||||
}
|
||||
}).filter(button=>button);
|
||||
},
|
||||
|
||||
/**
|
||||
* Ensure the visibility of each toolbox button matches the
|
||||
* preference value. Simply hide buttons that are preffed off.
|
||||
*/
|
||||
setToolboxButtonsVisibility: function() {
|
||||
this.toolboxButtons.forEach(buttonSpec => {
|
||||
let {visibilityswitch, id, button}=buttonSpec;
|
||||
let on = true;
|
||||
try {
|
||||
on = Services.prefs.getBoolPref(visibilityswitch);
|
||||
} catch (ex) { }
|
||||
|
||||
if (button) {
|
||||
if (on) {
|
||||
button.removeAttribute("hidden");
|
||||
} else {
|
||||
button.setAttribute("hidden", "true");
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* Build a tab for one tool definition and add to the toolbox
|
||||
*
|
||||
|
@ -1,14 +0,0 @@
|
||||
#
|
||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
include $(topsrcdir)/config/makefiles/mochitest.mk
|
||||
|
||||
mochitest_browser_dest := $(call mochitestdir,browser)
|
||||
|
||||
mochitest_bug_677930_data_FILES = \
|
||||
browser_styleinspector_bug_677930_urls_clickable/browser_styleinspector_bug_677930_urls_clickable.css \
|
||||
$(NULL)
|
||||
mochitest_bug_677930_data_DEST = $(mochitest_browser_dest)/browser_styleinspector_bug_677930_urls_clickable
|
||||
INSTALL_TARGETS += mochitest_bug_677930_data
|
@ -2,6 +2,7 @@
|
||||
support-files =
|
||||
head.js
|
||||
browser_bug722196_identify_media_queries.html
|
||||
browser_styleinspector_bug_677930_urls_clickable/browser_styleinspector_bug_677930_urls_clickable.css
|
||||
|
||||
[browser_bug683672.js]
|
||||
support-files = browser_bug683672.html
|
||||
|
@ -92,6 +92,11 @@
|
||||
- installed by add-ons. -->
|
||||
<!ENTITY options.selectAdditionalTools.label "Developer Tools installed by add-ons">
|
||||
|
||||
<!-- LOCALIZATION NOTE (options.selectEnabledToolboxButtons.label): This is the label for
|
||||
- the heading of group of checkboxes corresponding to the default developer
|
||||
- tool buttons. -->
|
||||
<!ENTITY options.selectEnabledToolboxButtons.label "Available Toolbox Buttons">
|
||||
|
||||
<!-- LOCALIZATION NOTE (options.toolNotSupported.label): This is the label for
|
||||
- the explanation of the * marker on a tool which is currently not supported
|
||||
- for the target of the toolbox. -->
|
||||
|
@ -27,6 +27,11 @@ function tearDown() {
|
||||
PanelUI.hide();
|
||||
BookmarksTestHelper.restore();
|
||||
HistoryTestHelper.restore();
|
||||
Browser.selectedTab
|
||||
.browser
|
||||
.contentWindow
|
||||
.QueryInterface(Ci.nsIInterfaceRequestor)
|
||||
.getInterface(Ci.nsIDOMWindowUtils).clearNativeTouchSequence();
|
||||
}
|
||||
|
||||
/*
|
||||
@ -85,7 +90,7 @@ gTests.push({
|
||||
let domUtils = win.QueryInterface(Ci.nsIInterfaceRequestor).getInterface(Ci.nsIDOMWindowUtils);
|
||||
var touchdrag = new TouchDragAndHold();
|
||||
touchdrag.useNativeEvents = true;
|
||||
touchdrag.stepTimeout = 20;
|
||||
touchdrag.stepTimeout = 5;
|
||||
touchdrag.numSteps = 20;
|
||||
|
||||
stopwatch.start();
|
||||
@ -122,7 +127,7 @@ gTests.push({
|
||||
let domUtils = win.QueryInterface(Ci.nsIInterfaceRequestor).getInterface(Ci.nsIDOMWindowUtils);
|
||||
var touchdrag = new TouchDragAndHold();
|
||||
touchdrag.useNativeEvents = true;
|
||||
touchdrag.stepTimeout = 20;
|
||||
touchdrag.stepTimeout = 5;
|
||||
touchdrag.numSteps = 10;
|
||||
|
||||
let iterations = 3;
|
||||
|
@ -201,13 +201,10 @@ menulist {
|
||||
-moz-box-align: center;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.menu-popup > richlistbox > richlistitem {
|
||||
padding-right: 50px;
|
||||
-moz-padding-end: 50px;
|
||||
}
|
||||
|
||||
/* Additional styles applied to popups for form <select> elements. */
|
||||
|
||||
#select-container {
|
||||
padding: 0;
|
||||
position: absolute;
|
||||
|
@ -127,17 +127,17 @@ toolbarpaletteitem[place="palette"] > #personal-bookmarks > #bookmarks-toolbar-p
|
||||
/* ----- BOOKMARK STAR ANIMATION ----- */
|
||||
|
||||
@keyframes animation-bookmarkAdded {
|
||||
from { transform: rotate(0deg) translateX(-20px) rotate(0deg) scale(1); opacity: 0; }
|
||||
60% { transform: rotate(180deg) translateX(-20px) rotate(-180deg) scale(2.2); opacity: 1; }
|
||||
from { transform: rotate(0deg) translateX(-16px) rotate(0deg) scale(1); opacity: 0; }
|
||||
60% { transform: rotate(180deg) translateX(-16px) rotate(-180deg) scale(2.2); opacity: 1; }
|
||||
80% { opacity: 1; }
|
||||
to { transform: rotate(180deg) translateX(-20px) rotate(-180deg) scale(1); opacity: 0; }
|
||||
to { transform: rotate(180deg) translateX(-16px) rotate(-180deg) scale(1); opacity: 0; }
|
||||
}
|
||||
|
||||
@keyframes animation-bookmarkAddedToBookmarksBar {
|
||||
from { transform: rotate(0deg) translateX(-12px) rotate(0deg) scale(1); opacity: 0; }
|
||||
60% { transform: rotate(180deg) translateX(-12px) rotate(-180deg) scale(2.2); opacity: 1; }
|
||||
from { transform: rotate(0deg) translateX(-10px) rotate(0deg) scale(1); opacity: 0; }
|
||||
60% { transform: rotate(180deg) translateX(-10px) rotate(-180deg) scale(2.2); opacity: 1; }
|
||||
80% { opacity: 1; }
|
||||
to { transform: rotate(180deg) translateX(-12px) rotate(-180deg) scale(1); opacity: 0; }
|
||||
to { transform: rotate(180deg) translateX(-10px) rotate(-180deg) scale(1); opacity: 0; }
|
||||
}
|
||||
|
||||
@keyframes animation-bookmarkPulse {
|
||||
@ -174,6 +174,10 @@ toolbarpaletteitem[place="palette"] > #personal-bookmarks > #bookmarks-toolbar-p
|
||||
animation: animation-bookmarkAddedToBookmarksBar 800ms;
|
||||
}
|
||||
|
||||
#bookmarks-menu-button[notification="finish"] {
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
#bookmarks-menu-button[notification="finish"] > .toolbarbutton-menubutton-dropmarker > .dropmarker-icon {
|
||||
animation: animation-bookmarkPulse 300ms;
|
||||
animation-delay: 600ms;
|
||||
@ -573,7 +577,7 @@ menuitem:not([type]):not(.menuitem-tooltip):not(.menuitem-iconic-tooltip) {
|
||||
border: 1px solid transparent;
|
||||
border-radius: 2px;
|
||||
transition-property: background-color, border-color;
|
||||
transition-duration: 250ms;
|
||||
transition-duration: 150ms;
|
||||
}
|
||||
|
||||
:-moz-any(#TabsToolbar, #nav-bar) .toolbarbutton-1:not(:-moz-any(@primaryToolbarButtons@)) > .toolbarbutton-icon,
|
||||
@ -596,8 +600,8 @@ toolbarbutton[sdk-button="true"][cui-areatype="toolbar"] > .toolbarbutton-icon {
|
||||
-moz-padding-end: 5px;
|
||||
}
|
||||
|
||||
:-moz-any(#TabsToolbar, #nav-bar) .toolbarbutton-1 > .toolbarbutton-menubutton-button:not([disabled=true]):hover > .toolbarbutton-icon,
|
||||
:-moz-any(#TabsToolbar, #nav-bar) .toolbarbutton-1:not([buttonover]):not([open]):hover > .toolbarbutton-menubutton-dropmarker > .dropmarker-icon,
|
||||
:-moz-any(#TabsToolbar, #nav-bar) .toolbarbutton-1:not([disabled=true]):hover > .toolbarbutton-menubutton-button > .toolbarbutton-icon,
|
||||
:-moz-any(#TabsToolbar, #nav-bar) .toolbarbutton-1:not([disabled=true]):hover > .toolbarbutton-menubutton-dropmarker > .dropmarker-icon,
|
||||
:-moz-any(#TabsToolbar, #nav-bar) .toolbarbutton-1:not([disabled=true]):hover > .toolbarbutton-icon {
|
||||
background-color: hsla(0,0%,100%,.3);
|
||||
background-image: linear-gradient(hsla(0,0%,100%,.7), hsla(0,0%,100%,.2));
|
||||
@ -648,6 +652,10 @@ toolbarbutton[sdk-button="true"][cui-areatype="toolbar"] > .toolbarbutton-icon {
|
||||
box-shadow: 0 0 0 1px hsla(0,0%,100%,.2);
|
||||
}
|
||||
|
||||
:-moz-any(#TabsToolbar, #nav-bar) .toolbarbutton-1 > .toolbarbutton-menubutton-dropmarker {
|
||||
-moz-margin-start: -4px;
|
||||
}
|
||||
|
||||
#forward-button[disabled] {
|
||||
transform: scale(0);
|
||||
opacity: 0;
|
||||
|
@ -73,6 +73,7 @@ browser.jar:
|
||||
skin/classic/browser/webRTC-sharingMicrophone-16.png
|
||||
skin/classic/browser/customizableui/background-noise-toolbar.png (customizableui/background-noise-toolbar.png)
|
||||
skin/classic/browser/customizableui/customize-illustration.png (../shared/customizableui/customize-illustration.png)
|
||||
skin/classic/browser/customizableui/customize-illustration-rtl.png (../shared/customizableui/customize-illustration-rtl.png)
|
||||
skin/classic/browser/customizableui/customizeMode-gridTexture.png (customizableui/customizeMode-gridTexture.png)
|
||||
skin/classic/browser/customizableui/customizeMode-separatorHorizontal.png (customizableui/customizeMode-separatorHorizontal.png)
|
||||
skin/classic/browser/customizableui/customizeMode-separatorVertical.png (customizableui/customizeMode-separatorVertical.png)
|
||||
|
@ -414,6 +414,10 @@ toolbarpaletteitem[place="palette"] > #personal-bookmarks > #bookmarks-toolbar-p
|
||||
}
|
||||
}
|
||||
|
||||
#bookmarks-menu-button[notification="finish"] {
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
#bookmarks-menu-button[notification="finish"] > .toolbarbutton-menubutton-dropmarker > .dropmarker-icon {
|
||||
animation: animation-bookmarkPulse 300ms;
|
||||
animation-delay: 600ms;
|
||||
@ -4261,6 +4265,10 @@ window > chatbox {
|
||||
list-style-image: url(chrome://browser/skin/customizableui/customize-illustration@2x.png);
|
||||
}
|
||||
|
||||
.customization-tipPanel-contentImage:-moz-locale-dir(rtl) {
|
||||
list-style-image: url(chrome://browser/skin/customizableui/customize-illustration-rtl@2x.png);
|
||||
}
|
||||
|
||||
#customization-tipPanel > .panel-arrowcontainer > .panel-arrowbox > .panel-arrow[side="left"],
|
||||
#customization-tipPanel > .panel-arrowcontainer > .panel-arrowbox > .panel-arrow[side="right"] {
|
||||
list-style-image: url("chrome://browser/skin/customizableui/panelarrow-customizeTip@2x.png");
|
||||
|
@ -5,8 +5,8 @@
|
||||
/*** Status and progress indicator ***/
|
||||
|
||||
#downloads-indicator-anchor {
|
||||
min-width: 20px;
|
||||
min-height: 20px;
|
||||
min-width: 18px;
|
||||
min-height: 18px;
|
||||
}
|
||||
|
||||
#downloads-animation-container {
|
||||
|
@ -124,6 +124,8 @@ browser.jar:
|
||||
skin/classic/browser/customizableui/customize-titleBar-toggle@2x.png (customizableui/customize-titleBar-toggle@2x.png)
|
||||
skin/classic/browser/customizableui/customize-illustration.png (../shared/customizableui/customize-illustration.png)
|
||||
skin/classic/browser/customizableui/customize-illustration@2x.png (../shared/customizableui/customize-illustration@2x.png)
|
||||
skin/classic/browser/customizableui/customize-illustration-rtl.png (../shared/customizableui/customize-illustration-rtl.png)
|
||||
skin/classic/browser/customizableui/customize-illustration-rtl@2x.png (../shared/customizableui/customize-illustration-rtl@2x.png)
|
||||
skin/classic/browser/customizableui/customizeFavicon.ico (../shared/customizableui/customizeFavicon.ico)
|
||||
skin/classic/browser/customizableui/customizeMode-gridTexture.png (customizableui/customizeMode-gridTexture.png)
|
||||
skin/classic/browser/customizableui/customizeMode-separatorHorizontal.png (customizableui/customizeMode-separatorHorizontal.png)
|
||||
|
After Width: | Height: | Size: 7.4 KiB |
After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 7.4 KiB |
Before Width: | Height: | Size: 41 KiB After Width: | Height: | Size: 16 KiB |
@ -74,7 +74,7 @@
|
||||
outline-offset: -5px;
|
||||
}
|
||||
|
||||
#main-window[customize-entered] .customization-target:not(#PanelUI-contents) {
|
||||
#main-window[customizing] .customization-target:not(#PanelUI-contents) {
|
||||
min-width: 100px;
|
||||
padding-left: 10px;
|
||||
padding-right: 10px;
|
||||
|
@ -46,6 +46,10 @@
|
||||
display: -moz-box;
|
||||
}
|
||||
|
||||
.customization-tipPanel-contentImage:-moz-locale-dir(rtl) {
|
||||
list-style-image: url(chrome://browser/skin/customizableui/customize-illustration-rtl.png);
|
||||
}
|
||||
|
||||
.customization-tipPanel-link {
|
||||
-moz-appearance: none;
|
||||
background: transparent;
|
||||
|
@ -519,6 +519,11 @@ toolbarpaletteitem[place="palette"] > toolbaritem > toolbarbutton {
|
||||
color: white;
|
||||
background-color: rgb(116,191,67);
|
||||
text-shadow: none;
|
||||
margin-top: -1px;
|
||||
}
|
||||
|
||||
#customization-panelHolder #PanelUI-customize + toolbarseparator {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#customization-panelHolder #PanelUI-customize:hover,
|
||||
|
@ -227,6 +227,20 @@
|
||||
|
||||
/* End selected tab */
|
||||
|
||||
/* Background tabs */
|
||||
|
||||
/* Decrease the height of the hoverable region of background tabs whenever the tabs are at the top
|
||||
of the window (e.g. no menubar, tabs in titlebar, etc.) to make it easier to drag the window by
|
||||
the titlebar. We don't need this in fullscreen since window dragging is not an issue there. */
|
||||
%ifdef XP_MACOSX
|
||||
#main-window[tabsintitlebar][sizemode="maximized"] .tab-background-middle:not([selected=true]),
|
||||
%endif
|
||||
#main-window[tabsintitlebar]:not([sizemode="maximized"]):not([inFullscreen]) #toolbar-menubar:-moz-any([autohide="true"][inactive], :not([autohide])) + #TabsToolbar .tab-background-middle:not([selected=true]) {
|
||||
clip-path: url(chrome://browser/content/browser.xul#tab-hover-clip-path);
|
||||
}
|
||||
|
||||
/* End background tabs */
|
||||
|
||||
/* new tab button border and gradient on hover */
|
||||
.tabbrowser-tab:hover > .tab-stack > .tab-background:not([selected=true]),
|
||||
.tabs-newtab-button:hover {
|
||||
|
@ -364,6 +364,10 @@ toolbarpaletteitem[place="palette"] > #personal-bookmarks > #bookmarks-toolbar-p
|
||||
animation-timing-function: ease, ease, ease;
|
||||
}
|
||||
|
||||
#bookmarks-menu-button[notification="finish"] {
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
#bookmarks-menu-button[notification="finish"] > .toolbarbutton-menubutton-dropmarker > .dropmarker-icon {
|
||||
animation: animation-bookmarkPulse 300ms;
|
||||
animation-delay: 600ms;
|
||||
|
@ -92,6 +92,7 @@ browser.jar:
|
||||
skin/classic/browser/customizableui/background-noise-toolbar.png (customizableui/background-noise-toolbar.png)
|
||||
skin/classic/browser/customizableui/customizeFavicon.ico (../shared/customizableui/customizeFavicon.ico)
|
||||
skin/classic/browser/customizableui/customize-illustration.png (../shared/customizableui/customize-illustration.png)
|
||||
skin/classic/browser/customizableui/customize-illustration-rtl.png (../shared/customizableui/customize-illustration-rtl.png)
|
||||
skin/classic/browser/customizableui/customize-titleBar-toggle.png (customizableui/customize-titleBar-toggle.png)
|
||||
skin/classic/browser/customizableui/customizeMode-gridTexture.png (customizableui/customizeMode-gridTexture.png)
|
||||
skin/classic/browser/customizableui/customizeMode-separatorHorizontal.png (customizableui/customizeMode-separatorHorizontal.png)
|
||||
@ -417,6 +418,7 @@ browser.jar:
|
||||
skin/classic/aero/browser/webRTC-sharingMicrophone-16.png
|
||||
skin/classic/aero/browser/customizableui/background-noise-toolbar.png (customizableui/background-noise-toolbar.png)
|
||||
skin/classic/aero/browser/customizableui/customize-illustration.png (../shared/customizableui/customize-illustration.png)
|
||||
skin/classic/aero/browser/customizableui/customize-illustration-rtl.png (../shared/customizableui/customize-illustration-rtl.png)
|
||||
skin/classic/aero/browser/customizableui/customize-titleBar-toggle.png (customizableui/customize-titleBar-toggle.png)
|
||||
skin/classic/aero/browser/customizableui/customizeFavicon.ico (../shared/customizableui/customizeFavicon.ico)
|
||||
skin/classic/aero/browser/customizableui/customizeMode-gridTexture.png (customizableui/customizeMode-gridTexture.png)
|
||||
|
@ -293,7 +293,7 @@ case "$target" in
|
||||
# The build tools got moved around to different directories in
|
||||
# SDK Tools r22. Try to locate them.
|
||||
android_build_tools=""
|
||||
for suffix in android-4.4 android-4.3 android-4.2.2 19.0.0 18.1.0 18.0.1 18.0.0 17.0.0; do
|
||||
for suffix in android-4.4 android-4.3 android-4.2.2 19.0.2 19.0.0 18.1.0 18.0.1 18.0.0 17.0.0; do
|
||||
tools_directory="$android_sdk_root/build-tools/$suffix"
|
||||
if test -d "$tools_directory" ; then
|
||||
android_build_tools="$tools_directory"
|
||||
|
235
build/autoconf/nspr-build.m4
Normal file
@ -0,0 +1,235 @@
|
||||
dnl This Source Code Form is subject to the terms of the Mozilla Public
|
||||
dnl License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
dnl file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
AC_DEFUN([MOZ_CONFIG_NSPR], [
|
||||
|
||||
ifelse([$1],[],,[define(CONFIGURING_JS,yes)])
|
||||
|
||||
dnl Possible ways this can be called:
|
||||
dnl from toplevel configure:
|
||||
dnl JS_STANDALONE= BUILDING_JS=
|
||||
dnl from js/src/configure invoked by toplevel configure:
|
||||
dnl JS_STANDALONE= BUILDING_JS=1
|
||||
dnl from standalone js/src/configure:
|
||||
dnl JS_STANDALONE=1 BUILDING_JS=1
|
||||
|
||||
dnl ========================================================
|
||||
dnl = Find the right NSPR to use.
|
||||
dnl ========================================================
|
||||
MOZ_ARG_WITH_STRING(nspr-cflags,
|
||||
[ --with-nspr-cflags=FLAGS
|
||||
Pass FLAGS to CC when building code that uses NSPR.
|
||||
Use this when there's no accurate nspr-config
|
||||
script available. This is the case when building
|
||||
SpiderMonkey as part of the Mozilla tree: the
|
||||
top-level configure script computes NSPR flags
|
||||
that accomodate the quirks of that environment.],
|
||||
NSPR_CFLAGS=$withval)
|
||||
MOZ_ARG_WITH_STRING(nspr-libs,
|
||||
[ --with-nspr-libs=LIBS Pass LIBS to LD when linking code that uses NSPR.
|
||||
See --with-nspr-cflags for more details.],
|
||||
NSPR_LIBS=$withval)
|
||||
|
||||
ifdef([CONFIGURING_JS],[
|
||||
MOZ_ARG_ENABLE_BOOL(nspr-build,
|
||||
[ --enable-nspr-build Configure and build NSPR from source tree],
|
||||
MOZ_BUILD_NSPR=1,
|
||||
MOZ_BUILD_NSPR=)
|
||||
])
|
||||
|
||||
if test -z "$BUILDING_JS" || test -n "$JS_STANDALONE"; then
|
||||
_IS_OUTER_CONFIGURE=1
|
||||
fi
|
||||
|
||||
MOZ_ARG_WITH_BOOL(system-nspr,
|
||||
[ --with-system-nspr Use an NSPR that is already built and installed.
|
||||
Use the 'nspr-config' script in the current path,
|
||||
or look for the script in the directories given with
|
||||
--with-nspr-exec-prefix or --with-nspr-prefix.
|
||||
(Those flags are only checked if you specify
|
||||
--with-system-nspr.)],
|
||||
_USE_SYSTEM_NSPR=1 )
|
||||
|
||||
JS_POSIX_NSPR=unset
|
||||
ifdef([CONFIGURING_JS],[
|
||||
if test -n "$JS_STANDALONE"; then
|
||||
case "$target" in
|
||||
*linux*|*darwin*|*dragonfly*|*freebsd*|*netbsd*|*openbsd*)
|
||||
if test -z "$_HAS_NSPR" && test "$JS_THREADSAFE"; then
|
||||
JS_POSIX_NSPR_DEFAULT=1
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
MOZ_ARG_ENABLE_BOOL(posix-nspr-emulation,
|
||||
[ --enable-posix-nspr-emulation
|
||||
Enable emulation of NSPR for POSIX systems],
|
||||
JS_POSIX_NSPR=1,
|
||||
JS_POSIX_NSPR=)
|
||||
]) dnl ifdef CONFIGURING_JS
|
||||
|
||||
dnl Pass at most one of
|
||||
dnl --with-system-nspr
|
||||
dnl --with-nspr-cflags/libs
|
||||
dnl --enable-nsprpub
|
||||
dnl --enable-posix-nspr-emulation
|
||||
|
||||
AC_MSG_CHECKING([NSPR selection])
|
||||
nspr_opts=
|
||||
which_nspr=default
|
||||
if test "$_USE_SYSTEM_NSPR"; then
|
||||
nspr_opts="x$nspr_opts"
|
||||
which_nspr="system"
|
||||
fi
|
||||
if test -n "$NSPR_CFLAGS" -o -n "$NSPR_LIBS"; then
|
||||
nspr_opts="x$nspr_opts"
|
||||
which_nspr="command-line"
|
||||
fi
|
||||
if test -n "$MOZ_BUILD_NSPR"; then
|
||||
nspr_opts="x$nspr_opts"
|
||||
which_nspr="source-tree"
|
||||
fi
|
||||
if test "$JS_POSIX_NSPR" != unset; then
|
||||
nspr_opts="x$nspr_opts"
|
||||
which_nspr="posix-wrapper"
|
||||
fi
|
||||
if test -z "$nspr_opts" || test "$nspr_opts" = x; then
|
||||
AC_MSG_RESULT($which_nspr)
|
||||
else
|
||||
AC_MSG_ERROR([only one way of using NSPR may be selected. See 'configure --help'.])
|
||||
fi
|
||||
|
||||
if test -z "$nspr_opts"; then
|
||||
if test -z "$BUILDING_JS"; then
|
||||
dnl Toplevel configure defaults to using nsprpub from the source tree
|
||||
MOZ_BUILD_NSPR=1
|
||||
else
|
||||
dnl JS configure defaults to emulated NSPR if available, falling back to nsprpub
|
||||
JS_POSIX_NSPR="$JS_POSIX_NSPR_DEFAULT"
|
||||
if test -z "$JS_POSIX_NSPR"; then
|
||||
MOZ_BUILD_NSPR=1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
AC_SUBST(MOZ_BUILD_NSPR)
|
||||
|
||||
if test "$JS_POSIX_NSPR" = unset; then
|
||||
JS_POSIX_NSPR=
|
||||
fi
|
||||
|
||||
if test -n "$BUILDING_JS"; then
|
||||
if test "$JS_POSIX_NSPR" = 1; then
|
||||
AC_DEFINE(JS_POSIX_NSPR)
|
||||
fi
|
||||
AC_SUBST(JS_POSIX_NSPR)
|
||||
fi
|
||||
|
||||
if test -n "$_IS_OUTER_CONFIGURE"; then
|
||||
|
||||
if test -n "$_USE_SYSTEM_NSPR" -o -n "$NSPR_CFLAGS" -o -n "$NSPR_LIBS"; then
|
||||
AM_PATH_NSPR($NSPR_MINVER, [MOZ_NATIVE_NSPR=1], [AC_MSG_ERROR([you do not have NSPR installed or your version is older than $NSPR_MINVER.])])
|
||||
fi
|
||||
|
||||
if test -n "$MOZ_NATIVE_NSPR"; then
|
||||
_SAVE_CFLAGS=$CFLAGS
|
||||
CFLAGS="$CFLAGS $NSPR_CFLAGS"
|
||||
AC_TRY_COMPILE([#include "prtypes.h"],
|
||||
[#ifndef PR_STATIC_ASSERT
|
||||
#error PR_STATIC_ASSERT not defined or requires including prtypes.h
|
||||
#endif],
|
||||
,
|
||||
AC_MSG_ERROR([system NSPR does not support PR_STATIC_ASSERT or including prtypes.h does not provide it]))
|
||||
AC_TRY_COMPILE([#include "prtypes.h"],
|
||||
[#ifndef PR_UINT64
|
||||
#error PR_UINT64 not defined or requires including prtypes.h
|
||||
#endif],
|
||||
,
|
||||
AC_MSG_ERROR([system NSPR does not support PR_UINT64 or including prtypes.h does not provide it]))
|
||||
CFLAGS=$_SAVE_CFLAGS
|
||||
elif test -z "$JS_POSIX_NSPR"; then
|
||||
if test -z "$LIBXUL_SDK"; then
|
||||
NSPR_CFLAGS="-I${LIBXUL_DIST}/include/nspr"
|
||||
if test -n "$GNU_CC"; then
|
||||
NSPR_LIBS="-L${LIBXUL_DIST}/lib -lnspr${NSPR_VERSION} -lplc${NSPR_VERSION} -lplds${NSPR_VERSION}"
|
||||
else
|
||||
NSPR_LIBS="${LIBXUL_DIST}/lib/nspr${NSPR_VERSION}.lib ${LIBXUL_DIST}/lib/plc${NSPR_VERSION}.lib ${LIBXUL_DIST}/lib/plds${NSPR_VERSION}.lib "
|
||||
fi
|
||||
else
|
||||
NSPR_CFLAGS=`"${LIBXUL_DIST}"/sdk/bin/nspr-config --prefix="${LIBXUL_DIST}" --includedir="${LIBXUL_DIST}/include/nspr" --cflags`
|
||||
NSPR_LIBS=`"${LIBXUL_DIST}"/sdk/bin/nspr-config --prefix="${LIBXUL_DIST}" --libdir="${LIBXUL_DIST}"/lib --libs`
|
||||
fi
|
||||
fi
|
||||
|
||||
AC_SUBST(NSPR_CFLAGS)
|
||||
AC_SUBST(NSPR_LIBS)
|
||||
|
||||
NSPR_PKGCONF_CHECK="nspr"
|
||||
if test -n "$MOZ_NATIVE_NSPR"; then
|
||||
# piggy back on $MOZ_NATIVE_NSPR to set a variable for the nspr check for js.pc
|
||||
NSPR_PKGCONF_CHECK="nspr >= $NSPR_MINVER"
|
||||
|
||||
_SAVE_CFLAGS=$CFLAGS
|
||||
CFLAGS="$CFLAGS $NSPR_CFLAGS"
|
||||
AC_TRY_COMPILE([#include "prlog.h"],
|
||||
[#ifndef PR_STATIC_ASSERT
|
||||
#error PR_STATIC_ASSERT not defined
|
||||
#endif],
|
||||
,
|
||||
AC_MSG_ERROR([system NSPR does not support PR_STATIC_ASSERT]))
|
||||
CFLAGS=$_SAVE_CFLAGS
|
||||
fi
|
||||
AC_SUBST(NSPR_PKGCONF_CHECK)
|
||||
|
||||
fi # _IS_OUTER_CONFIGURE
|
||||
|
||||
])
|
||||
|
||||
AC_DEFUN([MOZ_SUBCONFIGURE_NSPR], [
|
||||
|
||||
if test -z "$MOZ_NATIVE_NSPR"; then
|
||||
ac_configure_args="$_SUBDIR_CONFIG_ARGS --with-dist-prefix=$MOZ_BUILD_ROOT/dist --with-mozilla"
|
||||
if test -z "$MOZ_DEBUG"; then
|
||||
ac_configure_args="$ac_configure_args --disable-debug"
|
||||
else
|
||||
ac_configure_args="$ac_configure_args --enable-debug"
|
||||
fi
|
||||
if test "$MOZ_OPTIMIZE" = "1"; then
|
||||
ac_configure_args="$ac_configure_args --enable-optimize"
|
||||
elif test -z "$MOZ_OPTIMIZE"; then
|
||||
ac_configure_args="$ac_configure_args --disable-optimize"
|
||||
fi
|
||||
if test -n "$HAVE_64BIT_OS"; then
|
||||
ac_configure_args="$ac_configure_args --enable-64bit"
|
||||
fi
|
||||
if test -n "$USE_ARM_KUSER"; then
|
||||
ac_configure_args="$ac_configure_args --with-arm-kuser"
|
||||
fi
|
||||
ac_configure_args="$ac_configure_args $NSPR_CONFIGURE_ARGS"
|
||||
|
||||
# Save these, so we can mess with them for the subconfigure ..
|
||||
_SAVE_CFLAGS="$CFLAGS"
|
||||
_SAVE_CPPFLAGS="$CPPFLAGS"
|
||||
_SAVE_LDFLAGS="$LDFLAGS"
|
||||
|
||||
if test -n "$MOZ_LINKER" -a "$ac_cv_func_dladdr" = no ; then
|
||||
# dladdr is supported by the new linker, even when the system linker doesn't
|
||||
# support it. Trick nspr into using dladdr when it's not supported.
|
||||
export CPPFLAGS="-include $_topsrcdir/mozglue/linker/dladdr.h $CPPFLAGS"
|
||||
fi
|
||||
export LDFLAGS="$LDFLAGS $NSPR_LDFLAGS"
|
||||
export CFLAGS="$CFLAGS $MOZ_FRAMEPTR_FLAGS"
|
||||
|
||||
AC_OUTPUT_SUBDIRS(nsprpub)
|
||||
|
||||
# .. and restore them
|
||||
CFLAGS="$_SAVE_CFLAGS"
|
||||
CPPFLAGS="$_SAVE_CPPFLAGS"
|
||||
LDFLAGS="$_SAVE_LDFLAGS"
|
||||
|
||||
ac_configure_args="$_SUBDIR_CONFIG_ARGS"
|
||||
fi
|
||||
|
||||
])
|
@ -5,6 +5,7 @@ support-files =
|
||||
[test_app_principal_equality.html]
|
||||
[test_bug246699.html]
|
||||
[test_bug292789.html]
|
||||
skip-if = (buildapp == 'b2g' && toolkit != 'gonk') #Bug 931116, b2g desktop specific, initial triage
|
||||
[test_bug423375.html]
|
||||
[test_bug470804.html]
|
||||
[test_disallowInheritPrincipal.html]
|
||||
|
89
configure.in
@ -53,6 +53,7 @@ dnl ========================================================
|
||||
MOZJPEG=62
|
||||
MOZPNG=10609
|
||||
NSPR_VERSION=4
|
||||
NSPR_MINVER=4.10.3
|
||||
NSS_VERSION=3
|
||||
|
||||
dnl Set the minimum version of toolkit libs used by mozilla
|
||||
@ -131,7 +132,7 @@ EOF
|
||||
exit 1
|
||||
break
|
||||
fi
|
||||
MOZ_BUILD_ROOT=`pwd`
|
||||
MOZ_BUILD_ROOT=`pwd -W 2>/dev/null || pwd`
|
||||
|
||||
MOZ_PYTHON
|
||||
|
||||
@ -2191,7 +2192,6 @@ ia64*-hpux*)
|
||||
|
||||
case "$host" in
|
||||
*-mingw*)
|
||||
MOZ_BUILD_ROOT=`cd $MOZ_BUILD_ROOT && pwd -W`
|
||||
if test -n "$L10NBASEDIR"; then
|
||||
L10NBASEDIR=`cd $L10NBASEDIR && pwd -W`
|
||||
fi
|
||||
@ -3505,47 +3505,7 @@ MOZ_ARG_WITH_BOOL(system-libxul,
|
||||
[ --with-system-libxul Use system installed libxul SDK],
|
||||
SYSTEM_LIBXUL=1)
|
||||
|
||||
dnl ========================================================
|
||||
dnl = If NSPR was not detected in the system,
|
||||
dnl = use the one in the source tree (mozilla/nsprpub)
|
||||
dnl ========================================================
|
||||
MOZ_ARG_WITH_BOOL(system-nspr,
|
||||
[ --with-system-nspr Use system installed NSPR],
|
||||
_USE_SYSTEM_NSPR=1 )
|
||||
|
||||
if test -n "$_USE_SYSTEM_NSPR"; then
|
||||
AM_PATH_NSPR(4.10.3, [MOZ_NATIVE_NSPR=1], [AC_MSG_ERROR([your don't have NSPR installed or your version is too old])])
|
||||
fi
|
||||
|
||||
if test -n "$MOZ_NATIVE_NSPR"; then
|
||||
_SAVE_CFLAGS=$CFLAGS
|
||||
CFLAGS="$CFLAGS $NSPR_CFLAGS"
|
||||
AC_TRY_COMPILE([#include "prtypes.h"],
|
||||
[#ifndef PR_STATIC_ASSERT
|
||||
#error PR_STATIC_ASSERT not defined or requires including prtypes.h
|
||||
#endif],
|
||||
[MOZ_NATIVE_NSPR=1],
|
||||
AC_MSG_ERROR([system NSPR does not support PR_STATIC_ASSERT or including prtypes.h does not provide it]))
|
||||
AC_TRY_COMPILE([#include "prtypes.h"],
|
||||
[#ifndef PR_UINT64
|
||||
#error PR_UINT64 not defined or requires including prtypes.h
|
||||
#endif],
|
||||
[MOZ_NATIVE_NSPR=1],
|
||||
AC_MSG_ERROR([system NSPR does not support PR_UINT64 or including prtypes.h does not provide it]))
|
||||
CFLAGS=$_SAVE_CFLAGS
|
||||
else
|
||||
if test -z "$LIBXUL_SDK"; then
|
||||
NSPR_CFLAGS="-I${LIBXUL_DIST}/include/nspr"
|
||||
if test -n "$GNU_CC"; then
|
||||
NSPR_LIBS="-L${LIBXUL_DIST}/lib -lnspr${NSPR_VERSION} -lplc${NSPR_VERSION} -lplds${NSPR_VERSION}"
|
||||
else
|
||||
NSPR_LIBS="${LIBXUL_DIST}/lib/nspr${NSPR_VERSION}.lib ${LIBXUL_DIST}/lib/plc${NSPR_VERSION}.lib ${LIBXUL_DIST}/lib/plds${NSPR_VERSION}.lib "
|
||||
fi
|
||||
else
|
||||
NSPR_CFLAGS=`"${LIBXUL_DIST}"/sdk/bin/nspr-config --prefix="${LIBXUL_DIST}" --includedir="${LIBXUL_DIST}/include/nspr" --cflags`
|
||||
NSPR_LIBS=`"${LIBXUL_DIST}"/sdk/bin/nspr-config --prefix="${LIBXUL_DIST}" --libdir="${LIBXUL_DIST}"/lib --libs`
|
||||
fi
|
||||
fi
|
||||
MOZ_CONFIG_NSPR()
|
||||
|
||||
dnl set GRE_MILESTONE
|
||||
dnl ========================================================
|
||||
@ -8965,48 +8925,7 @@ if test -n "$_WRAP_MALLOC"; then
|
||||
_SUBDIR_CONFIG_ARGS="`echo $_SUBDIR_CONFIG_ARGS | sed -e 's/--enable-wrap-malloc *//'`"
|
||||
fi
|
||||
|
||||
if test -z "$MOZ_NATIVE_NSPR"; then
|
||||
ac_configure_args="$_SUBDIR_CONFIG_ARGS --with-dist-prefix=$MOZ_BUILD_ROOT/dist --with-mozilla"
|
||||
if test -z "$MOZ_DEBUG"; then
|
||||
ac_configure_args="$ac_configure_args --disable-debug"
|
||||
else
|
||||
ac_configure_args="$ac_configure_args --enable-debug"
|
||||
fi
|
||||
if test "$MOZ_OPTIMIZE" = "1"; then
|
||||
ac_configure_args="$ac_configure_args --enable-optimize"
|
||||
elif test -z "$MOZ_OPTIMIZE"; then
|
||||
ac_configure_args="$ac_configure_args --disable-optimize"
|
||||
fi
|
||||
if test -n "$HAVE_64BIT_OS"; then
|
||||
ac_configure_args="$ac_configure_args --enable-64bit"
|
||||
fi
|
||||
if test -n "$USE_ARM_KUSER"; then
|
||||
ac_configure_args="$ac_configure_args --with-arm-kuser"
|
||||
fi
|
||||
ac_configure_args="$ac_configure_args $NSPR_CONFIGURE_ARGS"
|
||||
|
||||
# Save these, so we can mess with them for the subconfigure ..
|
||||
_SAVE_CFLAGS="$CFLAGS"
|
||||
_SAVE_CPPFLAGS="$CPPFLAGS"
|
||||
_SAVE_LDFLAGS="$LDFLAGS"
|
||||
|
||||
if test -n "$MOZ_LINKER" -a "$ac_cv_func_dladdr" = no ; then
|
||||
# dladdr is supported by the new linker, even when the system linker doesn't
|
||||
# support it. Trick nspr into using dladdr when it's not supported.
|
||||
export CPPFLAGS="-include $_topsrcdir/mozglue/linker/dladdr.h $CPPFLAGS"
|
||||
fi
|
||||
export LDFLAGS="$LDFLAGS $NSPR_LDFLAGS"
|
||||
export CFLAGS="$CFLAGS $MOZ_FRAMEPTR_FLAGS"
|
||||
|
||||
AC_OUTPUT_SUBDIRS(nsprpub)
|
||||
|
||||
# .. and restore them
|
||||
CFLAGS="$_SAVE_CFLAGS"
|
||||
CPPFLAGS="$_SAVE_CPPFLAGS"
|
||||
LDFLAGS="$_SAVE_LDFLAGS"
|
||||
|
||||
ac_configure_args="$_SUBDIR_CONFIG_ARGS"
|
||||
fi
|
||||
MOZ_SUBCONFIGURE_NSPR()
|
||||
|
||||
dnl ========================================================
|
||||
dnl = Setup a nice relatively clean build environment for
|
||||
|
@ -110,6 +110,7 @@ NS_CP_ContentTypeName(uint32_t contentType)
|
||||
CASE_RETURN( TYPE_WEBSOCKET );
|
||||
CASE_RETURN( TYPE_CSP_REPORT );
|
||||
CASE_RETURN( TYPE_XSLT );
|
||||
CASE_RETURN( TYPE_BEACON );
|
||||
default:
|
||||
return "<Unknown Type>";
|
||||
}
|
||||
|
@ -24,7 +24,6 @@ DEPRECATED_OPERATION(MozBeforePaint)
|
||||
DEPRECATED_OPERATION(DOMExceptionCode)
|
||||
DEPRECATED_OPERATION(NoExposedProps)
|
||||
DEPRECATED_OPERATION(MutationEvent)
|
||||
DEPRECATED_OPERATION(MozSlice)
|
||||
DEPRECATED_OPERATION(Components)
|
||||
DEPRECATED_OPERATION(PrefixedVisibilityAPI)
|
||||
DEPRECATED_OPERATION(NodeIteratorDetach)
|
||||
|
@ -24,7 +24,7 @@ typedef unsigned long nsContentPolicyType;
|
||||
* by launching a dialog to prompt the user for something).
|
||||
*/
|
||||
|
||||
[scriptable,uuid(e48e3024-f302-4a16-b8b6-2034d3a4b279)]
|
||||
[scriptable,uuid(b6a71698-c117-441d-86b9-480cf06e3952)]
|
||||
interface nsIContentPolicy : nsISupports
|
||||
{
|
||||
/**
|
||||
@ -145,6 +145,11 @@ interface nsIContentPolicy : nsISupports
|
||||
*/
|
||||
const nsContentPolicyType TYPE_XSLT = 18;
|
||||
|
||||
/**
|
||||
* Indicates a beacon post.
|
||||
*/
|
||||
const nsContentPolicyType TYPE_BEACON = 19;
|
||||
|
||||
/* When adding new content types, please update nsContentBlocker,
|
||||
* NS_CP_ContentTypeName, contentSecurityPolicy.js, all nsIContentPolicy
|
||||
* implementations, and other things that are not listed here that are
|
||||
|
@ -41,11 +41,6 @@ interface nsIDOMBlob : nsISupports
|
||||
[optional] in long long end,
|
||||
[optional] in DOMString contentType);
|
||||
|
||||
[optional_argc,implicit_jscontext]
|
||||
nsIDOMBlob mozSlice([optional] in long long start,
|
||||
[optional] in long long end,
|
||||
[optional] in DOMString contentType);
|
||||
|
||||
// Get internal id of stored file. Returns -1 if it is not a stored file.
|
||||
// Intended only for testing. It can be called on any thread.
|
||||
[notxpcom] long long getFileId();
|
||||
|
@ -97,6 +97,7 @@ function ContentSecurityPolicy() {
|
||||
csp._MAPPINGS[cp.TYPE_MEDIA] = cspr_sd_new.MEDIA_SRC;
|
||||
csp._MAPPINGS[cp.TYPE_FONT] = cspr_sd_new.FONT_SRC;
|
||||
csp._MAPPINGS[cp.TYPE_XSLT] = cspr_sd_new.SCRIPT_SRC;
|
||||
csp._MAPPINGS[cp.TYPE_BEACON] = cspr_sd_new.CONNECT_SRC;
|
||||
|
||||
/* Our original CSP implementation's mappings for XHR and websocket
|
||||
* These should be changed to be = cspr_sd.CONNECT_SRC when we remove
|
||||
|
@ -261,29 +261,6 @@ nsDOMFileBase::Slice(int64_t aStart, int64_t aEnd,
|
||||
return *aBlob ? NS_OK : NS_ERROR_UNEXPECTED;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsDOMFileBase::MozSlice(int64_t aStart, int64_t aEnd,
|
||||
const nsAString& aContentType,
|
||||
JSContext* aCx,
|
||||
uint8_t optional_argc,
|
||||
nsIDOMBlob **aBlob)
|
||||
{
|
||||
MOZ_ASSERT(NS_IsMainThread());
|
||||
|
||||
nsIScriptGlobalObject* sgo = nsJSUtils::GetDynamicScriptGlobal(aCx);
|
||||
if (sgo) {
|
||||
nsCOMPtr<nsPIDOMWindow> window = do_QueryInterface(sgo);
|
||||
if (window) {
|
||||
nsCOMPtr<nsIDocument> document = window->GetExtantDoc();
|
||||
if (document) {
|
||||
document->WarnOnceAbout(nsIDocument::eMozSlice);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return Slice(aStart, aEnd, aContentType, optional_argc, aBlob);
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsDOMFileBase::GetInternalStream(nsIInputStream **aStream)
|
||||
{
|
||||
|
@ -1494,8 +1494,7 @@ nsFrameScriptExecutor::TryCacheLoadAndCompileScript(const nsAString& aURL,
|
||||
if (global) {
|
||||
JSAutoCompartment ac(cx, global);
|
||||
JS::CompileOptions options(cx);
|
||||
options.setFileAndLine(url.get(), 1)
|
||||
.setPrincipals(nsJSPrincipals::get(mPrincipal));
|
||||
options.setFileAndLine(url.get(), 1);
|
||||
JS::Rooted<JSScript*> script(cx);
|
||||
JS::Rooted<JSObject*> funobj(cx);
|
||||
if (aRunInGlobalScope) {
|
||||
|
@ -242,6 +242,8 @@ nsMixedContentBlocker::ShouldLoad(uint32_t aContentType,
|
||||
// spoofing attacks (e.g. make a "grant permission" button look like a
|
||||
// "refuse permission" button).
|
||||
//
|
||||
// TYPE_BEACON: Beacon requests are similar to TYPE_PING, but are default on.
|
||||
//
|
||||
// TYPE_WEBSOCKET: The Websockets API requires browsers to
|
||||
// reject mixed-content websockets: "If secure is false but the origin of
|
||||
// the entry script has a scheme component that is itself a secure protocol,
|
||||
@ -285,6 +287,7 @@ nsMixedContentBlocker::ShouldLoad(uint32_t aContentType,
|
||||
case TYPE_MEDIA:
|
||||
case TYPE_OBJECT_SUBREQUEST:
|
||||
case TYPE_PING:
|
||||
case TYPE_BEACON:
|
||||
classification = eMixedDisplay;
|
||||
break;
|
||||
|
||||
|
@ -1,30 +0,0 @@
|
||||
#
|
||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
# OOP tests don't work on Windows (bug 763081) or native-fennec
|
||||
# (see Bug 774939). App permission checks are also disabled on
|
||||
# anything but B2G (Bug 900707).
|
||||
ifdef MOZ_CHILD_PERMISSIONS
|
||||
MOCHITEST_FILES += \
|
||||
test_messagemanager_assertpermission.html \
|
||||
test_child_process_shutdown_message.html \
|
||||
$(NULL)
|
||||
endif
|
||||
|
||||
# This test fails on the Mac for some reason
|
||||
ifneq (,$(filter gtk2 gtk3 windows,$(MOZ_WIDGET_TOOLKIT)))
|
||||
MOCHITEST_FILES += \
|
||||
test_copyimage.html \
|
||||
$(NULL)
|
||||
endif
|
||||
|
||||
# Disabled for now. Mochitest isn't reliable enough for these.
|
||||
# test_bug444546.html \
|
||||
# bug444546.sjs \
|
||||
|
||||
# Disabled due to making the harness time out
|
||||
# test_bug503473.html \
|
||||
# file_bug503473-frame.sjs \
|
||||
|
@ -126,41 +126,57 @@ support-files =
|
||||
file_multi_policy_injection_bypass_2.html^headers^
|
||||
|
||||
[test_CSP.html]
|
||||
skip-if = toolkit == 'android' #TIMED_OUT
|
||||
skip-if = (buildapp == 'b2g' && (toolkit != 'gonk' || debug)) || toolkit == 'android' #TIMED_OUT # b2g-debug(observer not working) b2g-desktop(observer not working)
|
||||
[test_CSP_bug663567.html]
|
||||
[test_CSP_bug802872.html]
|
||||
[test_CSP_bug885433.html]
|
||||
[test_CSP_bug888172.html]
|
||||
[test_CSP_bug916446.html]
|
||||
skip-if = (buildapp == 'b2g' && (toolkit != 'gonk' || debug)) # b2g-debug(observer not working) b2g-desktop(observer not working)
|
||||
[test_CSP_evalscript.html]
|
||||
skip-if = (buildapp == 'b2g' && (toolkit != 'gonk' || debug)) # b2g-debug(observer not working) b2g-desktop(observer not working)
|
||||
[test_CSP_evalscript_getCRMFRequest.html]
|
||||
skip-if = toolkit == 'android' #bug 824652
|
||||
skip-if = buildapp == 'b2g' || toolkit == 'android' #bug 824652 # b2g(no window.crypto support in multiprocess) b2g-debug(observer not working) b2g-desktop(observer not working)
|
||||
[test_CSP_frameancestors.html]
|
||||
skip-if = toolkit == 'android'
|
||||
skip-if = (buildapp == 'b2g' && (toolkit != 'gonk' || debug)) || toolkit == 'android' # b2g-debug(observer not working) b2g-desktop(observer not working)
|
||||
[test_CSP_inlinescript.html]
|
||||
skip-if = toolkit == 'android'
|
||||
[test_CSP_inlinestyle.html]
|
||||
[test_bothCSPheaders.html]
|
||||
skip-if = (buildapp == 'b2g' && (toolkit != 'gonk' || debug))
|
||||
[test_bug836922_npolicies.html]
|
||||
skip-if = (buildapp == 'b2g' && (toolkit != 'gonk' || debug)) # b2g-debug(observer not working) b2g-desktop(observer not working)
|
||||
[test_bug886164.html]
|
||||
skip-if = (toolkit == 'gonk' && debug) #debug-only failure
|
||||
[test_csp_redirects.html]
|
||||
skip-if = toolkit == 'android' #TIMED_OUT
|
||||
skip-if = (buildapp == 'b2g' && (toolkit != 'gonk' || debug)) || toolkit == 'android' #TIMED_OUT
|
||||
[test_CSP_bug910139.html]
|
||||
[test_CSP_bug909029.html]
|
||||
skip-if = (toolkit == 'gonk' && debug) #debug-only failure
|
||||
[test_policyuri_regression_from_multipolicy.html]
|
||||
skip-if = (buildapp == 'b2g' && (toolkit != 'gonk' || debug)) # b2g-debug(debug-only failure) b2g-desktop(Bug 931116, b2g desktop specific, initial triage)
|
||||
[test_nonce_source.html]
|
||||
skip-if = (toolkit == 'gonk' && debug) #debug-only failure
|
||||
[test_CSP_bug941404.html]
|
||||
skip-if = (toolkit == 'gonk' && debug) #debug-only failure
|
||||
[test_hash_source.html]
|
||||
skip-if = toolkit=='gonk' # b2g(can't use nsICryptoHash in CSPUtils.jsm (child process)) b2g-debug(can't use nsICryptoHash in CSPUtils.jsm (child process))
|
||||
[test_dual_headers_warning.html]
|
||||
[test_self_none_as_hostname_confusion.html]
|
||||
[test_bug949549.html]
|
||||
[test_csp_regexp_parsing.html]
|
||||
[test_report_uri_missing_in_report_only_header.html]
|
||||
[test_csp_report.html]
|
||||
skip-if = buildapp == 'b2g' # b2g(observerservice issue) b2g-debug(observerservice issue) b2g-desktop(observerservice issue)
|
||||
[test_policyuri_async_fetch.html]
|
||||
[test_301_redirect.html]
|
||||
skip-if = buildapp == 'b2g'
|
||||
[test_302_redirect.html]
|
||||
skip-if = buildapp == 'b2g'
|
||||
[test_303_redirect.html]
|
||||
skip-if = buildapp == 'b2g'
|
||||
[test_307_redirect.html]
|
||||
skip-if = buildapp == 'b2g'
|
||||
[test_subframe_run_js_if_allowed.html]
|
||||
[test_multi_policy_injection_bypass.html]
|
||||
skip-if = buildapp == 'b2g'
|
||||
|
@ -30,6 +30,8 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=62178
|
||||
case nsIContentPolicy::TYPE_MEDIA:
|
||||
case nsIContentPolicy::TYPE_PING:
|
||||
our ping implementation is off by default and does not comply with the current spec (bug 786347)
|
||||
case nsIContentPolicy::TYPE_BEACON:
|
||||
|
||||
}
|
||||
*/
|
||||
-->
|
||||
|
@ -203,11 +203,6 @@ function testSlice(file, size, type, contents, fileType) {
|
||||
ok(slice instanceof Blob, fileType + " fullsize slice is a Blob");
|
||||
ok(!(slice instanceof File), fileType + " fullsize slice is not a File");
|
||||
|
||||
// Test that mozSlice works still.
|
||||
slice = file.mozSlice(0, size);
|
||||
ok(slice instanceof Blob, fileType + " fullsize slice is a Blob");
|
||||
ok(!(slice instanceof File), fileType + " fullsize slice is not a File");
|
||||
|
||||
slice = file.slice(0, 1234);
|
||||
ok(slice instanceof Blob, fileType + " sized slice is a Blob");
|
||||
ok(!(slice instanceof File), fileType + " sized slice is not a File");
|
||||
|
2
content/base/test/mochitest-child-permissions.ini
Normal file
@ -0,0 +1,2 @@
|
||||
[test_messagemanager_assertpermission.html]
|
||||
[test_child_process_shutdown_message.html]
|
@ -220,7 +220,7 @@ skip-if = toolkit == 'android'
|
||||
[test_CrossSiteXHR_cache.html]
|
||||
skip-if = toolkit == 'android'
|
||||
[test_CrossSiteXHR_origin.html]
|
||||
skip-if = toolkit == 'android'
|
||||
skip-if = buildapp == 'b2g' || toolkit == 'android' # b2g(https not working, bug 907770) b2g-debug(https not working, bug 907770) b2g-desktop(https not working, bug 907770)
|
||||
[test_DOMException.html]
|
||||
[test_EventSource_redirects.html]
|
||||
[test_NodeIterator_basics_filters.xhtml]
|
||||
@ -230,17 +230,21 @@ skip-if = toolkit == 'android'
|
||||
[test_XHR.html]
|
||||
[test_XHRDocURI.html]
|
||||
[test_XHRSendData.html]
|
||||
skip-if = buildapp == 'b2g' # b2g(seems to stall) b2g-debug(seems to stall) b2g-desktop(seems to stall)
|
||||
[test_XHR_anon.html]
|
||||
[test_XHR_header.html]
|
||||
[test_XHR_onuploadprogress.html]
|
||||
[test_XHR_parameters.html]
|
||||
skip-if = buildapp == 'b2g' # b2g(86 total, 4 failing - testing mozAnon - got false, expected true) b2g-debug(86 total, 4 failing - testing mozAnon - got false, expected true) b2g-desktop(86 total, 4 failing - testing mozAnon - got false, expected true)
|
||||
[test_XHR_system.html]
|
||||
skip-if = (buildapp == 'b2g' && (toolkit != 'gonk' || debug)) # b2g-debug(12 total, 2 failing - .mozSystem == true - got false, expected true + ) b2g-desktop(12 total, 2 failing - .mozSystem == true - got false, expected true + )
|
||||
[test_XHR_timeout.html]
|
||||
skip-if = buildapp == 'b2g' # b2g(flaky on B2G, bug 960743) b2g-debug(flaky on B2G, bug 960743) b2g-desktop(flaky on B2G, bug 960743)
|
||||
[test_XHR_timeout.js]
|
||||
[test_base.xhtml]
|
||||
[test_blobconstructor.html]
|
||||
[test_bug166235.html]
|
||||
skip-if = toolkit == 'android'
|
||||
skip-if = buildapp == 'b2g' || toolkit == 'android' # b2g(clipboard undefined) b2g-debug(clipboard undefined) b2g-desktop(clipboard undefined)
|
||||
[test_bug199959.html]
|
||||
[test_bug218236.html]
|
||||
[test_bug218277.html]
|
||||
@ -259,6 +263,7 @@ skip-if = toolkit == 'android'
|
||||
[test_bug320799.html]
|
||||
[test_bug322317.html]
|
||||
[test_bug326337.html]
|
||||
skip-if = (buildapp == 'b2g' && toolkit != 'gonk') #Bug 931116, b2g desktop specific, initial triage
|
||||
[test_bug330925.xhtml]
|
||||
[test_bug331959.html]
|
||||
[test_bug333198.html]
|
||||
@ -266,7 +271,7 @@ skip-if = toolkit == 'android'
|
||||
[test_bug337631.html]
|
||||
[test_bug338541.xhtml]
|
||||
[test_bug338583.html]
|
||||
skip-if = toolkit == 'android'
|
||||
skip-if = buildapp == 'b2g' || toolkit == 'android' # b2g(https not working, bug 907770) b2g-debug(https not working, bug 907770) b2g-desktop(43 total - bug 901343, specialpowers.wrap issue createsystemxhr)
|
||||
[test_bug338679.html]
|
||||
[test_bug339494.html]
|
||||
[test_bug339494.xhtml]
|
||||
@ -338,18 +343,26 @@ skip-if = toolkit == 'android'
|
||||
[test_bug420700.html]
|
||||
[test_bug421602.html]
|
||||
[test_bug422403-1.html]
|
||||
skip-if = buildapp == 'b2g' # b2g(bug 901343, specialpowers.wrap issue [nsIChannel.open]) b2g-debug(bug 901343, specialpowers.wrap issue [nsIChannel.open]) b2g-desktop(bug 901343, specialpowers.wrap issue [nsIChannel.open])
|
||||
[test_bug422403-2.xhtml]
|
||||
skip-if = buildapp == 'b2g'
|
||||
[test_bug422537.html]
|
||||
skip-if = buildapp == 'b2g' # b2g(xmlhttprequest causes crash, bug 902271) b2g-debug(xmlhttprequest causes crash, bug 902271) b2g-desktop(xmlhttprequest causes crash, bug 902271)
|
||||
[test_bug424212.html]
|
||||
[test_bug424359-1.html]
|
||||
skip-if = buildapp == 'b2g'
|
||||
[test_bug424359-2.html]
|
||||
skip-if = buildapp == 'b2g'
|
||||
[test_bug425013.html]
|
||||
[test_bug426308.html]
|
||||
skip-if = (buildapp == 'b2g' && toolkit != 'gonk')
|
||||
[test_bug426646.html]
|
||||
skip-if = (buildapp == 'b2g' && toolkit != 'gonk') #Bug 931116, b2g desktop specific, initial triage
|
||||
[test_bug428847.html]
|
||||
[test_bug429157.html]
|
||||
[test_bug431082.html]
|
||||
[test_bug431701.html]
|
||||
skip-if = buildapp == 'b2g' # b2g(xmlhttprequest causes crash, bug 902271) b2g-debug(xmlhttprequest causes crash, bug 902271) b2g-desktop(xmlhttprequest causes crash, bug 902271)
|
||||
[test_bug431833.html]
|
||||
[test_bug433533.html]
|
||||
[test_bug433662.html]
|
||||
@ -374,22 +387,24 @@ skip-if = toolkit == 'android'
|
||||
[test_bug461735.html]
|
||||
[test_bug465767.html]
|
||||
[test_bug466080.html]
|
||||
skip-if = toolkit == 'android'
|
||||
skip-if = buildapp == 'b2g' || toolkit == 'android' # b2g(bug 901356, also fails on android) b2g-debug(bug 901356, also fails on android) b2g-desktop(bug 901356, also fails on android)
|
||||
[test_bug466409.html]
|
||||
skip-if = buildapp == 'b2g'
|
||||
[test_bug466751.xhtml]
|
||||
[test_bug469020.html]
|
||||
[test_bug469304.html]
|
||||
[test_bug473162-1.html]
|
||||
[test_bug473162-2.html]
|
||||
[test_bug475156.html]
|
||||
skip-if = toolkit == 'android' #bug 855762
|
||||
skip-if = buildapp == 'b2g' || toolkit == 'android' #bug 855762 # b2g(36 total - bug 902611) b2g-debug(36 total - bug 902611) b2g-desktop(36 total - bug 902611)
|
||||
[test_bug482935.html]
|
||||
skip-if = toolkit == 'android' #bug 855762
|
||||
skip-if = buildapp == 'b2g' || toolkit == 'android' #bug 855762
|
||||
[test_bug484396.html]
|
||||
[test_bug493881.html]
|
||||
[test_bug493881.js]
|
||||
[test_bug498240.html]
|
||||
[test_bug498433.html]
|
||||
skip-if = buildapp == 'b2g'
|
||||
[test_bug498897.html]
|
||||
[test_bug499656.html]
|
||||
[test_bug499656.xhtml]
|
||||
@ -415,6 +430,7 @@ skip-if = toolkit == 'android' #TIMED_OUT
|
||||
[test_bug548463.html]
|
||||
[test_bug553896.xhtml]
|
||||
[test_bug557892.html]
|
||||
skip-if = (buildapp == 'b2g' && toolkit != 'gonk') #Bug 931116, b2g desktop specific, initial triage
|
||||
[test_bug558726.html]
|
||||
[test_bug559526.html]
|
||||
[test_bug560780.html]
|
||||
@ -426,7 +442,9 @@ skip-if = toolkit == 'android' #TIMED_OUT
|
||||
[test_bug564863.xhtml]
|
||||
[test_bug567350.html]
|
||||
[test_bug578096.html]
|
||||
skip-if = (buildapp == 'b2g' && (toolkit != 'gonk' || debug)) # b2g-debug(debug-only failure; crash) b2g-desktop(Bug 931116, b2g desktop specific, initial triage)
|
||||
[test_bug585978.html]
|
||||
skip-if = (toolkit == 'gonk' && debug) #debug-only timeout
|
||||
[test_bug587931.html]
|
||||
[test_bug588990.html]
|
||||
[test_bug590812.html]
|
||||
@ -457,11 +475,14 @@ skip-if = toolkit == 'android' #bug 687032
|
||||
[test_bug656283.html]
|
||||
[test_bug664916.html]
|
||||
[test_bug666604.html]
|
||||
skip-if = buildapp == 'b2g' # b2g(dom.disable_open_during_load not implemented in b2g) b2g-debug(dom.disable_open_during_load not implemented in b2g) b2g-desktop(dom.disable_open_during_load not implemented in b2g)
|
||||
[test_bug675121.html]
|
||||
skip-if = buildapp == 'b2g' # b2g(bug 901378) b2g-debug(bug 901378) b2g-desktop(bug 901378)
|
||||
[test_bug675166.html]
|
||||
[test_bug682463.html]
|
||||
[test_bug682554.html]
|
||||
[test_bug682592.html]
|
||||
skip-if = buildapp == 'b2g'
|
||||
[test_bug684671.html]
|
||||
[test_bug685798.html]
|
||||
[test_bug686449.xhtml]
|
||||
@ -494,6 +515,7 @@ skip-if = toolkit == 'android' #bug 687032
|
||||
[test_bug787778.html]
|
||||
[test_bug789856.html]
|
||||
[test_bug804395.html]
|
||||
skip-if = (buildapp == 'b2g' && toolkit != 'gonk') #bug 901343, specialpowers.wrap issue createsystemxhr
|
||||
[test_bug809003.html]
|
||||
[test_bug810494.html]
|
||||
[test_bug811701.html]
|
||||
@ -503,7 +525,7 @@ skip-if = toolkit == 'android' #bug 687032
|
||||
[test_bug819051.html]
|
||||
[test_bug820909.html]
|
||||
[test_bug827160.html]
|
||||
skip-if = toolkit == 'android' #needs plugin support
|
||||
skip-if = buildapp == 'b2g' || toolkit == 'android' #needs plugin support # b2g(needs plugin support) b2g-debug(debug-only failure) b2g-desktop(needs plugin support)
|
||||
[test_bug840098.html]
|
||||
[test_bug868999.html]
|
||||
[test_bug869000.html]
|
||||
@ -520,10 +542,13 @@ skip-if = toolkit == 'android' #needs plugin support
|
||||
[test_bug927196.html]
|
||||
[test_caretPositionFromPoint.html]
|
||||
[test_classList.html]
|
||||
# This test fails on the Mac for some reason
|
||||
[test_copyimage.html]
|
||||
skip-if = toolkit != 'gtk2' && toolkit != 'gtk3' && toolkit != 'windows'
|
||||
[test_copypaste.html]
|
||||
skip-if = toolkit == 'android' #bug 904183
|
||||
skip-if = buildapp == 'b2g' || toolkit == 'android' #bug 904183 # b2g(clipboard undefined) b2g-debug(clipboard undefined) b2g-desktop(clipboard undefined)
|
||||
[test_copypaste.xhtml]
|
||||
skip-if = toolkit == 'android' #bug 904183
|
||||
skip-if = buildapp == 'b2g' || toolkit == 'android' #bug 904183 # b2g(bug 904183) b2g-debug(bug 904183) b2g-desktop(bug 904183)
|
||||
[test_createHTMLDocument.html]
|
||||
[test_declare_stylesheet_obsolete.html]
|
||||
[test_domparser_null_char.html]
|
||||
@ -531,7 +556,7 @@ skip-if = toolkit == 'android' #bug 904183
|
||||
[test_elementTraversal.html]
|
||||
[test_fileapi.html]
|
||||
[test_fileapi_slice.html]
|
||||
skip-if = toolkit == 'android' #bug 775227
|
||||
skip-if = buildapp == 'b2g' || toolkit == 'android' #bug 775227
|
||||
[test_getElementById.html]
|
||||
[test_html_colors_quirks.html]
|
||||
[test_html_colors_standards.html]
|
||||
@ -547,19 +572,20 @@ skip-if = toolkit == 'android' #bug 775227
|
||||
[test_meta_viewport5.html]
|
||||
[test_meta_viewport6.html]
|
||||
[test_mixed_content_blocker.html]
|
||||
skip-if = toolkit == 'android' #TIMED_OUT, SSL_REQUIRED
|
||||
skip-if = buildapp == 'b2g' || toolkit == 'android' #TIMED_OUT, SSL_REQUIRED
|
||||
[test_mixed_content_blocker_bug803225.html]
|
||||
skip-if = toolkit == 'android' #TIMED_OUT, SSL_REQUIRED
|
||||
skip-if = buildapp == 'b2g' || toolkit == 'android' #TIMED_OUT, SSL_REQUIRED
|
||||
[test_mixed_content_blocker_frameNavigation.html]
|
||||
skip-if = toolkit == 'android' #TIMED_OUT, SSL_REQUIRED
|
||||
skip-if = buildapp == 'b2g' || toolkit == 'android' #TIMED_OUT, SSL_REQUIRED
|
||||
[test_mozfiledataurl.html]
|
||||
skip-if = toolkit == 'android' #TIMED_OUT
|
||||
skip-if = buildapp == 'b2g' || toolkit == 'android' #TIMED_OUT
|
||||
[test_mutationobservers.html]
|
||||
skip-if = buildapp == 'b2g' # b2g(bug 901385, showmodaldialog) b2g-debug(bug 901385, showmodaldialog) b2g-desktop(bug 901385, showmodaldialog)
|
||||
[test_nodelist_holes.html]
|
||||
[test_object.html]
|
||||
skip-if = toolkit == 'android'
|
||||
skip-if = buildapp == 'b2g' || toolkit == 'android' # b2g(needs plugin support) b2g-debug(needs plugin support) b2g-desktop(needs plugin support)
|
||||
[test_plugin_freezing.html]
|
||||
skip-if = toolkit == 'android' #CLICK_TO_PLAY
|
||||
skip-if = buildapp == 'b2g' || toolkit == 'android' #CLICK_TO_PLAY
|
||||
[test_processing_instruction_update_stylesheet.xhtml]
|
||||
[test_range_bounds.html]
|
||||
skip-if = toolkit == 'android'
|
||||
@ -577,13 +603,13 @@ skip-if = toolkit == 'android' #RANDOM
|
||||
[test_w3element_traversal.xhtml]
|
||||
[test_w3element_traversal_svg.html]
|
||||
[test_websocket.html]
|
||||
skip-if = toolkit == 'android'
|
||||
skip-if = buildapp == 'b2g' || toolkit == 'android'
|
||||
[test_websocket_basic.html]
|
||||
skip-if = toolkit == 'android'
|
||||
skip-if = buildapp == 'b2g' || toolkit == 'android'
|
||||
[test_websocket_hello.html]
|
||||
skip-if = toolkit == 'android'
|
||||
skip-if = buildapp == 'b2g' || toolkit == 'android'
|
||||
[test_x-frame-options.html]
|
||||
skip-if = toolkit == 'android'
|
||||
skip-if = buildapp == 'b2g' || toolkit == 'android' # b2g(observerservice issue) b2g-debug(observerservice issue) b2g-desktop(observerservice issue)
|
||||
[test_xbl_userdata.xhtml]
|
||||
[test_xhr_abort_after_load.html]
|
||||
skip-if = toolkit == 'android'
|
||||
@ -594,3 +620,9 @@ skip-if = toolkit == 'android'
|
||||
[test_xhr_withCredentials.html]
|
||||
[test_file_from_blob.html]
|
||||
[test_warning_for_blocked_cross_site_request.html]
|
||||
[test_bug444546.html]
|
||||
disabled = Disabled for now. Mochitest isn't reliable enough for these.
|
||||
support-files = bug444546.sjs
|
||||
[test_bug503473.html]
|
||||
disabled = Disabled due to making the harness time out
|
||||
support-files = file_bug503473-frame.sjs
|
||||
|
@ -25,6 +25,13 @@ MOCHITEST_MANIFESTS += [
|
||||
'chrome/mochitest.ini',
|
||||
'mochitest.ini',
|
||||
]
|
||||
# OOP tests don't work on Windows (bug 763081) or native-fennec
|
||||
# (see Bug 774939). App permission checks are also disabled on
|
||||
# anything but B2G (Bug 900707).
|
||||
if CONFIG['MOZ_CHILD_PERMISSIONS']:
|
||||
MOCHITEST_MANIFESTS += [
|
||||
'mochitest-child-permissions.ini',
|
||||
]
|
||||
|
||||
MOCHITEST_CHROME_MANIFESTS += [
|
||||
'chrome.ini',
|
||||
|
@ -4,10 +4,10 @@ support-files =
|
||||
file_check-binary-messages_wsh.py
|
||||
|
||||
[test_receive-arraybuffer.html]
|
||||
skip-if = toolkit == 'android'
|
||||
skip-if = buildapp == 'b2g' || toolkit == 'android'
|
||||
[test_receive-blob.html]
|
||||
skip-if = toolkit == 'android'
|
||||
skip-if = buildapp == 'b2g' || toolkit == 'android'
|
||||
[test_send-arraybuffer.html]
|
||||
skip-if = toolkit == 'android'
|
||||
skip-if = buildapp == 'b2g' || toolkit == 'android'
|
||||
[test_send-blob.html]
|
||||
skip-if = toolkit == 'android'
|
||||
skip-if = buildapp == 'b2g' || toolkit == 'android'
|
||||
|
@ -188,7 +188,9 @@ disabled = bug 407107
|
||||
[test_bug866575.html]
|
||||
[test_bug902651.html]
|
||||
[test_canvas.html]
|
||||
skip-if = (toolkit == 'gonk' && debug) #debug-only crash; bug 933541
|
||||
[test_canvas_focusring.html]
|
||||
skip-if = (toolkit == 'gonk' && !debug) #specialpowers.wrap
|
||||
[test_canvas_font_setter.html]
|
||||
[test_hitregion_canvas.html]
|
||||
skip-if = os == "android" || appname == "b2g"
|
||||
|
@ -17,3 +17,4 @@ support-files =
|
||||
skipped_tests_winxp.txt
|
||||
|
||||
[test_webgl_conformance_test_suite.html]
|
||||
skip-if = buildapp == 'b2g'
|
||||
|
@ -2798,6 +2798,7 @@ HTMLInputElement::SetValueInternal(const nsAString& aValue,
|
||||
UpdateAllValidityStates(mParserCreating);
|
||||
}
|
||||
} else {
|
||||
nsMemory::Free(mInputData.mValue);
|
||||
mInputData.mValue = ToNewUnicode(value);
|
||||
if (aSetValueChanged) {
|
||||
SetValueChanged(true);
|
||||
|
@ -6,6 +6,7 @@ support-files =
|
||||
|
||||
[test_button_attributes_reflection.html]
|
||||
[test_change_event.html]
|
||||
skip-if = (buildapp == 'b2g' && toolkit != 'gonk') #Bug 931116, b2g desktop specific, initial triage
|
||||
[test_datalist_element.html]
|
||||
[test_experimental_forms_pref.html]
|
||||
[test_form_attribute-1.html]
|
||||
@ -23,7 +24,9 @@ support-files =
|
||||
[test_input_defaultValue.html]
|
||||
[test_input_email.html]
|
||||
[test_input_event.html]
|
||||
skip-if = (buildapp == 'b2g' && toolkit != 'gonk') #Bug 931116, b2g desktop specific, initial triage
|
||||
[test_input_file_picker.html]
|
||||
skip-if = buildapp == 'b2g' # b2g(5 failures out of 139 and timing out, bug 901581) b2g-debug(5 failures out of 139 and timing out, bug 901581) b2g-desktop(5 failures out of 139 and timing out, bug 901581)
|
||||
[test_input_list_attribute.html]
|
||||
[test_input_number_l10n.html]
|
||||
# We don't build ICU for Firefox for Android or Firefox OS:
|
||||
@ -39,8 +42,11 @@ skip-if = os == "android"
|
||||
skip-if = os == "android" || appname == "b2g"
|
||||
[test_input_range_attr_order.html]
|
||||
[test_input_range_key_events.html]
|
||||
skip-if = (buildapp == 'b2g' && toolkit != 'gonk') #Bug 931116, b2g desktop specific, initial triage
|
||||
[test_input_range_mouse_and_touch_events.html]
|
||||
skip-if = (toolkit == 'gonk' && debug) #debug-only failure; bug 926546
|
||||
[test_input_range_rounding.html]
|
||||
skip-if = (buildapp == 'b2g' && toolkit != 'gonk') #Bug 931116, b2g desktop specific, initial triage
|
||||
[test_input_sanitization.html]
|
||||
[test_input_textarea_set_value_no_scroll.html]
|
||||
[test_input_typing_sanitization.html]
|
||||
@ -70,6 +76,7 @@ skip-if = os == "android" || appname == "b2g"
|
||||
[test_submit_invalid_file.html]
|
||||
[test_textarea_attributes_reflection.html]
|
||||
[test_validation.html]
|
||||
skip-if = buildapp == 'b2g' # b2g(374 total, bug 901848, no keygen support) b2g-debug(374 total, bug 901848, no keygen support) b2g-desktop(374 total, bug 901848, no keygen support)
|
||||
[test_valueAsDate_pref.html]
|
||||
[test_valueasdate_attribute.html]
|
||||
[test_valueasnumber_attribute.html]
|
||||
|
@ -68,9 +68,7 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=566160
|
||||
/** Test for Bug 566160 **/
|
||||
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
addLoadEvent(function() {
|
||||
setTimeout(runTests, 0);
|
||||
});
|
||||
SimpleTest.waitForFocus(runTests);
|
||||
|
||||
var gTestResults = {
|
||||
frame1: "data:text/html,?foo=foo",
|
||||
|
@ -171,7 +171,7 @@ support-files =
|
||||
[test_bug182279.html]
|
||||
[test_bug2082.html]
|
||||
[test_bug209275.xhtml]
|
||||
skip-if = toolkit == 'android' #TIMED_OUT
|
||||
skip-if = buildapp == 'b2g' || toolkit == 'android' #TIMED_OUT # b2g(timed out, 47 tests, bug 870262, :visited support) b2g-debug(timed out, 47 tests, bug 870262, :visited support) b2g-desktop(timed out, 47 tests, bug 870262, :visited support)
|
||||
[test_bug237071.html]
|
||||
[test_bug242709.html]
|
||||
[test_bug24958.html]
|
||||
@ -230,6 +230,7 @@ skip-if = toolkit == 'android' #TIMED_OUT
|
||||
[test_bug424698.html]
|
||||
[test_bug428135.xhtml]
|
||||
[test_bug430351.html]
|
||||
skip-if = buildapp == 'b2g' # b2g(13 failing out of 700, not focusable iframes? bug 902207) b2g-debug(13 failing out of 700, not focusable iframes? bug 902207) b2g-desktop(13 failing out of 700, not focusable iframes? bug 902207)
|
||||
[test_bug430392.html]
|
||||
[test_bug441930.html]
|
||||
[test_bug442801.html]
|
||||
@ -238,13 +239,14 @@ skip-if = toolkit == 'android' #TIMED_OUT
|
||||
[test_bug458037.xhtml]
|
||||
[test_bug460568.html]
|
||||
[test_bug481335.xhtml]
|
||||
skip-if = toolkit == 'android' #TIMED_OUT
|
||||
skip-if = buildapp == 'b2g' || toolkit == 'android' #TIMED_OUT # b2g(timed out, bug 870262, :visited support) b2g-debug(timed out, bug 870262, :visited support) b2g-desktop(timed out, bug 870262, :visited support)
|
||||
[test_bug500885.html]
|
||||
[test_bug514856.html]
|
||||
skip-if = toolkit == 'android'
|
||||
[test_bug518122.html]
|
||||
[test_bug519987.html]
|
||||
[test_bug523771.html]
|
||||
skip-if = buildapp == 'b2g' # b2g(onload of iframe not firing, because submit not working?) b2g-debug(onload of iframe not firing, because submit not working?) b2g-desktop(onload of iframe not firing, because submit not working?)
|
||||
[test_bug529819.html]
|
||||
[test_bug529859.html]
|
||||
[test_bug535043.html]
|
||||
@ -268,6 +270,7 @@ skip-if = toolkit == 'android' #TIMED_OUT
|
||||
[test_bug560112.html]
|
||||
[test_bug561634.html]
|
||||
[test_bug561636.html]
|
||||
skip-if = buildapp == 'b2g' # b2g(observerservice not working) b2g-debug(observerservice not working) b2g-desktop(observerservice not working)
|
||||
[test_bug561640.html]
|
||||
[test_bug564001.html]
|
||||
[test_bug566046.html]
|
||||
@ -294,6 +297,7 @@ skip-if = toolkit == 'android' #TIMED_OUT
|
||||
[test_bug595429.html]
|
||||
[test_bug595447.html]
|
||||
[test_bug595449.html]
|
||||
skip-if = (toolkit == 'gonk' && debug) #debug-only failure
|
||||
[test_bug596350.html]
|
||||
[test_bug596511.html]
|
||||
[test_bug598643.html]
|
||||
@ -310,25 +314,31 @@ skip-if = toolkit == 'android' #TIMED_OUT
|
||||
[test_bug610687.html]
|
||||
[test_bug611189.html]
|
||||
[test_bug612730.html]
|
||||
skip-if = toolkit == 'android'
|
||||
skip-if = buildapp == 'b2g' || toolkit == 'android' # b2g(form control not selected/checked with synthesizeMouse, also fails on Android) b2g-debug(form control not selected/checked with synthesizeMouse, also fails on Android) b2g-desktop(form control not selected/checked with synthesizeMouse, also fails on Android)
|
||||
[test_bug613113.html]
|
||||
skip-if = buildapp == 'b2g' # b2g(bug 587671, need an invalidformsubmit observer) b2g-debug(bug 587671, need an invalidformsubmit observer) b2g-desktop(bug 587671, need an invalidformsubmit observer)
|
||||
[test_bug613722.html]
|
||||
[test_bug613979.html]
|
||||
[test_bug615595.html]
|
||||
[test_bug615833.html]
|
||||
skip-if = toolkit == 'android' #TIMED_OUT
|
||||
skip-if = buildapp == 'b2g' || toolkit == 'android' #TIMED_OUT # b2g(form control not selected/checked with synthesizeMouse, also fails on Android) b2g-debug(form control not selected/checked with synthesizeMouse, also fails on Android) b2g-desktop(form control not selected/checked with synthesizeMouse, also fails on Android)
|
||||
[test_bug617528.html]
|
||||
[test_bug618948.html]
|
||||
skip-if = buildapp == 'b2g' # b2g(bug 587671, need an invalidformsubmit observer) b2g-debug(bug 587671, need an invalidformsubmit observer) b2g-desktop(bug 587671, need an invalidformsubmit observer)
|
||||
[test_bug619278.html]
|
||||
skip-if = buildapp == 'b2g' # b2g(bug 587671, need an invalidformsubmit observer) b2g-debug(bug 587671, need an invalidformsubmit observer) b2g-desktop(bug 587671, need an invalidformsubmit observer)
|
||||
[test_bug622558.html]
|
||||
[test_bug622597.html]
|
||||
skip-if = buildapp == 'b2g' # b2g(bug 587671, need an invalidformsubmit observer) b2g-debug(bug 587671, need an invalidformsubmit observer) b2g-desktop(bug 587671, need an invalidformsubmit observer)
|
||||
[test_bug623291.html]
|
||||
[test_bug6296.html]
|
||||
[test_bug629801.html]
|
||||
[test_bug633058.html]
|
||||
skip-if = (buildapp == 'b2g' && toolkit != 'gonk') #Bug 931116, b2g desktop specific, initial triage
|
||||
[test_bug636336.html]
|
||||
[test_bug641219.html]
|
||||
[test_bug643051.html]
|
||||
skip-if = (buildapp == 'b2g' && toolkit != 'gonk') #Bug 931116, b2g desktop specific, initial triage
|
||||
[test_bug646157.html]
|
||||
[test_bug649134.html]
|
||||
# This extra subdirectory is needed due to the nature of this test.
|
||||
@ -342,9 +352,11 @@ support-files =
|
||||
bug649134/file_bug649134-2.sjs
|
||||
bug649134/index.html
|
||||
[test_bug651956.html]
|
||||
skip-if = (buildapp == 'b2g' && toolkit != 'gonk') #Bug 931116, b2g desktop specific, initial triage
|
||||
[test_bug658746.html]
|
||||
[test_bug659596.html]
|
||||
[test_bug659743.xml]
|
||||
skip-if = (buildapp == 'b2g' && toolkit != 'gonk') #Bug 931116, b2g desktop specific, initial triage
|
||||
[test_bug660663.html]
|
||||
[test_bug660959-1.html]
|
||||
[test_bug660959-2.html]
|
||||
@ -353,6 +365,7 @@ support-files =
|
||||
[test_bug666666.html]
|
||||
[test_bug669012.html]
|
||||
[test_bug674558.html]
|
||||
skip-if = (buildapp == 'b2g' && toolkit != 'gonk') #Bug 931116, b2g desktop specific, initial triage
|
||||
[test_bug674927.html]
|
||||
[test_bug677463.html]
|
||||
[test_bug677658.html]
|
||||
@ -377,6 +390,7 @@ support-files =
|
||||
[test_bug839913.html]
|
||||
[test_bug840877.html]
|
||||
[test_bug841466.html]
|
||||
skip-if = (toolkit == 'gonk' && debug) #debug-only failure
|
||||
[test_bug845057.html]
|
||||
[test_bug869040.html]
|
||||
[test_bug870787.html]
|
||||
@ -393,25 +407,31 @@ support-files =
|
||||
[test_embed_attributes_reflection.html]
|
||||
[test_formData.html]
|
||||
[test_formSubmission.html]
|
||||
skip-if = toolkit == 'android' #TIMED_OUT
|
||||
skip-if = buildapp == 'b2g' || toolkit == 'android' #TIMED_OUT # b2g(NS_ERROR_FILE_TARGET_DOES_NOT_EXIST) b2g-debug(NS_ERROR_FILE_TARGET_DOES_NOT_EXIST) b2g-desktop(NS_ERROR_FILE_TARGET_DOES_NOT_EXIST)
|
||||
[test_formSubmission2.html]
|
||||
skip-if = toolkit == 'android'
|
||||
[test_formelements.html]
|
||||
[test_fullscreen-api.html]
|
||||
skip-if = toolkit == 'android' #TIMED_OUT
|
||||
skip-if = buildapp == 'b2g' || toolkit == 'android' #TIMED_OUT # b2g(time out, some kind of focus issue) b2g-debug(time out, some kind of focus issue) b2g-desktop(time out, some kind of focus issue)
|
||||
[test_hidden.html]
|
||||
[test_html_attributes_reflection.html]
|
||||
[test_htmlcollection.html]
|
||||
[test_iframe_sandbox_general.html]
|
||||
skip-if = (buildapp == 'b2g' && toolkit != 'gonk') #Bug 931116, b2g desktop specific, initial triage
|
||||
[test_iframe_sandbox_inheritance.html]
|
||||
skip-if = buildapp == 'b2g' # b2g(Crash, bug 904659) b2g-debug(Crash, bug 904659) b2g-desktop(Crash, bug 904659)
|
||||
[test_iframe_sandbox_modal.html]
|
||||
skip-if = toolkit == 'android' #modal tests fail on android
|
||||
skip-if = buildapp == 'b2g' || toolkit == 'android' #modal tests fail on android # b2g(modal tests fail on B2G) b2g-debug(modal tests fail on B2G) b2g-desktop(Bug 931116, b2g desktop specific, initial triage)
|
||||
[test_iframe_sandbox_navigation.html]
|
||||
skip-if = buildapp == 'b2g' # b2g(Crash, bug 904659) b2g-debug(Crash, bug 904659) b2g-desktop(Crash, bug 904659)
|
||||
[test_iframe_sandbox_navigation2.html]
|
||||
skip-if = buildapp == 'b2g' # b2g(Crash, bug 904659) b2g-debug(Crash, bug 904659) b2g-desktop(Crash, bug 904659)
|
||||
[test_iframe_sandbox_plugins.html]
|
||||
skip-if = toolkit == 'android'
|
||||
skip-if = buildapp == 'b2g' || toolkit == 'android' # b2g(plugins not supported) b2g-debug(plugins not supported) b2g-desktop(plugins not supported)
|
||||
[test_iframe_sandbox_popups.html]
|
||||
skip-if = buildapp == 'b2g' # b2g(multiple concurrent window.open()s fail on B2G) b2g-debug(multiple concurrent window.open()s fail on B2G) b2g-desktop(Bug 931116, b2g desktop specific, initial triage)
|
||||
[test_iframe_sandbox_popups_inheritance.html]
|
||||
skip-if = buildapp == 'b2g' # b2g(multiple concurrent window.open()s fail on B2G) b2g-debug(multiple concurrent window.open()s fail on B2G) b2g-desktop(Bug 931116, b2g desktop specific, initial triage)
|
||||
[test_iframe_sandbox_same_origin.html]
|
||||
[test_iframe_sandbox_workers.html]
|
||||
[test_img_attributes_reflection.html]
|
||||
@ -421,11 +441,12 @@ skip-if = toolkit == 'android'
|
||||
[test_meta_attributes_reflection.html]
|
||||
[test_mod_attributes_reflection.html]
|
||||
[test_mozaudiochannel.html]
|
||||
skip-if = (buildapp == 'b2g' && (toolkit != 'gonk' || debug)) # b2g-debug(Perma-orange on debug emulator) b2g-desktop(Bug 931116, b2g desktop specific, initial triage)
|
||||
[test_named_options.html]
|
||||
[test_nested_invalid_fieldsets.html]
|
||||
[test_object_attributes_reflection.html]
|
||||
[test_object_plugin_nav.html]
|
||||
skip-if = toolkit == 'android' #TIMED_OUT
|
||||
skip-if = buildapp == 'b2g' || toolkit == 'android' #TIMED_OUT # b2g(plugins not supported) b2g-debug(plugins not supported) b2g-desktop(plugins not supported)
|
||||
[test_ol_attributes_reflection.html]
|
||||
[test_option_defaultSelected.html]
|
||||
[test_option_selected_state.html]
|
||||
@ -444,4 +465,5 @@ skip-if = toolkit == 'android' #TIMED_OUT
|
||||
skip-if = toolkit == 'android' #bug 871015
|
||||
[test_input_files_not_nsIFile.html]
|
||||
[test_ignoreuserfocus.html]
|
||||
skip-if = (toolkit == 'gonk' && debug) #debug-only failure
|
||||
[test_fragment_form_pointer.html]
|
||||
|
@ -25,8 +25,9 @@ support-files =
|
||||
[test_bug1823.html]
|
||||
[test_bug57600.html]
|
||||
[test_bug196523.html]
|
||||
skip-if = (buildapp == 'b2g' && toolkit != 'gonk') #Bug 931116, b2g desktop specific, initial triage
|
||||
[test_bug199692.html]
|
||||
skip-if = toolkit == 'android' #bug 811644
|
||||
skip-if = (buildapp == 'b2g' && toolkit != 'gonk') || toolkit == 'android' #bug 811644 #Bug 931116, b2g desktop specific, initial triage
|
||||
[test_bug172261.html]
|
||||
[test_bug255820.html]
|
||||
[test_bug259332.html]
|
||||
@ -37,10 +38,10 @@ skip-if = toolkit == 'android' #bug 811644
|
||||
[test_bug340017.xhtml]
|
||||
[test_bug359657.html]
|
||||
[test_bug369370.html]
|
||||
skip-if = toolkit == 'android'
|
||||
skip-if = buildapp == 'b2g' || toolkit == 'android'
|
||||
[test_bug380383.html]
|
||||
[test_bug391777.html]
|
||||
skip-if = toolkit == 'android'
|
||||
skip-if = buildapp == 'b2g' || toolkit == 'android' # b2g(showmodaldialog) b2g-debug(showmodaldialog) b2g-desktop(showmodaldialog)
|
||||
[test_bug402680.html]
|
||||
[test_bug403868.html]
|
||||
[test_bug403868.xhtml]
|
||||
@ -52,6 +53,7 @@ skip-if = true # Disabled for timeouts.
|
||||
[test_documentAll.html]
|
||||
[test_document-element-inserted.html]
|
||||
[test_document.watch.html]
|
||||
skip-if = (buildapp == 'b2g' && (toolkit != 'gonk' || debug)) # b2g-debug(expects document.cookie setting to work) b2g-desktop(expects document.cookie setting to work)
|
||||
[test_bug445004.html]
|
||||
skip-if = true || toolkit == 'android' # Disabled permanently (bug 559932).
|
||||
[test_bug446483.html]
|
||||
@ -69,8 +71,10 @@ skip-if = toolkit == 'android'
|
||||
[test_bug677495.html]
|
||||
[test_bug677495-1.html]
|
||||
[test_bug741266.html]
|
||||
skip-if = toolkit == 'android'
|
||||
skip-if = buildapp == 'b2g' || toolkit == 'android' # b2g(needs control of popup window size) b2g-debug(needs control of popup window size) b2g-desktop(needs control of popup window size)
|
||||
[test_non-ascii-cookie.html]
|
||||
skip-if = buildapp == 'b2g'
|
||||
[test_bug765780.html]
|
||||
[test_bug871161.html]
|
||||
skip-if = (buildapp == 'b2g' && toolkit != 'gonk') #Bug 931116, b2g desktop specific, initial triage
|
||||
support-files = file_bug871161-1.html file_bug871161-2.html
|
||||
|
@ -2,3 +2,4 @@
|
||||
support-files = seek.webm seek.webm^headers^
|
||||
|
||||
[test_MediaSource.html]
|
||||
skip-if = buildapp == 'b2g' # b2g( ReferenceError: MediaSource is not defined) b2g-debug( ReferenceError: MediaSource is not defined) b2g-desktop( ReferenceError: MediaSource is not defined)
|
||||
|
@ -22,6 +22,8 @@
|
||||
# do ok(true, "Type not supported") and stop the test.
|
||||
|
||||
[DEFAULT]
|
||||
#bug 918299
|
||||
skip-if = (buildapp == 'b2g' && (toolkit != 'gonk' || debug))
|
||||
support-files =
|
||||
320x240.ogv
|
||||
320x240.ogv^headers^
|
||||
@ -299,12 +301,17 @@ support-files =
|
||||
[test_audio_event_adopt.html]
|
||||
[test_autoplay.html]
|
||||
[test_bug448534.html]
|
||||
skip-if = buildapp == 'b2g' # b2g(Timed out, bug 894922? Bug 902677 is for the timing out of a lot of media tests) b2g-debug(Timed out, bug 894922? Bug 902677 is for the timing out of a lot of media tests) b2g-desktop(Timed out, bug 894922? Bug 902677 is for the timing out of a lot of media tests)
|
||||
[test_bug463162.xhtml]
|
||||
[test_bug495145.html]
|
||||
skip-if = (buildapp == 'b2g' && (toolkit != 'gonk' || debug)) # b2g-debug(timed out) b2g-desktop(timed out)
|
||||
[test_bug495300.html]
|
||||
skip-if = (buildapp == 'b2g' && (toolkit != 'gonk' || debug))
|
||||
[test_bug654550.html]
|
||||
skip-if = (buildapp == 'b2g' && (toolkit != 'gonk' || debug)) # b2g-debug(timed out) b2g-desktop(timed out)
|
||||
[test_bug686137.html]
|
||||
[test_bug686942.html]
|
||||
skip-if = (buildapp == 'b2g' && (toolkit != 'gonk' || debug)) # b2g-debug(timed out) b2g-desktop(timed out)
|
||||
# [test_bug726904.html] # disabled - See bug 754860
|
||||
[test_bug874897.html]
|
||||
[test_bug883173.html]
|
||||
@ -313,6 +320,7 @@ support-files =
|
||||
[test_bug919265.html]
|
||||
[test_bug957847.html]
|
||||
[test_chaining.html]
|
||||
skip-if = buildapp == 'b2g' # b2g(timed out) b2g-debug(timed out) b2g-desktop(timed out)
|
||||
[test_contentDuration1.html]
|
||||
[test_contentDuration2.html]
|
||||
[test_contentDuration3.html]
|
||||
@ -321,8 +329,11 @@ support-files =
|
||||
[test_contentDuration6.html]
|
||||
[test_contentDuration7.html]
|
||||
[test_can_play_type.html]
|
||||
skip-if = (buildapp == 'b2g' && (toolkit != 'gonk' || debug)) # b2g-debug(timed out) b2g-desktop(timed out)
|
||||
[test_can_play_type_mpeg.html]
|
||||
skip-if = buildapp == 'b2g' # b2g(7 failures out of 27) b2g-debug(7 failures out of 27) b2g-desktop(7 failures out of 27)
|
||||
[test_can_play_type_ogg.html]
|
||||
skip-if = buildapp == 'b2g'
|
||||
[test_can_play_type_no_ogg.html]
|
||||
[test_closing_connections.html]
|
||||
[test_constants.html]
|
||||
@ -331,38 +342,56 @@ support-files =
|
||||
[test_decode_error.html]
|
||||
[test_defaultMuted.html]
|
||||
[test_delay_load.html]
|
||||
skip-if = buildapp == 'b2g' # b2g(6 failures) b2g-debug(6 failures) b2g-desktop(6 failures)
|
||||
[test_error_on_404.html]
|
||||
skip-if = buildapp == 'b2g' && (toolkit != 'gonk' || debug)) # b2g-debug(timed out) b2g-desktop(timed out)
|
||||
[test_framebuffer.html]
|
||||
skip-if = buildapp == 'b2g' # b2g(timed out) b2g-debug(timed out) b2g-desktop(timed out)
|
||||
[test_info_leak.html]
|
||||
skip-if = buildapp == 'b2g' # b2g(2 failures) b2g-debug(2 failures) b2g-desktop(2 failures)
|
||||
[test_invalid_reject.html]
|
||||
[test_load.html]
|
||||
skip-if = (buildapp == 'b2g' && (toolkit != 'gonk' || debug)) # b2g-debug(Timed out after gizmo.mp4) b2g-desktop(Timed out after gizmo.mp4)
|
||||
[test_load_candidates.html]
|
||||
skip-if = (buildapp == 'b2g' && (toolkit != 'gonk' || debug)) # b2g-debug(timed out) b2g-desktop(timed out)
|
||||
[test_load_same_resource.html]
|
||||
skip-if = (buildapp == 'b2g' && (toolkit != 'gonk' || debug))
|
||||
[test_load_source.html]
|
||||
[test_loop.html]
|
||||
[test_metadata.html]
|
||||
skip-if = (buildapp == 'b2g' && (toolkit != 'gonk' || debug))
|
||||
[test_no_load_event.html]
|
||||
[test_networkState.html]
|
||||
[test_new_audio.html]
|
||||
[test_paused.html]
|
||||
[test_paused_after_ended.html]
|
||||
[test_play_events.html]
|
||||
skip-if = (buildapp == 'b2g' && (toolkit != 'gonk' || debug)) # b2g-debug(Last event should be canplaythrough for gizmo.mp4 - got playing, expected canplaythrough) b2g-desktop(Last event should be canplaythrough for gizmo.mp4 - got playing, expected canplaythrough)
|
||||
[test_play_events_2.html]
|
||||
skip-if = (buildapp == 'b2g' && (toolkit != 'gonk' || debug)) # b2g-debug(Last event should be canplaythrough for gizmo.mp4 - got playing, expected canplaythrough) b2g-desktop(Last event should be canplaythrough for gizmo.mp4 - got playing, expected canplaythrough)
|
||||
[test_playback_errors.html]
|
||||
[test_seekable1.html]
|
||||
skip-if = (buildapp == 'b2g' && (toolkit != 'gonk' || debug))
|
||||
[test_preload_actions.html]
|
||||
[test_preload_attribute.html]
|
||||
[test_progress.html]
|
||||
skip-if = (buildapp == 'b2g' && (toolkit != 'gonk' || debug)) # b2g-debug(bug 901716 - timeouts) b2g-desktop(bug 901716 - timeouts)
|
||||
[test_reactivate.html]
|
||||
skip-if = (buildapp == 'b2g' && (toolkit != 'gonk' || debug)) # b2g-debug(timed out in small-shot.mp3) b2g-desktop(timed out in small-shot.mp3)
|
||||
[test_readyState.html]
|
||||
[test_referer.html]
|
||||
skip-if = buildapp == 'b2g'
|
||||
[test_reset_events_async.html]
|
||||
[test_replay_metadata.html]
|
||||
skip-if = (buildapp == 'b2g' && (toolkit != 'gonk' || debug))
|
||||
[test_seek2.html]
|
||||
[test_seek_out_of_range.html]
|
||||
skip-if = (buildapp == 'b2g' && (toolkit != 'gonk' || debug))
|
||||
[test_seekable2.html]
|
||||
[test_seekable3.html]
|
||||
skip-if = buildapp == 'b2g' # b2g(timed out) b2g-debug(timed out) b2g-desktop(timed out)
|
||||
[test_source.html]
|
||||
skip-if = (buildapp == 'b2g' && (toolkit != 'gonk' || debug))
|
||||
[test_source_write.html]
|
||||
[test_source_null.html]
|
||||
[test_standalone.html]
|
||||
@ -375,11 +404,15 @@ support-files =
|
||||
[test_mediarecorder_record_timeslice.html]
|
||||
[test_mediarecorder_record_audiocontext.html]
|
||||
[test_mediarecorder_record_4ch_audiocontext.html]
|
||||
skip-if = (toolkit == 'gonk' && !debug)
|
||||
[test_mediarecorder_record_stopms.html]
|
||||
[test_mediarecorder_record_nosrc.html]
|
||||
[test_mozHasAudio.html]
|
||||
skip-if = (buildapp == 'b2g' && (toolkit != 'gonk' || debug))
|
||||
[test_source_media.html]
|
||||
skip-if = (buildapp == 'b2g' && (toolkit != 'gonk' || debug))
|
||||
[test_autoplay_contentEditable.html]
|
||||
skip-if = buildapp == 'b2g' # b2g(bug 899074 - timeouts) b2g-debug(bug 899074 - timeouts) b2g-desktop(bug 899074 - timeouts)
|
||||
[test_decoder_disable.html]
|
||||
[test_mediarecorder_record_no_timeslice.html]
|
||||
[test_mediarecorder_reload_crash.html]
|
||||
@ -389,25 +422,32 @@ support-files =
|
||||
[test_mediarecorder_getencodeddata.html]
|
||||
[test_mediarecorder_unsupported_src.html]
|
||||
[test_mediarecorder_record_gum_video_timeslice.html]
|
||||
skip-if = buildapp == 'b2g' || (toolkit == 'android') # mimetype check, bug 969289
|
||||
[test_playback.html]
|
||||
skip-if = buildapp == 'b2g' # b2g(Test timed out, bug 668973?) b2g-debug(Test timed out, bug 668973?) b2g-desktop(Test timed out, bug 668973?)
|
||||
[test_seekLies.html]
|
||||
[test_media_sniffer.html]
|
||||
[test_streams_srcObject.html]
|
||||
[test_reset_src.html]
|
||||
[test_streams_autoplay.html]
|
||||
[test_streams_element_capture.html]
|
||||
skip-if = buildapp == 'b2g' # b2g(bug 900172 - timeouts) b2g-debug(bug 900172 - timeouts) b2g-desktop(bug 900172 - timeouts)
|
||||
[test_streams_element_capture_reset.html]
|
||||
skip-if = buildapp == 'b2g' # b2g(bug 901102) b2g-debug(bug 901102) b2g-desktop(bug 901102)
|
||||
[test_streams_element_capture_createObjectURL.html]
|
||||
[test_streams_element_capture_playback.html]
|
||||
[test_streams_gc.html]
|
||||
skip-if = buildapp == 'b2g' # b2g(Value being assigned to HTMLMediaElement.currentTime is not a finite floating-point value) b2g-debug(Value being assigned to HTMLMediaElement.currentTime is not a finite floating-point value) b2g-desktop(Value being assigned to HTMLMediaElement.currentTime is not a finite floating-point value)
|
||||
[test_streams_tracks.html]
|
||||
[test_texttrack.html]
|
||||
[test_texttrackcue.html]
|
||||
[test_trackevent.html]
|
||||
[test_texttrackregion.html]
|
||||
[test_texttracklist.html]
|
||||
[test_timeupdate_small_files.html] skip-if = os == "linux" # Intermittent failures, bug 760770
|
||||
[test_timeupdate_small_files.html]
|
||||
skip-if = os == "linux" # Intermittent failures, bug 760770
|
||||
[test_unseekable.html]
|
||||
skip-if = buildapp == 'b2g'
|
||||
[test_VideoPlaybackQuality.html]
|
||||
[test_VideoPlaybackQuality_disabled.html]
|
||||
[test_webvtt_disabled.html]
|
||||
@ -431,23 +471,37 @@ support-files =
|
||||
# that. Then don't think about reenabling it on Windows until you know that
|
||||
# you have fixed the timeouts of bug 832768, bug 814533, bug 840742
|
||||
|
||||
[test_play_twice.html] skip-if = appname == "seamonkey" # See bug 598252
|
||||
[test_play_twice.html]
|
||||
skip-if = appname == "seamonkey" # See bug 598252
|
||||
|
||||
[test_buffered.html] skip-if = os == "win" # See bug 832768 and 864682
|
||||
[test_bug465498.html] skip-if = os == "win" # See bug 832768 and 864682
|
||||
[test_bug493187.html] skip-if = os == "win" # See bug 707777
|
||||
[test_media_selection.html] skip-if = os == "win" # See bug 897843
|
||||
[test_seek.html] skip-if = os == "win" # See bug 832678, 795271, and 857424
|
||||
[test_buffered.html]
|
||||
skip-if = os == "win" # See bug 832768 and 864682
|
||||
[test_bug465498.html]
|
||||
skip-if = os == "win" # See bug 832768 and 864682
|
||||
[test_bug493187.html]
|
||||
skip-if = os == "win" || (buildapp=='b2g'&&debug) # See bug 707777, #b2g-emulator-debug - process crash
|
||||
[test_media_selection.html]
|
||||
skip-if = os == "win" # See bug 897843
|
||||
[test_seek.html]
|
||||
skip-if = os == "win" # See bug 832678, 795271, and 857424
|
||||
|
||||
# The tests below contain backend-specific tests. Write backend independent
|
||||
# tests rather than adding to this list.
|
||||
|
||||
[test_can_play_type_webm.html] run-if = webm
|
||||
[test_can_play_type_no_webm.html] skip-if = webm
|
||||
[test_can_play_type_webm.html]
|
||||
run-if = webm
|
||||
[test_can_play_type_no_webm.html]
|
||||
skip-if = webm
|
||||
|
||||
[test_can_play_type_wave.html] run-if = wave
|
||||
[test_can_play_type_no_wave.html] skip-if = wave
|
||||
[test_fragment_noplay.html] run-if = wave
|
||||
[test_fragment_play.html] run-if = wave
|
||||
[test_wave_data_s16.html] run-if = wave
|
||||
[test_wave_data_u8.html] run-if = wave
|
||||
[test_can_play_type_wave.html]
|
||||
run-if = wave
|
||||
[test_can_play_type_no_wave.html]
|
||||
skip-if = wave
|
||||
[test_fragment_noplay.html]
|
||||
run-if = wave
|
||||
[test_fragment_play.html]
|
||||
run-if = wave
|
||||
[test_wave_data_s16.html]
|
||||
run-if = wave
|
||||
[test_wave_data_u8.html]
|
||||
run-if = wave
|
||||
|
@ -38,6 +38,7 @@ support-files =
|
||||
[test_audioBufferSourceNodeNoStart.html]
|
||||
[test_audioBufferSourceNodeNullBuffer.html]
|
||||
[test_audioBufferSourceNodeOffset.html]
|
||||
skip-if = (toolkit == 'gonk' && !debug) #bug 906752
|
||||
[test_audioParamExponentialRamp.html]
|
||||
[test_audioParamLinearRamp.html]
|
||||
[test_audioParamSetCurveAtTime.html]
|
||||
@ -122,4 +123,5 @@ support-files =
|
||||
[test_waveShaperZeroLengthCurve.html]
|
||||
[test_audioDestinationNode.html]
|
||||
[test_mozaudiochannel.html]
|
||||
skip-if = (toolkit == 'gonk' && !debug)
|
||||
[test_waveDecoder.html]
|
||||
|
@ -10,9 +10,10 @@ support-files =
|
||||
[test_audio_capture_error.html]
|
||||
[test_call_start_from_end_handler.html]
|
||||
[test_nested_eventloop.html]
|
||||
skip-if = toolkit == 'android'
|
||||
skip-if = buildapp == 'b2g' || toolkit == 'android' # b2g(showmodaldialog) b2g-debug(showmodaldialog) b2g-desktop(showmodaldialog)
|
||||
[test_preference_enable.html]
|
||||
[test_recognition_service_error.html]
|
||||
skip-if = buildapp == 'b2g' # b2g(timed out) b2g-debug(timed out) b2g-desktop(timed out)
|
||||
[test_success_without_recognition_service.html]
|
||||
[test_timeout.html]
|
||||
skip-if = os == "win"
|
||||
|
@ -1,4 +1,4 @@
|
||||
[DEFAULT]
|
||||
|
||||
[test_ipc.html]
|
||||
skip-if = toolkit == 'android' #bug 857673
|
||||
skip-if = buildapp == 'b2g' || toolkit == 'android' #bug 857673 # b2g(comp.classes['@mozilla.org/special-powers-observer;1'] is undefined) b2g-debug(comp.classes['@mozilla.org/special-powers-observer;1'] is undefined) b2g-desktop(comp.classes['@mozilla.org/special-powers-observer;1'] is undefined)
|
||||
|
@ -3,4 +3,6 @@ support-files = common.js
|
||||
|
||||
[test_setup.html]
|
||||
[test_speech_queue.html]
|
||||
skip-if = buildapp == 'b2g' # b2g(Test timed out) b2g-debug(Test timed out) b2g-desktop(Test timed out)
|
||||
[test_speech_simple.html]
|
||||
skip-if = buildapp == 'b2g' # b2g(Test timed out) b2g-debug(Test timed out) b2g-desktop(Test timed out)
|
||||
|
@ -82,6 +82,7 @@ skip-if = true
|
||||
[test_text_lengthAdjust.html]
|
||||
[test_text_scaled.html]
|
||||
[test_text_selection.html]
|
||||
skip-if = buildapp == 'b2g' # b2g(Mouse selection not workin on b2g) b2g-debug(Mouse selection not workin on b2g) b2g-desktop(Mouse selection not workin on b2g)
|
||||
[test_text_update.html]
|
||||
[test_transform.xhtml]
|
||||
[test_transformParsing.html]
|
||||
|
@ -8,7 +8,9 @@ support-files =
|
||||
[test_bug343870.xhtml]
|
||||
[test_bug355213.xhtml]
|
||||
[test_bug392338.html]
|
||||
skip-if = buildapp == 'b2g'
|
||||
[test_bug399502.xhtml]
|
||||
[test_bug445330.html]
|
||||
[test_bug691215.html]
|
||||
skip-if = (buildapp == 'b2g' && toolkit != 'gonk') #Bug 931116, b2g desktop specific, initial triage
|
||||
[test_viewport.xhtml]
|
||||
|
@ -2643,8 +2643,7 @@ nsXULPrototypeScript::Compile(const char16_t* aText,
|
||||
// Ok, compile it to create a prototype script object!
|
||||
NS_ENSURE_TRUE(JSVersion(mLangVersion) != JSVERSION_UNKNOWN, NS_OK);
|
||||
JS::CompileOptions options(cx);
|
||||
options.setPrincipals(nsJSPrincipals::get(aDocument->NodePrincipal()))
|
||||
.setFileAndLine(urlspec.get(), aLineNo)
|
||||
options.setFileAndLine(urlspec.get(), aLineNo)
|
||||
.setVersion(JSVersion(mLangVersion));
|
||||
// If the script was inline, tell the JS parser to save source for
|
||||
// Function.prototype.toSource(). If it's out of line, we retrieve the
|
||||
|
@ -9,8 +9,12 @@ support-files =
|
||||
|
||||
[test_child_navigation_by_location.html]
|
||||
[test_other_auxiliary_navigation_by_location.html]
|
||||
skip-if = (buildapp == 'b2g' && toolkit != 'gonk') #bug 948948, NS_ERROR_FAILURE from nsWindowWatcher::GetPrompt
|
||||
[test_our_auxiliary_navigation_by_location.html]
|
||||
skip-if = (buildapp == 'b2g' && toolkit != 'gonk') #bug 948948, NS_ERROR_FAILURE from nsWindowWatcher::GetPrompt
|
||||
[test_parent_navigation_by_location.html]
|
||||
[test_sibling_navigation_by_location.html]
|
||||
[test_top_navigation_by_location_exotic.html]
|
||||
skip-if = (buildapp == 'b2g' && toolkit != 'gonk') #bug 948948, NS_ERROR_FAILURE from nsWindowWatcher::GetPrompt
|
||||
[test_top_navigation_by_location.html]
|
||||
skip-if = (buildapp == 'b2g' && toolkit != 'gonk') #bug 948948, NS_ERROR_FAILURE from nsWindowWatcher::GetPrompt
|
||||
|
@ -37,51 +37,65 @@ support-files =
|
||||
|
||||
[test_anchor_scroll_after_document_open.html]
|
||||
[test_bfcache_plus_hash.html]
|
||||
skip-if = (buildapp == 'b2g' && toolkit != 'gonk') #Bug 931116, b2g desktop specific, initial triage
|
||||
[test_bug123696.html]
|
||||
[test_bug369814.html]
|
||||
skip-if = (buildapp == 'b2g' && toolkit != 'gonk') #Bug 931116, b2g desktop specific, initial triage
|
||||
[test_bug384014.html]
|
||||
[test_bug385434.html]
|
||||
[test_bug387979.html]
|
||||
[test_bug402210.html]
|
||||
[test_bug404548.html]
|
||||
skip-if = (buildapp == 'b2g' && toolkit != 'gonk') #Bug 931116, b2g desktop specific, initial triage
|
||||
[test_bug413310.html]
|
||||
skip-if = true || toolkit == 'android' || buildapp == 'b2g'
|
||||
# Disabled for too many intermittent failures (bug 719186)
|
||||
skip-if = true || toolkit == 'android'
|
||||
[test_bug475636.html]
|
||||
[test_bug509055.html]
|
||||
skip-if = (buildapp == 'b2g' && toolkit != 'gonk') #Bug 931116, b2g desktop specific, initial triage
|
||||
[test_bug511449.html]
|
||||
skip-if = toolkit != "cocoa"
|
||||
support-files = file_bug511449.html
|
||||
[test_bug529119-1.html]
|
||||
skip-if = (buildapp == 'b2g' && toolkit != 'gonk') #Bug 931116, b2g desktop specific, initial triage
|
||||
[test_bug529119-2.html]
|
||||
skip-if = (buildapp == 'b2g' && (toolkit != 'gonk' || debug)) # b2g-debug(debug-only failure) b2g-desktop(Bug 931116, b2g desktop specific, initial triage)
|
||||
[test_bug540462.html]
|
||||
skip-if = (buildapp == 'b2g' && toolkit != 'gonk') #Bug 931116, b2g desktop specific, initial triage
|
||||
[test_bug551225.html]
|
||||
[test_bug570341.html]
|
||||
skip-if = (toolkit == 'gonk' && debug) #debug-only failure
|
||||
[test_bug580069.html]
|
||||
[test_bug590573.html]
|
||||
skip-if = toolkit == 'android' #bug 823022
|
||||
skip-if = buildapp == 'b2g' || toolkit == 'android' #bug 823022 # b2g(queryinterfaces into webnavigation, might suffer from something similar as bug 823022) b2g-debug(queryinterfaces into webnavigation, might suffer from something similar as bug 823022) b2g-desktop(queryinterfaces into webnavigation, might suffer from something similar as bug 823022)
|
||||
[test_bug598895.html]
|
||||
skip-if = toolkit == 'android'
|
||||
skip-if = (buildapp == 'b2g' && toolkit != 'gonk') || toolkit == 'android' #Bug 931116, b2g desktop specific, initial triage
|
||||
[test_bug634834.html]
|
||||
[test_bug637644.html]
|
||||
skip-if = toolkit == 'android'
|
||||
skip-if = (buildapp == 'b2g' && toolkit != 'gonk') || toolkit == 'android' #Bug 931116, b2g desktop specific, initial triage
|
||||
[test_bug640387_1.html]
|
||||
skip-if = (buildapp == 'b2g' && toolkit != 'gonk') #Bug 931116, b2g desktop specific, initial triage
|
||||
[test_bug640387_2.html]
|
||||
[test_bug653741.html]
|
||||
[test_bug660404.html]
|
||||
skip-if = (buildapp == 'b2g' && toolkit != 'gonk') #Bug 931116, b2g desktop specific, initial triage
|
||||
[test_bug662170.html]
|
||||
[test_bug668513.html]
|
||||
skip-if = toolkit == 'android' #RANDOM
|
||||
[test_bug669671.html]
|
||||
skip-if = (buildapp == 'b2g' && toolkit != 'gonk') #Bug 931116, b2g desktop specific, initial triage
|
||||
[test_bug675587.html]
|
||||
[test_bug680257.html]
|
||||
skip-if = (buildapp == 'b2g' && toolkit != 'gonk') #Bug 931116, b2g desktop specific, initial triage
|
||||
[test_bug691547.html]
|
||||
[test_bug694612.html]
|
||||
[test_bug703855.html]
|
||||
[test_bug713825.html]
|
||||
[test_bug728939.html]
|
||||
skip-if = (buildapp == 'b2g' && toolkit != 'gonk') #Bug 931116, b2g desktop specific, initial triage
|
||||
[test_bug797909.html]
|
||||
[test_framedhistoryframes.html]
|
||||
skip-if = toolkit == 'android' #bug 784321
|
||||
[test_pushState_after_document_open.html]
|
||||
[test_windowedhistoryframes.html]
|
||||
skip-if = (buildapp == 'b2g' && toolkit != 'gonk') #Bug 931116, b2g desktop specific, initial triage
|
||||
|