mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-08 19:04:45 +00:00
Merge mozilla-central to fx-team
This commit is contained in:
commit
1a78cc422f
@ -301,13 +301,11 @@ NotificationController::WillRefresh(mozilla::TimeStamp aTime)
|
||||
#endif
|
||||
|
||||
// Make sure the text node is in accessible document still.
|
||||
Accessible* container = mDocument->GetAccessibleOrContainer(containerNode);
|
||||
NS_ASSERTION(container,
|
||||
"Text node having rendered text hasn't accessible document!");
|
||||
Accessible* container = mDocument->AccessibleOrTrueContainer(containerNode);
|
||||
MOZ_ASSERT(container,
|
||||
"Text node having rendered text hasn't accessible document!");
|
||||
if (container) {
|
||||
nsTArray<nsCOMPtr<nsIContent> > insertedContents;
|
||||
insertedContents.AppendElement(textNode);
|
||||
mDocument->ProcessContentInserted(container, &insertedContents);
|
||||
mDocument->ProcessContentInserted(container, textNode);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -31,6 +31,17 @@ nsEventShell::FireEvent(AccEvent* aEvent)
|
||||
sEventFromUserInput = aEvent->IsFromUserInput();
|
||||
}
|
||||
|
||||
#ifdef A11Y_LOG
|
||||
if (logging::IsEnabled(logging::eEvents)) {
|
||||
logging::MsgBegin("EVENTS", "events fired");
|
||||
nsAutoString type;
|
||||
GetAccService()->GetStringEventType(aEvent->GetEventType(), type);
|
||||
logging::MsgEntry("type: %s", NS_ConvertUTF16toUTF8(type).get());
|
||||
logging::AccessibleInfo("target", aEvent->GetAccessible());
|
||||
logging::MsgEnd();
|
||||
}
|
||||
#endif
|
||||
|
||||
accessible->HandleAccEvent(aEvent);
|
||||
|
||||
sEventTargetNode = nullptr;
|
||||
|
@ -107,7 +107,7 @@ NS_IMPL_CYCLE_COLLECTING_RELEASE_WITH_DESTROY(Accessible, LastRelease())
|
||||
|
||||
Accessible::Accessible(nsIContent* aContent, DocAccessible* aDoc) :
|
||||
mContent(aContent), mDoc(aDoc),
|
||||
mParent(nullptr), mIndexInParent(-1), mChildrenFlags(eChildrenUninitialized),
|
||||
mParent(nullptr), mIndexInParent(-1),
|
||||
mStateFlags(0), mContextFlags(0), mType(0), mGenericTypes(0),
|
||||
mRoleMapEntry(nullptr)
|
||||
{
|
||||
@ -2074,8 +2074,9 @@ Accessible::InsertChildAt(uint32_t aIndex, Accessible* aChild)
|
||||
MOZ_ASSERT(mStateFlags & eKidsMutating, "Illicit children change");
|
||||
}
|
||||
|
||||
if (!nsAccUtils::IsEmbeddedObject(aChild))
|
||||
SetChildrenFlag(eMixedChildren);
|
||||
if (!nsAccUtils::IsEmbeddedObject(aChild)) {
|
||||
mStateFlags |= eHasTextKids;
|
||||
}
|
||||
|
||||
aChild->BindToParent(this, aIndex);
|
||||
return true;
|
||||
@ -2180,7 +2181,7 @@ Accessible::IndexInParent() const
|
||||
uint32_t
|
||||
Accessible::EmbeddedChildCount()
|
||||
{
|
||||
if (IsChildrenFlag(eMixedChildren)) {
|
||||
if (mStateFlags & eHasTextKids) {
|
||||
if (!mEmbeddedObjCollector)
|
||||
mEmbeddedObjCollector = new EmbeddedObjCollector(this);
|
||||
return mEmbeddedObjCollector->Count();
|
||||
@ -2192,7 +2193,7 @@ Accessible::EmbeddedChildCount()
|
||||
Accessible*
|
||||
Accessible::GetEmbeddedChildAt(uint32_t aIndex)
|
||||
{
|
||||
if (IsChildrenFlag(eMixedChildren)) {
|
||||
if (mStateFlags & eHasTextKids) {
|
||||
if (!mEmbeddedObjCollector)
|
||||
mEmbeddedObjCollector = new EmbeddedObjCollector(this);
|
||||
return mEmbeddedObjCollector ?
|
||||
@ -2205,7 +2206,7 @@ Accessible::GetEmbeddedChildAt(uint32_t aIndex)
|
||||
int32_t
|
||||
Accessible::GetIndexOfEmbeddedChild(Accessible* aChild)
|
||||
{
|
||||
if (IsChildrenFlag(eMixedChildren)) {
|
||||
if (mStateFlags & eHasTextKids) {
|
||||
if (!mEmbeddedObjCollector)
|
||||
mEmbeddedObjCollector = new EmbeddedObjCollector(this);
|
||||
return mEmbeddedObjCollector ?
|
||||
@ -2518,58 +2519,6 @@ Accessible::LastRelease()
|
||||
delete this;
|
||||
}
|
||||
|
||||
void
|
||||
Accessible::CacheChildren()
|
||||
{
|
||||
NS_ENSURE_TRUE_VOID(Document());
|
||||
|
||||
AutoTreeMutation mt(this);
|
||||
TreeWalker walker(this);
|
||||
Accessible* child = nullptr;
|
||||
while ((child = walker.Next()) && AppendChild(child)) {
|
||||
mt.AfterInsertion(child);
|
||||
}
|
||||
mt.Done();
|
||||
}
|
||||
|
||||
void
|
||||
Accessible::TestChildCache(Accessible* aCachedChild) const
|
||||
{
|
||||
#ifdef DEBUG
|
||||
int32_t childCount = mChildren.Length();
|
||||
if (childCount == 0) {
|
||||
NS_ASSERTION(IsChildrenFlag(eChildrenUninitialized),
|
||||
"No children but initialized!");
|
||||
return;
|
||||
}
|
||||
|
||||
Accessible* child = nullptr;
|
||||
for (int32_t childIdx = 0; childIdx < childCount; childIdx++) {
|
||||
child = mChildren[childIdx];
|
||||
if (child == aCachedChild)
|
||||
break;
|
||||
}
|
||||
|
||||
NS_ASSERTION(child == aCachedChild,
|
||||
"[TestChildCache] cached accessible wasn't found. Wrong accessible tree!");
|
||||
#endif
|
||||
}
|
||||
|
||||
void
|
||||
Accessible::EnsureChildren()
|
||||
{
|
||||
NS_ASSERTION(!IsDefunct(), "Caching children for defunct accessible!");
|
||||
|
||||
if (!IsChildrenFlag(eChildrenUninitialized))
|
||||
return;
|
||||
|
||||
// State is embedded children until text leaf accessible is appended.
|
||||
SetChildrenFlag(eEmbeddedChildren); // Prevent reentry
|
||||
if (KidsFromDOM()) {
|
||||
CacheChildren();
|
||||
}
|
||||
}
|
||||
|
||||
Accessible*
|
||||
Accessible::GetSiblingAtOffset(int32_t aOffset, nsresult* aError) const
|
||||
{
|
||||
@ -2738,8 +2687,6 @@ Accessible::GetLevelInternal()
|
||||
void
|
||||
Accessible::StaticAsserts() const
|
||||
{
|
||||
static_assert(eLastChildrenFlag <= (1 << kChildrenFlagsBits) - 1,
|
||||
"Accessible::mChildrenFlags was oversized by eLastChildrenFlag!");
|
||||
static_assert(eLastStateFlag <= (1 << kStateFlagsBits) - 1,
|
||||
"Accessible::mStateFlags was oversized by eLastStateFlag!");
|
||||
static_assert(eLastAccType <= (1 << kTypeBits) - 1,
|
||||
|
@ -375,11 +375,6 @@ public:
|
||||
void SetRoleMapEntry(const nsRoleMapEntry* aRoleMapEntry)
|
||||
{ mRoleMapEntry = aRoleMapEntry; }
|
||||
|
||||
/**
|
||||
* Cache children if necessary.
|
||||
*/
|
||||
void EnsureChildren();
|
||||
|
||||
/**
|
||||
* Append/insert/remove a child. Return true if operation was successful.
|
||||
*/
|
||||
@ -474,12 +469,6 @@ public:
|
||||
Accessible* ContentChildAt(uint32_t aIndex) const
|
||||
{ return mChildren.ElementAt(aIndex); }
|
||||
|
||||
/**
|
||||
* Return true if children were initialized.
|
||||
*/
|
||||
inline bool AreChildrenCached() const
|
||||
{ return !IsChildrenFlag(eChildrenUninitialized); }
|
||||
|
||||
/**
|
||||
* Return true if the accessible is attached to tree.
|
||||
*/
|
||||
@ -513,12 +502,6 @@ public:
|
||||
virtual void AppendTextTo(nsAString& aText, uint32_t aStartOffset = 0,
|
||||
uint32_t aLength = UINT32_MAX);
|
||||
|
||||
/**
|
||||
* Assert if child not in parent's cache if the cache was initialized at this
|
||||
* point.
|
||||
*/
|
||||
void TestChildCache(Accessible* aCachedChild) const;
|
||||
|
||||
/**
|
||||
* Return boundaries in screen coordinates.
|
||||
*/
|
||||
@ -983,11 +966,6 @@ protected:
|
||||
*/
|
||||
void LastRelease();
|
||||
|
||||
/**
|
||||
* Cache accessible children.
|
||||
*/
|
||||
virtual void CacheChildren();
|
||||
|
||||
/**
|
||||
* Set accessible parent and index in parent.
|
||||
*/
|
||||
@ -1000,31 +978,8 @@ protected:
|
||||
virtual Accessible* GetSiblingAtOffset(int32_t aOffset,
|
||||
nsresult *aError = nullptr) const;
|
||||
|
||||
/**
|
||||
* Flags used to describe the state and type of children.
|
||||
*/
|
||||
enum ChildrenFlags {
|
||||
eChildrenUninitialized = 0, // children aren't initialized
|
||||
eMixedChildren = 1 << 0, // text leaf children are presented
|
||||
eEmbeddedChildren = 1 << 1, // all children are embedded objects
|
||||
|
||||
eLastChildrenFlag = eEmbeddedChildren
|
||||
};
|
||||
|
||||
/**
|
||||
* Return true if the children flag is set.
|
||||
*/
|
||||
bool IsChildrenFlag(ChildrenFlags aFlag) const
|
||||
{ return static_cast<ChildrenFlags>(mChildrenFlags) == aFlag; }
|
||||
|
||||
/**
|
||||
* Set children flag.
|
||||
*/
|
||||
void SetChildrenFlag(ChildrenFlags aFlag) { mChildrenFlags = aFlag; }
|
||||
|
||||
/**
|
||||
* Flags used to describe the state of this accessible.
|
||||
* @note keep these flags in sync with ChildrenFlags
|
||||
*/
|
||||
enum StateFlags {
|
||||
eIsDefunct = 1 << 0, // accessible is defunct
|
||||
@ -1039,6 +994,7 @@ protected:
|
||||
eRelocated = 1 << 9, // accessible was moved in tree
|
||||
eNoXBLKids = 1 << 10, // accessible don't allows XBL children
|
||||
eNoKidsFromDOM = 1 << 11, // accessible doesn't allow children from DOM
|
||||
eHasTextKids = 1 << 12, // accessible have a text leaf in children
|
||||
|
||||
eLastStateFlag = eNoKidsFromDOM
|
||||
};
|
||||
@ -1139,16 +1095,14 @@ protected:
|
||||
nsTArray<RefPtr<Accessible> > mChildren;
|
||||
int32_t mIndexInParent;
|
||||
|
||||
static const uint8_t kChildrenFlagsBits = 2;
|
||||
static const uint8_t kStateFlagsBits = 12;
|
||||
static const uint8_t kStateFlagsBits = 13;
|
||||
static const uint8_t kContextFlagsBits = 3;
|
||||
static const uint8_t kTypeBits = 6;
|
||||
static const uint8_t kGenericTypesBits = 15;
|
||||
|
||||
/**
|
||||
* Keep in sync with ChildrenFlags, StateFlags, ContextFlags, and AccTypes.
|
||||
* Keep in sync with StateFlags, ContextFlags, and AccTypes.
|
||||
*/
|
||||
uint32_t mChildrenFlags : kChildrenFlagsBits;
|
||||
uint32_t mStateFlags : kStateFlagsBits;
|
||||
uint32_t mContextFlags : kContextFlagsBits;
|
||||
uint32_t mType : kTypeBits;
|
||||
|
@ -390,33 +390,6 @@ DocAccessible::DocType(nsAString& aType) const
|
||||
docType->GetPublicId(aType);
|
||||
}
|
||||
|
||||
Accessible*
|
||||
DocAccessible::GetAccessible(nsINode* aNode) const
|
||||
{
|
||||
Accessible* accessible = mNodeToAccessibleMap.Get(aNode);
|
||||
|
||||
// No accessible in the cache, check if the given ID is unique ID of this
|
||||
// document accessible.
|
||||
if (!accessible) {
|
||||
if (GetNode() != aNode)
|
||||
return nullptr;
|
||||
|
||||
accessible = const_cast<DocAccessible*>(this);
|
||||
}
|
||||
|
||||
#ifdef DEBUG
|
||||
// All cached accessible nodes should be in the parent
|
||||
// It will assert if not all the children were created
|
||||
// when they were first cached, and no invalidation
|
||||
// ever corrected parent accessible's child cache.
|
||||
Accessible* parent = accessible->Parent();
|
||||
if (parent)
|
||||
parent->TestChildCache(accessible);
|
||||
#endif
|
||||
|
||||
return accessible;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Accessible
|
||||
|
||||
@ -1385,23 +1358,7 @@ DocAccessible::ProcessInvalidationList()
|
||||
if (!HasAccessible(content)) {
|
||||
Accessible* container = GetContainerAccessible(content);
|
||||
if (container) {
|
||||
TreeWalker walker(container);
|
||||
if (container->IsAcceptableChild(content) && walker.Seek(content)) {
|
||||
Accessible* child =
|
||||
GetAccService()->GetOrCreateAccessible(content, container);
|
||||
if (child) {
|
||||
RefPtr<AccReorderEvent> reorderEvent =
|
||||
new AccReorderEvent(container);
|
||||
|
||||
AutoTreeMutation mt(container);
|
||||
container->InsertAfter(child, walker.Prev());
|
||||
mt.AfterInsertion(child);
|
||||
mt.Done();
|
||||
|
||||
uint32_t flags = UpdateTreeInternal(child, true, reorderEvent);
|
||||
FireEventsOnInsertion(container, reorderEvent, flags);
|
||||
}
|
||||
}
|
||||
ProcessContentInserted(container, content);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1787,8 +1744,9 @@ DocAccessible::ProcessContentInserted(Accessible* aContainer,
|
||||
const nsTArray<nsCOMPtr<nsIContent> >* aNodes)
|
||||
{
|
||||
// Process insertions if the container accessible is still in tree.
|
||||
if (!HasAccessible(aContainer->GetNode()))
|
||||
if (!aContainer->IsInDocument()) {
|
||||
return;
|
||||
}
|
||||
|
||||
// If new root content has been inserted then update it.
|
||||
if (aContainer == this) {
|
||||
@ -1848,6 +1806,32 @@ DocAccessible::ProcessContentInserted(Accessible* aContainer,
|
||||
FireEventsOnInsertion(aContainer, reorderEvent, updateFlags);
|
||||
}
|
||||
|
||||
void
|
||||
DocAccessible::ProcessContentInserted(Accessible* aContainer, nsIContent* aNode)
|
||||
{
|
||||
if (!aContainer->IsInDocument()) {
|
||||
return;
|
||||
}
|
||||
|
||||
TreeWalker walker(aContainer);
|
||||
if (aContainer->IsAcceptableChild(aNode) && walker.Seek(aNode)) {
|
||||
Accessible* child =
|
||||
GetAccService()->GetOrCreateAccessible(aNode, aContainer);
|
||||
|
||||
if (child) {
|
||||
RefPtr<AccReorderEvent> reorderEvent = new AccReorderEvent(aContainer);
|
||||
|
||||
AutoTreeMutation mt(aContainer);
|
||||
aContainer->InsertAfter(child, walker.Prev());
|
||||
mt.AfterInsertion(child);
|
||||
mt.Done();
|
||||
|
||||
uint32_t flags = UpdateTreeInternal(child, true, reorderEvent);
|
||||
FireEventsOnInsertion(aContainer, reorderEvent, flags);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
DocAccessible::FireEventsOnInsertion(Accessible* aContainer,
|
||||
AccReorderEvent* aReorderEvent,
|
||||
@ -2280,6 +2264,10 @@ DocAccessible::CacheChildrenInSubtree(Accessible* aRoot,
|
||||
mt.Done();
|
||||
}
|
||||
|
||||
#ifdef A11Y_LOG
|
||||
logging::TreeInfo("cached children", logging::eVerbose, aRoot);
|
||||
#endif
|
||||
|
||||
// Fire document load complete on ARIA documents.
|
||||
// XXX: we should delay an event if the ARIA document has aria-busy.
|
||||
if (aRoot->HasARIARole() && !aRoot->IsDoc()) {
|
||||
|
@ -228,7 +228,11 @@ public:
|
||||
*
|
||||
* @return the accessible object
|
||||
*/
|
||||
Accessible* GetAccessible(nsINode* aNode) const;
|
||||
Accessible* GetAccessible(nsINode* aNode) const
|
||||
{
|
||||
return aNode == mDocumentNode ?
|
||||
const_cast<DocAccessible*>(this) : mNodeToAccessibleMap.Get(aNode);
|
||||
}
|
||||
|
||||
/**
|
||||
* Return an accessible for the given node even if the node is not in
|
||||
@ -486,6 +490,8 @@ protected:
|
||||
*/
|
||||
void ProcessContentInserted(Accessible* aContainer,
|
||||
const nsTArray<nsCOMPtr<nsIContent> >* aInsertedContent);
|
||||
void ProcessContentInserted(Accessible* aContainer,
|
||||
nsIContent* aInsertedContent);
|
||||
|
||||
/**
|
||||
* Used to notify the document to make it process the invalidation list.
|
||||
|
@ -1906,6 +1906,16 @@ HyperTextAccessible::RemoveChild(Accessible* aAccessible)
|
||||
return Accessible::RemoveChild(aAccessible);
|
||||
}
|
||||
|
||||
bool
|
||||
HyperTextAccessible::InsertChildAt(uint32_t aIndex, Accessible* aChild)
|
||||
{
|
||||
int32_t count = mOffsets.Length() - aIndex;
|
||||
if (count > 0 ) {
|
||||
mOffsets.RemoveElementsAt(aIndex, count);
|
||||
}
|
||||
return Accessible::InsertChildAt(aIndex, aChild);
|
||||
}
|
||||
|
||||
Relation
|
||||
HyperTextAccessible::RelationByType(RelationType aType)
|
||||
{
|
||||
|
@ -62,6 +62,7 @@ public:
|
||||
|
||||
virtual void Shutdown() override;
|
||||
virtual bool RemoveChild(Accessible* aAccessible) override;
|
||||
virtual bool InsertChildAt(uint32_t aIndex, Accessible* aChild) override;
|
||||
virtual Relation RelationByType(RelationType aType) override;
|
||||
|
||||
// HyperTextAccessible (static helper method)
|
||||
|
@ -130,19 +130,6 @@ HTMLLIAccessible::UpdateBullet(bool aHasBullet)
|
||||
mDoc->FireDelayedEvent(reorderEvent);
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// HTMLLIAccessible: Accessible protected
|
||||
|
||||
void
|
||||
HTMLLIAccessible::CacheChildren()
|
||||
{
|
||||
if (mBullet)
|
||||
AppendChild(mBullet);
|
||||
|
||||
// Cache children from subtree.
|
||||
AccessibleWrap::CacheChildren();
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// HTMLListBulletAccessible
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
@ -60,9 +60,6 @@ public:
|
||||
protected:
|
||||
virtual ~HTMLLIAccessible() { }
|
||||
|
||||
// Accessible
|
||||
virtual void CacheChildren() override;
|
||||
|
||||
private:
|
||||
RefPtr<HTMLListBulletAccessible> mBullet;
|
||||
};
|
||||
|
@ -912,7 +912,7 @@ HTMLTableAccessible::HasDescendant(const nsAString& aTagName, bool aAllowEmpty)
|
||||
// performance problems only. Note, currently 'aAllowEmpty' flag is used for
|
||||
// caption element only. On another hand we create accessible object for
|
||||
// the first entry of caption element (see
|
||||
// HTMLTableAccessible::CacheChildren).
|
||||
// HTMLTableAccessible::InsertChildAt).
|
||||
return !!elements->Item(1);
|
||||
}
|
||||
|
||||
|
@ -678,11 +678,11 @@ ConvertToNSArray(nsTArray<ProxyAccessible*>& aArray)
|
||||
{
|
||||
NS_OBJC_BEGIN_TRY_ABORT_BLOCK_NIL;
|
||||
|
||||
AccessibleWrap* accWrap = [self getGeckoAccessible];
|
||||
if (mChildren || (accWrap && !accWrap->AreChildrenCached()))
|
||||
if (mChildren)
|
||||
return mChildren;
|
||||
|
||||
// get the array of children.
|
||||
AccessibleWrap* accWrap = [self getGeckoAccessible];
|
||||
if (accWrap) {
|
||||
AutoTArray<Accessible*, 10> childrenArray;
|
||||
accWrap->GetUnignoredChildren(&childrenArray);
|
||||
|
@ -5,6 +5,7 @@ support-files = doc.html
|
||||
[test_atcaretoffset.html]
|
||||
[test_charboundary.html]
|
||||
[test_doc.html]
|
||||
[test_dynamic.html]
|
||||
[test_general.xul]
|
||||
[test_gettext.html]
|
||||
[test_hypertext.html]
|
||||
|
88
accessible/tests/mochitest/text/test_dynamic.html
Normal file
88
accessible/tests/mochitest/text/test_dynamic.html
Normal file
@ -0,0 +1,88 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>nsIAccessibleText getText related function tests for tree mutations</title>
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="chrome://mochikit/content/tests/SimpleTest/test.css" />
|
||||
|
||||
<script type="application/javascript"
|
||||
src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
|
||||
<script type="application/javascript"
|
||||
src="../common.js"></script>
|
||||
<script type="application/javascript"
|
||||
src="../text.js"></script>
|
||||
<script type="application/javascript"
|
||||
src="../events.js"></script>
|
||||
|
||||
<script type="application/javascript">
|
||||
function insertBefore(aId, aEl, aTextBefore, aTextAfter, aStartIdx, aEndIdx)
|
||||
{
|
||||
this.eventSeq = [
|
||||
new invokerChecker(EVENT_REORDER, aId)
|
||||
];
|
||||
|
||||
this.invoke = function insertBefore_invoke()
|
||||
{
|
||||
testText(aId, 0, -1, aTextBefore);
|
||||
getNode(aId).insertBefore(aEl, getNode(aId).firstChild);
|
||||
}
|
||||
|
||||
this.finalCheck = function insertBefore_finalCheck()
|
||||
{
|
||||
testText(aId, aStartIdx, aEndIdx, aTextAfter);
|
||||
}
|
||||
|
||||
this.getID = function insertTextBefore_getID() {
|
||||
return "insert " + prettyName(aEl) + " before";
|
||||
}
|
||||
}
|
||||
|
||||
function insertTextBefore(aId, aTextBefore, aText)
|
||||
{
|
||||
var el = document.createTextNode(aText);
|
||||
this.__proto__ = new insertBefore(aId, el, aTextBefore,
|
||||
aText + aTextBefore, 0, -1)
|
||||
}
|
||||
|
||||
function insertImgBefore(aId, aTextBefore)
|
||||
{
|
||||
var el = document.createElement("img");
|
||||
el.setAttribute("src", "../moz.png");
|
||||
el.setAttribute("alt", "mozilla");
|
||||
|
||||
this.__proto__ = new insertBefore(aId, el, aTextBefore,
|
||||
kEmbedChar + aTextBefore, 0, -1)
|
||||
}
|
||||
|
||||
function insertTextBefore2(aId)
|
||||
{
|
||||
var el = document.createTextNode("hehe");
|
||||
this.__proto__ = new insertBefore(aId, el, "ho", "ho", 4, -1)
|
||||
}
|
||||
|
||||
var gQueue = null;
|
||||
function doTest()
|
||||
{
|
||||
gQueue = new eventQueue();
|
||||
gQueue.push(new insertTextBefore("c1", "ho", "ha"));
|
||||
gQueue.push(new insertImgBefore("c1", "haho"));
|
||||
gQueue.push(new insertImgBefore("c2", kEmbedChar));
|
||||
gQueue.push(new insertTextBefore2("c3"));
|
||||
gQueue.invoke(); // will call SimpleTest.finish();
|
||||
}
|
||||
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
addA11yLoadEvent(doTest);
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<p id="display"></p>
|
||||
<div id="content" style="display: none"></div>
|
||||
<pre id="test">
|
||||
</pre>
|
||||
|
||||
<div id="c1">ho</div>
|
||||
<div id="c2"><img src="../moz.png" alt="mozilla"></div>
|
||||
<div id="c3">ho</div>
|
||||
</body>
|
||||
</html>
|
@ -121,18 +121,6 @@ XULLabelAccessible::UpdateLabelValue(const nsString& aValue)
|
||||
TextUpdater::Run(mDoc, mValueTextLeaf, aValue);
|
||||
}
|
||||
|
||||
void
|
||||
XULLabelAccessible::CacheChildren()
|
||||
{
|
||||
if (mValueTextLeaf) {
|
||||
AppendChild(mValueTextLeaf);
|
||||
return;
|
||||
}
|
||||
|
||||
// Cache children from subtree.
|
||||
AccessibleWrap::CacheChildren();
|
||||
}
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// XULLabelTextLeafAccessible
|
||||
|
@ -33,7 +33,6 @@ public:
|
||||
protected:
|
||||
// Accessible
|
||||
virtual ENameValueFlag NativeName(nsString& aName) override;
|
||||
virtual void CacheChildren() override;
|
||||
|
||||
private:
|
||||
RefPtr<XULLabelTextLeafAccessible> mValueTextLeaf;
|
||||
|
@ -4,15 +4,6 @@
|
||||
|
||||
TESTADDONS = source/test/addons
|
||||
ADDONSRC = $(srcdir)/$(TESTADDONS)
|
||||
TESTROOT = $(CURDIR)/$(DEPTH)/_tests/testing/mochitest/jetpack-addon/$(relativesrcdir)/$(TESTADDONS)
|
||||
|
||||
# Build a list of the test add-ons
|
||||
ADDONS = $(patsubst $(ADDONSRC)/%/package.json,$(TESTADDONS)/%.xpi,$(wildcard $(ADDONSRC)/*/package.json))
|
||||
|
||||
INSTALL_TARGETS += test_addons
|
||||
test_addons_FILES = $(ADDONS)
|
||||
test_addons_DEST = $(TESTROOT)
|
||||
test_addons_TARGET := misc
|
||||
|
||||
sinclude $(topsrcdir)/config/rules.mk
|
||||
|
||||
@ -20,8 +11,6 @@ sinclude $(topsrcdir)/config/rules.mk
|
||||
$(TESTADDONS)/%.xpi: FORCE $(call mkdir_deps,$(CURDIR)/$(TESTADDONS)) $(ADDONSRC)/%
|
||||
$(PYTHON) $(srcdir)/source/bin/cfx xpi --no-strip-xpi --pkgdir=$(lastword $^) --output-file=$@
|
||||
|
||||
#libs:: $(ADDONS)
|
||||
|
||||
TEST_FILES = \
|
||||
$(srcdir)/source/app-extension \
|
||||
$(srcdir)/source/bin \
|
||||
|
@ -16,6 +16,55 @@ BROWSER_CHROME_MANIFESTS += ['test/browser.ini']
|
||||
JETPACK_PACKAGE_MANIFESTS += ['source/test/jetpack-package.ini']
|
||||
JETPACK_ADDON_MANIFESTS += ['source/test/addons/jetpack-addon.ini']
|
||||
|
||||
addons = [
|
||||
'addon-manager',
|
||||
'author-email',
|
||||
'child_process',
|
||||
'chrome',
|
||||
'content-permissions',
|
||||
'contributors',
|
||||
'curly-id',
|
||||
'developers',
|
||||
'e10s-content',
|
||||
'e10s-l10n',
|
||||
'e10s-remote',
|
||||
'e10s-tabs',
|
||||
'e10s',
|
||||
'l10n-properties',
|
||||
'l10n',
|
||||
'layout-change',
|
||||
'main',
|
||||
'name-in-numbers-plus',
|
||||
'name-in-numbers',
|
||||
'packaging',
|
||||
'packed',
|
||||
'page-mod-debugger-post',
|
||||
'page-mod-debugger-pre',
|
||||
'page-worker',
|
||||
'places',
|
||||
'predefined-id-with-at',
|
||||
'preferences-branch',
|
||||
'private-browsing-supported',
|
||||
'remote',
|
||||
'require',
|
||||
'self',
|
||||
'simple-prefs-l10n',
|
||||
'simple-prefs-regression',
|
||||
'simple-prefs',
|
||||
'standard-id',
|
||||
'tab-close-on-startup',
|
||||
'toolkit-require-reload',
|
||||
'translators',
|
||||
'unsafe-content-script',
|
||||
]
|
||||
|
||||
addons = ['source/test/addons/%s.xpi' % f for f in addons]
|
||||
GENERATED_FILES += addons
|
||||
|
||||
TEST_HARNESS_FILES.testing.mochitest['jetpack-addon']['addon-sdk'].source.test.addons += [
|
||||
'!%s' % f for f in addons
|
||||
]
|
||||
|
||||
EXTRA_JS_MODULES.sdk += [
|
||||
'source/app-extension/bootstrap.js',
|
||||
]
|
||||
|
@ -298,7 +298,6 @@ pref("ui.dragThresholdY", 25);
|
||||
|
||||
// Layers Acceleration. We can only have nice things on gonk, because
|
||||
// they're not maintained anywhere else.
|
||||
pref("layers.offmainthreadcomposition.enabled", true);
|
||||
#ifndef MOZ_WIDGET_GONK
|
||||
pref("dom.ipc.tabs.disabled", true);
|
||||
#else
|
||||
|
@ -611,6 +611,8 @@ var settingsToObserve = {
|
||||
},
|
||||
'app.update.interval': 86400,
|
||||
'apz.overscroll.enabled': true,
|
||||
'browser.safebrowsing.enabled': true,
|
||||
'browser.safebrowsing.malware.enabled': true,
|
||||
'debug.fps.enabled': {
|
||||
prefName: 'layers.acceleration.draw-fps',
|
||||
defaultValue: false
|
||||
|
@ -26,7 +26,6 @@ oopCommandlineHandler.prototype = {
|
||||
// environment
|
||||
branch.setBoolPref("dom.ipc.tabs.disabled", false);
|
||||
branch.setBoolPref("layers.acceleration.disabled", false);
|
||||
branch.setBoolPref("layers.offmainthreadcomposition.enabled", true);
|
||||
branch.setBoolPref("layers.offmainthreadcomposition.async-animations", true);
|
||||
branch.setBoolPref("layers.async-video.enabled", true);
|
||||
branch.setBoolPref("layers.async-pan-zoom.enabled", true);
|
||||
|
@ -21,15 +21,15 @@
|
||||
<!--
|
||||
B2G repositories for all targets
|
||||
-->
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="eeedf205f728573c570c3b86f71d51916288bd04"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="6b2254b3e272133e9286d5986960e66bdecac0eb"/>
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="a954bd2954c422b7d24d92cfd73000cb455dce44"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="19150d320e6802ec211ccc5e74c254ae9992312d"/>
|
||||
<project name="moztt" path="external/moztt" remote="b2g" revision="99c333dab00ed79baff9e1cf76b320aee8e1c123"/>
|
||||
<project name="platform_hardware_libhardware_moz" path="hardware/libhardware_moz" remote="b2g" revision="fdf3a143dc777e5f9d33a88373af7ea161d3b440"/>
|
||||
<project name="platform_system_libfdio" path="system/libfdio" remote="b2g" revision="34adfb400e031f3dd3353d92413572db5e3a7376"/>
|
||||
<project name="platform_system_libpdu" path="system/libpdu" remote="b2g" revision="ac4e539dbd73522c466ebffba53edea61702082f"/>
|
||||
<project name="platform_system_libpdu" path="system/libpdu" remote="b2g" revision="f1a61fa8f97cc0a1ac4eca160acc222981b21d90"/>
|
||||
<project name="platform_system_sensorsd" path="system/sensorsd" remote="b2g" revision="3618678c472320de386f5ddc27897992d0e148a8"/>
|
||||
<!-- B2G specific things. -->
|
||||
<project name="platform_build" path="build" remote="b2g" revision="be4b291a90b371b41b62ade68c31ad173bb87baa">
|
||||
<project name="platform_build" path="build" remote="b2g" revision="aee7ff3dba262a037559d360b62af429b62cb876">
|
||||
<copyfile dest="Makefile" src="core/root.mk"/>
|
||||
</project>
|
||||
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
|
||||
@ -38,15 +38,17 @@
|
||||
<project name="rilproxy" path="rilproxy" remote="b2g" revision="5ef30994f4778b4052e58a4383dbe7890048c87e"/>
|
||||
<project name="valgrind" path="external/valgrind" remote="b2g" revision="5f931350fbc87c3df9db8b0ceb37734b8b471593"/>
|
||||
<project name="vex" path="external/VEX" remote="b2g" revision="48d8c7c950745f1b166b42125e6f0d3293d71636"/>
|
||||
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="fc7902b057d00a3bd94548bec58e5c04ec5643f7"/>
|
||||
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="7c5a77c651bcde37005e6b6e209747edcc6c9361"/>
|
||||
<!-- Stock Android things -->
|
||||
<project groups="pdk,linux" name="platform/prebuilts/clang/linux-x86/host/3.5" path="prebuilts/clang/linux-x86/host/3.5" revision="0f86914b89cf8a069533e66b218533a17bad6b43"/>
|
||||
<project groups="pdk,linux,arm" name="platform/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.8" path="prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.8" revision="6b1fb5b730b1299f99f9194c1fcf088579cc7977"/>
|
||||
<project groups="pdk,linux,arm" name="platform/prebuilts/gcc/linux-x86/arm/arm-eabi-4.8" path="prebuilts/gcc/linux-x86/arm/arm-eabi-4.8" revision="755656d9a7c79c6463920ad13f95d71e45e21397"/>
|
||||
<project groups="pdk,linux,arm" name="platform/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.8" path="prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.8" revision="ad086223028d281b2ea95f0f42f23ff4435917dd"/>
|
||||
<project depth="1" groups="pdk,linux,arm" name="platform/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9" path="prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9" remote="caf" revision="c09e1b3a55153d1ba142d5bf548c90487ea71f9e"/>
|
||||
<project groups="pdk,linux" name="platform/prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.11-4.6" path="prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.11-4.6" revision="94d88f335cdc90bf43471bacf243006e99cff908"/>
|
||||
<project groups="pdk,linux" name="platform/prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.11-4.8" path="prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.11-4.8" revision="ac160a43fddd833d4a0bc430f44f8b1956bac1e9"/>
|
||||
<project groups="pdk,linux,x86" name="platform/prebuilts/gcc/linux-x86/x86/x86_64-linux-android-4.8" path="prebuilts/gcc/linux-x86/x86/x86_64-linux-android-4.8" revision="966dbeff106bf36966d4c80a4f2c58a464ae314e"/>
|
||||
<project depth="1" groups="pdk,linux,x86" name="platform/prebuilts/gcc/linux-x86/x86/x86_64-linux-android-4.9" path="prebuilts/gcc/linux-x86/x86/x86_64-linux-android-4.9" remote="caf" revision="c33513f9de95fcdf4ec832db5e3ebd612382f541"/>
|
||||
<project groups="linux" name="platform/prebuilts/python/linux-x86/2.7.5" path="prebuilts/python/linux-x86/2.7.5" revision="accd992f11a8ec0a0ec52cdc891302dc54e2941e"/>
|
||||
<project name="device/common" path="device/common" revision="cf1543ff569188c1df9f4e9c7fa53b75393c49e3"/>
|
||||
<project name="device/sample" path="device/sample" revision="3bbddd699b3e093a664aae7d9a63032b798b561b"/>
|
||||
@ -139,7 +141,7 @@
|
||||
<project name="platform/prebuilts/ndk" path="prebuilts/ndk" revision="3881c90cec9a89b1b1e13c97af537647dcf63c71"/>
|
||||
<project name="platform/prebuilts/sdk" path="prebuilts/sdk" revision="a259bbcab27bb60bb75b16bce581549c724954cc"/>
|
||||
<project name="platform/prebuilts/tools" path="prebuilts/tools" revision="a6dda1861aee67e18947fee510e4e85f8c1ffeb7"/>
|
||||
<project name="platform_system_bluetoothd" path="system/bluetoothd" remote="b2g" revision="bb356d6505f914347690c8143dbd03af427dd07e"/>
|
||||
<project name="platform_system_bluetoothd" path="system/bluetoothd" remote="b2g" revision="6c9cebe5892c69e8b4bb2ea4e202f36ad095a4f0"/>
|
||||
<project name="platform/system/extras" path="system/extras" revision="7eb50bad98466762626ae1dd31df2acd77202c06"/>
|
||||
<project name="platform/system/media" path="system/media" revision="9de34d557017fe115051fbbd49f05564de6ba3de"/>
|
||||
<project name="platform/system/netd" path="system/netd" revision="313c71603fbfa643ff5f62f4fb3c26aa4696435c"/>
|
||||
@ -169,7 +171,7 @@
|
||||
<!-- Sony platform specific things -->
|
||||
<project name="codeaurora_kernel_msm" path="kernel" remote="b2g" revision="36e3286b400566d0cfe9ea9f54ca76039910bf92"/>
|
||||
<project name="device-qcom-sepolicy" path="device/qcom/sepolicy" remote="b2g" revision="e0a1cce6a8559ccc88e15da148531d36e18ae5f7"/>
|
||||
<project name="device-sony-common" path="device/sony/common" remote="b2g" revision="8956834338d21b18718149575a6c0a1466446cda"/>
|
||||
<project name="device-sony-common" path="device/sony/common" remote="b2g" revision="8ef37488798b6a1340dd9aac22e9e338cab905f7"/>
|
||||
<project name="android_external_busybox" path="external/busybox" remote="b2g" revision="757a15c84e7bf9897b908058f2e529fcffea73b8"/>
|
||||
<project groups="device" name="init_sh" path="hardware/sony/init_sh" remote="b2g" revision="58d94ebe3a2e9a1af4bc8c003cd6837e53cc4867"/>
|
||||
<project groups="device" name="macaddrsetup" path="hardware/sony/macaddrsetup" remote="b2g" revision="1e31df0400fda7d80151bd4c5441027cd49749f8"/>
|
||||
|
@ -21,12 +21,12 @@
|
||||
<!--
|
||||
B2G repositories for all targets
|
||||
-->
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="eeedf205f728573c570c3b86f71d51916288bd04"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="6b2254b3e272133e9286d5986960e66bdecac0eb"/>
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="a954bd2954c422b7d24d92cfd73000cb455dce44"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="19150d320e6802ec211ccc5e74c254ae9992312d"/>
|
||||
<project name="moztt" path="external/moztt" remote="b2g" revision="99c333dab00ed79baff9e1cf76b320aee8e1c123"/>
|
||||
<project name="platform_hardware_libhardware_moz" path="hardware/libhardware_moz" remote="b2g" revision="fdf3a143dc777e5f9d33a88373af7ea161d3b440"/>
|
||||
<project name="platform_system_libfdio" path="system/libfdio" remote="b2g" revision="34adfb400e031f3dd3353d92413572db5e3a7376"/>
|
||||
<project name="platform_system_libpdu" path="system/libpdu" remote="b2g" revision="ac4e539dbd73522c466ebffba53edea61702082f"/>
|
||||
<project name="platform_system_libpdu" path="system/libpdu" remote="b2g" revision="f1a61fa8f97cc0a1ac4eca160acc222981b21d90"/>
|
||||
<project name="platform_system_sensorsd" path="system/sensorsd" remote="b2g" revision="3618678c472320de386f5ddc27897992d0e148a8"/>
|
||||
<!-- B2G specific things. -->
|
||||
<project name="platform_build" path="build" remote="b2g" revision="964d9fa4eabe9eb473ef9101ca2a690880f28547">
|
||||
@ -38,7 +38,7 @@
|
||||
<project name="rilproxy" path="rilproxy" remote="b2g" revision="5ef30994f4778b4052e58a4383dbe7890048c87e"/>
|
||||
<project name="valgrind" path="external/valgrind" remote="b2g" revision="5f931350fbc87c3df9db8b0ceb37734b8b471593"/>
|
||||
<project name="vex" path="external/VEX" remote="b2g" revision="48d8c7c950745f1b166b42125e6f0d3293d71636"/>
|
||||
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="fc7902b057d00a3bd94548bec58e5c04ec5643f7"/>
|
||||
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="7c5a77c651bcde37005e6b6e209747edcc6c9361"/>
|
||||
<!-- Stock Android things -->
|
||||
<project groups="linux" name="platform/prebuilts/gcc/linux-x86/host/i686-linux-glibc2.7-4.6" path="prebuilts/gcc/linux-x86/host/i686-linux-glibc2.7-4.6" revision="95bb5b66b3ec5769c3de8d3f25d681787418e7d2"/>
|
||||
<project groups="linux" name="platform/prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.7-4.6" path="prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.7-4.6" revision="ebdad82e61c16772f6cd47e9f11936bf6ebe9aa0"/>
|
||||
@ -125,7 +125,7 @@
|
||||
<project name="platform/prebuilts/ndk" path="prebuilts/ndk" revision="c792f0bd9fff7aea2887c60bbb3a9bbdb534ffa3"/>
|
||||
<project name="platform/prebuilts/sdk" path="prebuilts/sdk" revision="69d524e80cdf3981006627c65ac85f3a871238a3"/>
|
||||
<project name="platform/prebuilts/tools" path="prebuilts/tools" revision="5a48c04c4bb5f079bc757e29864a42427378e051"/>
|
||||
<project name="platform_system_bluetoothd" path="system/bluetoothd" remote="b2g" revision="bb356d6505f914347690c8143dbd03af427dd07e"/>
|
||||
<project name="platform_system_bluetoothd" path="system/bluetoothd" remote="b2g" revision="6c9cebe5892c69e8b4bb2ea4e202f36ad095a4f0"/>
|
||||
<project name="platform/system/extras" path="system/extras" revision="576f57b6510de59c08568b53c0fb60588be8689e"/>
|
||||
<project name="platform/system/netd" path="system/netd" revision="a6531f7befb49b1c81bc0de7e51c5482b308e1c5"/>
|
||||
<project name="platform/system/security" path="system/security" revision="ee8068b9e7bfb2770635062fc9c2035be2142bd8"/>
|
||||
@ -167,6 +167,7 @@
|
||||
<project name="platform/system/qcom" path="system/qcom" revision="63e3f6f176caad587d42bba4c16b66d953fb23c2"/>
|
||||
<project name="platform/vendor/qcom/copper" path="device/qcom/msm8974" revision="ec7bc1a26610922156d7d412b4d3de6b4adb93da"/>
|
||||
<project name="vendor_broadcom_wlan" path="vendor/broadcom/wlan" remote="b2g" revision="114b9491a8a919687da4e22fbd89fab511d6d8d7"/>
|
||||
<project name="nginx" path="external/nginx" remote="b2g" revision="584bf310e21510e56af7e9dccd779eb7671118ef"/>
|
||||
<!-- Shinano specific things -->
|
||||
<project name="device-shinano" path="device/sony/leo" remote="b2g" revision="653f7e1f093b948e40262fcb3c665c2b4976df74"/>
|
||||
<!-- Aries specific things -->
|
||||
|
@ -21,12 +21,12 @@
|
||||
<!--
|
||||
B2G repositories for all targets
|
||||
-->
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="eeedf205f728573c570c3b86f71d51916288bd04"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="6b2254b3e272133e9286d5986960e66bdecac0eb"/>
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="a954bd2954c422b7d24d92cfd73000cb455dce44"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="19150d320e6802ec211ccc5e74c254ae9992312d"/>
|
||||
<project name="moztt" path="external/moztt" remote="b2g" revision="99c333dab00ed79baff9e1cf76b320aee8e1c123"/>
|
||||
<project name="platform_hardware_libhardware_moz" path="hardware/libhardware_moz" remote="b2g" revision="fdf3a143dc777e5f9d33a88373af7ea161d3b440"/>
|
||||
<project name="platform_system_libfdio" path="system/libfdio" remote="b2g" revision="34adfb400e031f3dd3353d92413572db5e3a7376"/>
|
||||
<project name="platform_system_libpdu" path="system/libpdu" remote="b2g" revision="ac4e539dbd73522c466ebffba53edea61702082f"/>
|
||||
<project name="platform_system_libpdu" path="system/libpdu" remote="b2g" revision="f1a61fa8f97cc0a1ac4eca160acc222981b21d90"/>
|
||||
<project name="platform_system_sensorsd" path="system/sensorsd" remote="b2g" revision="3618678c472320de386f5ddc27897992d0e148a8"/>
|
||||
<!-- B2G specific things. -->
|
||||
<project name="platform_build" path="build" remote="b2g" revision="964d9fa4eabe9eb473ef9101ca2a690880f28547">
|
||||
@ -38,7 +38,7 @@
|
||||
<project name="rilproxy" path="rilproxy" remote="b2g" revision="5ef30994f4778b4052e58a4383dbe7890048c87e"/>
|
||||
<project name="valgrind" path="external/valgrind" remote="b2g" revision="5f931350fbc87c3df9db8b0ceb37734b8b471593"/>
|
||||
<project name="vex" path="external/VEX" remote="b2g" revision="48d8c7c950745f1b166b42125e6f0d3293d71636"/>
|
||||
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="fc7902b057d00a3bd94548bec58e5c04ec5643f7"/>
|
||||
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="7c5a77c651bcde37005e6b6e209747edcc6c9361"/>
|
||||
<!-- Stock Android things -->
|
||||
<project groups="linux" name="platform/prebuilts/gcc/linux-x86/host/i686-linux-glibc2.7-4.6" path="prebuilts/gcc/linux-x86/host/i686-linux-glibc2.7-4.6" revision="95bb5b66b3ec5769c3de8d3f25d681787418e7d2"/>
|
||||
<project groups="linux" name="platform/prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.7-4.6" path="prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.7-4.6" revision="ebdad82e61c16772f6cd47e9f11936bf6ebe9aa0"/>
|
||||
@ -131,7 +131,7 @@
|
||||
<project name="platform/prebuilts/ndk" path="prebuilts/ndk" revision="c792f0bd9fff7aea2887c60bbb3a9bbdb534ffa3"/>
|
||||
<project name="platform/prebuilts/sdk" path="prebuilts/sdk" revision="cfcef469537869947abb9aa1d656774cc2678d4c"/>
|
||||
<project name="platform/prebuilts/tools" path="prebuilts/tools" revision="5a48c04c4bb5f079bc757e29864a42427378e051"/>
|
||||
<project name="platform_system_bluetoothd" path="system/bluetoothd" remote="b2g" revision="bb356d6505f914347690c8143dbd03af427dd07e"/>
|
||||
<project name="platform_system_bluetoothd" path="system/bluetoothd" remote="b2g" revision="6c9cebe5892c69e8b4bb2ea4e202f36ad095a4f0"/>
|
||||
<project name="platform/system/extras" path="system/extras" revision="10e78a05252b3de785f88c2d0b9ea8a428009c50"/>
|
||||
<project name="platform/system/media" path="system/media" revision="188b3e51e0a2ce1e16dc8067edef7be3d2365ad9"/>
|
||||
<project name="platform/system/netd" path="system/netd" revision="3ae56364946d4a5bf5a5f83f12f9a45a30398e33"/>
|
||||
|
@ -21,12 +21,12 @@
|
||||
<!--
|
||||
B2G repositories for all targets
|
||||
-->
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="eeedf205f728573c570c3b86f71d51916288bd04"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="6b2254b3e272133e9286d5986960e66bdecac0eb"/>
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="a954bd2954c422b7d24d92cfd73000cb455dce44"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="19150d320e6802ec211ccc5e74c254ae9992312d"/>
|
||||
<project name="moztt" path="external/moztt" remote="b2g" revision="99c333dab00ed79baff9e1cf76b320aee8e1c123"/>
|
||||
<project name="platform_hardware_libhardware_moz" path="hardware/libhardware_moz" remote="b2g" revision="fdf3a143dc777e5f9d33a88373af7ea161d3b440"/>
|
||||
<project name="platform_system_libfdio" path="system/libfdio" remote="b2g" revision="34adfb400e031f3dd3353d92413572db5e3a7376"/>
|
||||
<project name="platform_system_libpdu" path="system/libpdu" remote="b2g" revision="ac4e539dbd73522c466ebffba53edea61702082f"/>
|
||||
<project name="platform_system_libpdu" path="system/libpdu" remote="b2g" revision="f1a61fa8f97cc0a1ac4eca160acc222981b21d90"/>
|
||||
<project name="platform_system_sensorsd" path="system/sensorsd" remote="b2g" revision="3618678c472320de386f5ddc27897992d0e148a8"/>
|
||||
<default remote="caf" revision="refs/tags/android-4.0.4_r2.1" sync-j="4"/>
|
||||
<!-- Gonk-specific things and forks -->
|
||||
|
@ -21,12 +21,12 @@
|
||||
<!--
|
||||
B2G repositories for all targets
|
||||
-->
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="eeedf205f728573c570c3b86f71d51916288bd04"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="6b2254b3e272133e9286d5986960e66bdecac0eb"/>
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="a954bd2954c422b7d24d92cfd73000cb455dce44"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="19150d320e6802ec211ccc5e74c254ae9992312d"/>
|
||||
<project name="moztt" path="external/moztt" remote="b2g" revision="99c333dab00ed79baff9e1cf76b320aee8e1c123"/>
|
||||
<project name="platform_hardware_libhardware_moz" path="hardware/libhardware_moz" remote="b2g" revision="fdf3a143dc777e5f9d33a88373af7ea161d3b440"/>
|
||||
<project name="platform_system_libfdio" path="system/libfdio" remote="b2g" revision="34adfb400e031f3dd3353d92413572db5e3a7376"/>
|
||||
<project name="platform_system_libpdu" path="system/libpdu" remote="b2g" revision="ac4e539dbd73522c466ebffba53edea61702082f"/>
|
||||
<project name="platform_system_libpdu" path="system/libpdu" remote="b2g" revision="f1a61fa8f97cc0a1ac4eca160acc222981b21d90"/>
|
||||
<project name="platform_system_sensorsd" path="system/sensorsd" remote="b2g" revision="3618678c472320de386f5ddc27897992d0e148a8"/>
|
||||
<!-- B2G specific things. -->
|
||||
<project name="platform_build" path="build" remote="b2g" revision="8df1b0580ade1786bc1bf05a6abc06bcd62c2d6b">
|
||||
@ -34,7 +34,7 @@
|
||||
</project>
|
||||
<project name="rilproxy" path="rilproxy" remote="b2g" revision="5ef30994f4778b4052e58a4383dbe7890048c87e"/>
|
||||
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
|
||||
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="fc7902b057d00a3bd94548bec58e5c04ec5643f7"/>
|
||||
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="7c5a77c651bcde37005e6b6e209747edcc6c9361"/>
|
||||
<project name="valgrind" path="external/valgrind" remote="b2g" revision="5f931350fbc87c3df9db8b0ceb37734b8b471593"/>
|
||||
<project name="vex" path="external/VEX" remote="b2g" revision="48d8c7c950745f1b166b42125e6f0d3293d71636"/>
|
||||
<!-- Stock Android things -->
|
||||
@ -131,7 +131,7 @@
|
||||
<project name="platform/prebuilts/sdk" path="prebuilts/sdk" revision="842e33e43a55ea44833b9e23e4d180fa17c843af"/>
|
||||
<project name="platform/prebuilts/tools" path="prebuilts/tools" revision="5db24726f0f42124304195a6bdea129039eeeaeb"/>
|
||||
<project name="platform/system/bluetooth" path="system/bluetooth" revision="930ae098543881f47eac054677726ee4b998b2f8"/>
|
||||
<project name="platform_system_bluetoothd" path="system/bluetoothd" remote="b2g" revision="bb356d6505f914347690c8143dbd03af427dd07e"/>
|
||||
<project name="platform_system_bluetoothd" path="system/bluetoothd" remote="b2g" revision="6c9cebe5892c69e8b4bb2ea4e202f36ad095a4f0"/>
|
||||
<project name="platform_system_core" path="system/core" remote="b2g" revision="542d1f59dc331b472307e5bd043101d14d5a3a3e"/>
|
||||
<project name="platform/system/extras" path="system/extras" revision="18c1180e848e7ab8691940481f5c1c8d22c37b3e"/>
|
||||
<project name="platform/system/media" path="system/media" revision="d90b836f66bf1d9627886c96f3a2d9c3007fbb80"/>
|
||||
|
@ -21,12 +21,12 @@
|
||||
<!--
|
||||
B2G repositories for all targets
|
||||
-->
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="eeedf205f728573c570c3b86f71d51916288bd04"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="6b2254b3e272133e9286d5986960e66bdecac0eb"/>
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="a954bd2954c422b7d24d92cfd73000cb455dce44"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="19150d320e6802ec211ccc5e74c254ae9992312d"/>
|
||||
<project name="moztt" path="external/moztt" remote="b2g" revision="99c333dab00ed79baff9e1cf76b320aee8e1c123"/>
|
||||
<project name="platform_hardware_libhardware_moz" path="hardware/libhardware_moz" remote="b2g" revision="fdf3a143dc777e5f9d33a88373af7ea161d3b440"/>
|
||||
<project name="platform_system_libfdio" path="system/libfdio" remote="b2g" revision="34adfb400e031f3dd3353d92413572db5e3a7376"/>
|
||||
<project name="platform_system_libpdu" path="system/libpdu" remote="b2g" revision="ac4e539dbd73522c466ebffba53edea61702082f"/>
|
||||
<project name="platform_system_libpdu" path="system/libpdu" remote="b2g" revision="f1a61fa8f97cc0a1ac4eca160acc222981b21d90"/>
|
||||
<project name="platform_system_sensorsd" path="system/sensorsd" remote="b2g" revision="3618678c472320de386f5ddc27897992d0e148a8"/>
|
||||
<!-- B2G specific things. -->
|
||||
<project name="platform_build" path="build" remote="b2g" revision="964d9fa4eabe9eb473ef9101ca2a690880f28547">
|
||||
@ -37,7 +37,7 @@
|
||||
<project name="rilproxy" path="rilproxy" remote="b2g" revision="5ef30994f4778b4052e58a4383dbe7890048c87e"/>
|
||||
<project name="valgrind" path="external/valgrind" remote="b2g" revision="5f931350fbc87c3df9db8b0ceb37734b8b471593"/>
|
||||
<project name="vex" path="external/VEX" remote="b2g" revision="48d8c7c950745f1b166b42125e6f0d3293d71636"/>
|
||||
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="fc7902b057d00a3bd94548bec58e5c04ec5643f7"/>
|
||||
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="7c5a77c651bcde37005e6b6e209747edcc6c9361"/>
|
||||
<!-- Stock Android things -->
|
||||
<project groups="linux" name="platform/prebuilts/gcc/linux-x86/host/i686-linux-glibc2.7-4.6" path="prebuilts/gcc/linux-x86/host/i686-linux-glibc2.7-4.6" revision="f92a936f2aa97526d4593386754bdbf02db07a12"/>
|
||||
<project groups="linux" name="platform/prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.7-4.6" path="prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.7-4.6" revision="6e47ff2790f5656b5b074407829ceecf3e6188c4"/>
|
||||
@ -129,7 +129,7 @@
|
||||
<project name="platform/prebuilts/ndk" path="prebuilts/ndk" revision="6aa61f8557a22039a30b42b7f283996381fd625d"/>
|
||||
<project name="platform/prebuilts/sdk" path="prebuilts/sdk" revision="b562b01c93de9578d5db537b6a602a38e1aaa0ce"/>
|
||||
<project name="platform/prebuilts/tools" path="prebuilts/tools" revision="387f03e815f57d536dd922706db1622bddba8d81"/>
|
||||
<project name="platform_system_bluetoothd" path="system/bluetoothd" remote="b2g" revision="bb356d6505f914347690c8143dbd03af427dd07e"/>
|
||||
<project name="platform_system_bluetoothd" path="system/bluetoothd" remote="b2g" revision="6c9cebe5892c69e8b4bb2ea4e202f36ad095a4f0"/>
|
||||
<project name="platform/system/extras" path="system/extras" revision="5356165f67f4a81c2ef28671c13697f1657590df"/>
|
||||
<project name="platform/system/media" path="system/media" revision="be0e2fe59a8043fa5200f75697df9220a99abe9d"/>
|
||||
<project name="platform/system/netd" path="system/netd" revision="36704b0da24debcab8090156568ac236315036bb"/>
|
||||
|
@ -21,15 +21,15 @@
|
||||
<!--
|
||||
B2G repositories for all targets
|
||||
-->
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="eeedf205f728573c570c3b86f71d51916288bd04"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="6b2254b3e272133e9286d5986960e66bdecac0eb"/>
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="a954bd2954c422b7d24d92cfd73000cb455dce44"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="19150d320e6802ec211ccc5e74c254ae9992312d"/>
|
||||
<project name="moztt" path="external/moztt" remote="b2g" revision="99c333dab00ed79baff9e1cf76b320aee8e1c123"/>
|
||||
<project name="platform_hardware_libhardware_moz" path="hardware/libhardware_moz" remote="b2g" revision="fdf3a143dc777e5f9d33a88373af7ea161d3b440"/>
|
||||
<project name="platform_system_libfdio" path="system/libfdio" remote="b2g" revision="34adfb400e031f3dd3353d92413572db5e3a7376"/>
|
||||
<project name="platform_system_libpdu" path="system/libpdu" remote="b2g" revision="ac4e539dbd73522c466ebffba53edea61702082f"/>
|
||||
<project name="platform_system_libpdu" path="system/libpdu" remote="b2g" revision="f1a61fa8f97cc0a1ac4eca160acc222981b21d90"/>
|
||||
<project name="platform_system_sensorsd" path="system/sensorsd" remote="b2g" revision="3618678c472320de386f5ddc27897992d0e148a8"/>
|
||||
<!-- B2G specific things. -->
|
||||
<project name="platform_build" path="build" remote="b2g" revision="be4b291a90b371b41b62ade68c31ad173bb87baa">
|
||||
<project name="platform_build" path="build" remote="b2g" revision="aee7ff3dba262a037559d360b62af429b62cb876">
|
||||
<copyfile dest="Makefile" src="core/root.mk"/>
|
||||
</project>
|
||||
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
|
||||
@ -37,15 +37,17 @@
|
||||
<project name="rilproxy" path="rilproxy" remote="b2g" revision="5ef30994f4778b4052e58a4383dbe7890048c87e"/>
|
||||
<project name="valgrind" path="external/valgrind" remote="b2g" revision="5f931350fbc87c3df9db8b0ceb37734b8b471593"/>
|
||||
<project name="vex" path="external/VEX" remote="b2g" revision="48d8c7c950745f1b166b42125e6f0d3293d71636"/>
|
||||
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="fc7902b057d00a3bd94548bec58e5c04ec5643f7"/>
|
||||
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="7c5a77c651bcde37005e6b6e209747edcc6c9361"/>
|
||||
<!-- Stock Android things -->
|
||||
<project groups="pdk,linux" name="platform/prebuilts/clang/linux-x86/host/3.5" path="prebuilts/clang/linux-x86/host/3.5" revision="ffc05a232799fe8fcb3e47b7440b52b1fb4244c0"/>
|
||||
<project groups="pdk,linux,arm" name="platform/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.8" path="prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.8" revision="337e0ef5e40f02a1ae59b90db0548976c70a7226"/>
|
||||
<project groups="pdk,linux,arm" name="platform/prebuilts/gcc/linux-x86/arm/arm-eabi-4.8" path="prebuilts/gcc/linux-x86/arm/arm-eabi-4.8" revision="8af5ff6f5dced9eb5a8127459df6c75d24342204"/>
|
||||
<project groups="pdk,linux,arm" name="platform/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.8" path="prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.8" revision="30915518fa7ea07166efedc191a4f40aef516fe7"/>
|
||||
<project depth="1" groups="pdk,linux,arm" name="platform/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9" path="prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9" remote="caf" revision="c09e1b3a55153d1ba142d5bf548c90487ea71f9e"/>
|
||||
<project groups="pdk,linux" name="platform/prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.11-4.6" path="prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.11-4.6" revision="96eee58e3389fb05a835310d6a06a6ba4486097a"/>
|
||||
<project groups="pdk,linux" name="platform/prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.11-4.8" path="prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.11-4.8" revision="7c8a46698171aa2e0be09edb43d15a6acf832770"/>
|
||||
<project groups="pdk,linux,x86" name="platform/prebuilts/gcc/linux-x86/x86/x86_64-linux-android-4.8" path="prebuilts/gcc/linux-x86/x86/x86_64-linux-android-4.8" revision="24b2038be8a636fd4a5d21f0abae1e466b07bcf7"/>
|
||||
<project depth="1" groups="pdk,linux,x86" name="platform/prebuilts/gcc/linux-x86/x86/x86_64-linux-android-4.9" path="prebuilts/gcc/linux-x86/x86/x86_64-linux-android-4.9" remote="caf" revision="c33513f9de95fcdf4ec832db5e3ebd612382f541"/>
|
||||
<project groups="linux" name="platform/prebuilts/python/linux-x86/2.7.5" path="prebuilts/python/linux-x86/2.7.5" revision="ab14644af0429dfb6744e9709f9ef46fb7bf73e4"/>
|
||||
<project name="device/common" path="device/common" revision="05f67c8cf7b9669da6f37f74b3388b594e319b84"/>
|
||||
<project name="device/sample" path="device/sample" revision="298675b60a633253434c4829339534c08292dc92"/>
|
||||
@ -139,7 +141,7 @@
|
||||
<project name="platform/prebuilts/ndk" path="prebuilts/ndk" revision="1d080491f26dfdfd76d5bbc3e6b40c660e8565af"/>
|
||||
<project name="platform/prebuilts/sdk" path="prebuilts/sdk" revision="61a10cbd19d6b7fc052a8cb92dfa1b37b93754f3"/>
|
||||
<project name="platform/prebuilts/tools" path="prebuilts/tools" revision="9e892a67a01671f312c76b0880dedaa6ba478148"/>
|
||||
<project name="platform_system_bluetoothd" path="system/bluetoothd" remote="b2g" revision="bb356d6505f914347690c8143dbd03af427dd07e"/>
|
||||
<project name="platform_system_bluetoothd" path="system/bluetoothd" remote="b2g" revision="6c9cebe5892c69e8b4bb2ea4e202f36ad095a4f0"/>
|
||||
<project name="platform/system/extras" path="system/extras" revision="47fa016e2248b80aebd5928402c7409f8e0ca64e"/>
|
||||
<project name="platform/system/media" path="system/media" revision="70bfebc66d9c6a4c614a8c7efde90e8e7e1d8641"/>
|
||||
<project name="platform/system/netd" path="system/netd" revision="d113f0ceefa9ce29eb3c86e2d23c7417a70b4048"/>
|
||||
|
@ -21,12 +21,12 @@
|
||||
<!--
|
||||
B2G repositories for all targets
|
||||
-->
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="eeedf205f728573c570c3b86f71d51916288bd04"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="6b2254b3e272133e9286d5986960e66bdecac0eb"/>
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="a954bd2954c422b7d24d92cfd73000cb455dce44"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="19150d320e6802ec211ccc5e74c254ae9992312d"/>
|
||||
<project name="moztt" path="external/moztt" remote="b2g" revision="99c333dab00ed79baff9e1cf76b320aee8e1c123"/>
|
||||
<project name="platform_hardware_libhardware_moz" path="hardware/libhardware_moz" remote="b2g" revision="fdf3a143dc777e5f9d33a88373af7ea161d3b440"/>
|
||||
<project name="platform_system_libfdio" path="system/libfdio" remote="b2g" revision="34adfb400e031f3dd3353d92413572db5e3a7376"/>
|
||||
<project name="platform_system_libpdu" path="system/libpdu" remote="b2g" revision="ac4e539dbd73522c466ebffba53edea61702082f"/>
|
||||
<project name="platform_system_libpdu" path="system/libpdu" remote="b2g" revision="f1a61fa8f97cc0a1ac4eca160acc222981b21d90"/>
|
||||
<project name="platform_system_sensorsd" path="system/sensorsd" remote="b2g" revision="3618678c472320de386f5ddc27897992d0e148a8"/>
|
||||
<default remote="caf" revision="refs/tags/android-4.0.4_r2.1" sync-j="4"/>
|
||||
<!-- Gonk-specific things and forks -->
|
||||
|
@ -21,12 +21,12 @@
|
||||
<!--
|
||||
B2G repositories for all targets
|
||||
-->
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="eeedf205f728573c570c3b86f71d51916288bd04"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="6b2254b3e272133e9286d5986960e66bdecac0eb"/>
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="a954bd2954c422b7d24d92cfd73000cb455dce44"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="19150d320e6802ec211ccc5e74c254ae9992312d"/>
|
||||
<project name="moztt" path="external/moztt" remote="b2g" revision="99c333dab00ed79baff9e1cf76b320aee8e1c123"/>
|
||||
<project name="platform_hardware_libhardware_moz" path="hardware/libhardware_moz" remote="b2g" revision="fdf3a143dc777e5f9d33a88373af7ea161d3b440"/>
|
||||
<project name="platform_system_libfdio" path="system/libfdio" remote="b2g" revision="34adfb400e031f3dd3353d92413572db5e3a7376"/>
|
||||
<project name="platform_system_libpdu" path="system/libpdu" remote="b2g" revision="ac4e539dbd73522c466ebffba53edea61702082f"/>
|
||||
<project name="platform_system_libpdu" path="system/libpdu" remote="b2g" revision="f1a61fa8f97cc0a1ac4eca160acc222981b21d90"/>
|
||||
<project name="platform_system_sensorsd" path="system/sensorsd" remote="b2g" revision="3618678c472320de386f5ddc27897992d0e148a8"/>
|
||||
<!-- B2G specific things. -->
|
||||
<project name="platform_build" path="build" remote="b2g" revision="964d9fa4eabe9eb473ef9101ca2a690880f28547">
|
||||
@ -38,7 +38,7 @@
|
||||
<project name="rilproxy" path="rilproxy" remote="b2g" revision="5ef30994f4778b4052e58a4383dbe7890048c87e"/>
|
||||
<project name="valgrind" path="external/valgrind" remote="b2g" revision="5f931350fbc87c3df9db8b0ceb37734b8b471593"/>
|
||||
<project name="vex" path="external/VEX" remote="b2g" revision="48d8c7c950745f1b166b42125e6f0d3293d71636"/>
|
||||
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="fc7902b057d00a3bd94548bec58e5c04ec5643f7"/>
|
||||
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="7c5a77c651bcde37005e6b6e209747edcc6c9361"/>
|
||||
<!-- Stock Android things -->
|
||||
<project groups="linux" name="platform/prebuilts/gcc/linux-x86/host/i686-linux-glibc2.7-4.6" path="prebuilts/gcc/linux-x86/host/i686-linux-glibc2.7-4.6" revision="95bb5b66b3ec5769c3de8d3f25d681787418e7d2"/>
|
||||
<project groups="linux" name="platform/prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.7-4.6" path="prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.7-4.6" revision="ebdad82e61c16772f6cd47e9f11936bf6ebe9aa0"/>
|
||||
@ -124,7 +124,7 @@
|
||||
<project name="platform/prebuilts/ndk" path="prebuilts/ndk" revision="c792f0bd9fff7aea2887c60bbb3a9bbdb534ffa3"/>
|
||||
<project name="platform/prebuilts/sdk" path="prebuilts/sdk" revision="69d524e80cdf3981006627c65ac85f3a871238a3"/>
|
||||
<project name="platform/prebuilts/tools" path="prebuilts/tools" revision="5a48c04c4bb5f079bc757e29864a42427378e051"/>
|
||||
<project name="platform_system_bluetoothd" path="system/bluetoothd" remote="b2g" revision="bb356d6505f914347690c8143dbd03af427dd07e"/>
|
||||
<project name="platform_system_bluetoothd" path="system/bluetoothd" remote="b2g" revision="6c9cebe5892c69e8b4bb2ea4e202f36ad095a4f0"/>
|
||||
<project name="platform/system/extras" path="system/extras" revision="576f57b6510de59c08568b53c0fb60588be8689e"/>
|
||||
<project name="platform/system/netd" path="system/netd" revision="a6531f7befb49b1c81bc0de7e51c5482b308e1c5"/>
|
||||
<project name="platform/system/security" path="system/security" revision="ee8068b9e7bfb2770635062fc9c2035be2142bd8"/>
|
||||
|
@ -1,9 +1,9 @@
|
||||
{
|
||||
"git": {
|
||||
"git_revision": "eeedf205f728573c570c3b86f71d51916288bd04",
|
||||
"git_revision": "a954bd2954c422b7d24d92cfd73000cb455dce44",
|
||||
"remote": "https://git.mozilla.org/releases/gaia.git",
|
||||
"branch": ""
|
||||
},
|
||||
"revision": "8bec48f18dee7096595892f822f8807060999859",
|
||||
"revision": "e9e8c44b43178139fca915cfe97ae3c52a9afe34",
|
||||
"repo_path": "integration/gaia-central"
|
||||
}
|
||||
|
@ -21,12 +21,12 @@
|
||||
<!--
|
||||
B2G repositories for all targets
|
||||
-->
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="eeedf205f728573c570c3b86f71d51916288bd04"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="6b2254b3e272133e9286d5986960e66bdecac0eb"/>
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="a954bd2954c422b7d24d92cfd73000cb455dce44"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="19150d320e6802ec211ccc5e74c254ae9992312d"/>
|
||||
<project name="moztt" path="external/moztt" remote="b2g" revision="99c333dab00ed79baff9e1cf76b320aee8e1c123"/>
|
||||
<project name="platform_hardware_libhardware_moz" path="hardware/libhardware_moz" remote="b2g" revision="fdf3a143dc777e5f9d33a88373af7ea161d3b440"/>
|
||||
<project name="platform_system_libfdio" path="system/libfdio" remote="b2g" revision="34adfb400e031f3dd3353d92413572db5e3a7376"/>
|
||||
<project name="platform_system_libpdu" path="system/libpdu" remote="b2g" revision="ac4e539dbd73522c466ebffba53edea61702082f"/>
|
||||
<project name="platform_system_libpdu" path="system/libpdu" remote="b2g" revision="f1a61fa8f97cc0a1ac4eca160acc222981b21d90"/>
|
||||
<project name="platform_system_sensorsd" path="system/sensorsd" remote="b2g" revision="3618678c472320de386f5ddc27897992d0e148a8"/>
|
||||
<!-- B2G specific things. -->
|
||||
<project name="platform_build" path="build" remote="b2g" revision="964d9fa4eabe9eb473ef9101ca2a690880f28547">
|
||||
@ -38,7 +38,7 @@
|
||||
<project name="rilproxy" path="rilproxy" remote="b2g" revision="5ef30994f4778b4052e58a4383dbe7890048c87e"/>
|
||||
<project name="valgrind" path="external/valgrind" remote="b2g" revision="5f931350fbc87c3df9db8b0ceb37734b8b471593"/>
|
||||
<project name="vex" path="external/VEX" remote="b2g" revision="48d8c7c950745f1b166b42125e6f0d3293d71636"/>
|
||||
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="fc7902b057d00a3bd94548bec58e5c04ec5643f7"/>
|
||||
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="7c5a77c651bcde37005e6b6e209747edcc6c9361"/>
|
||||
<!-- Stock Android things -->
|
||||
<project groups="linux" name="platform/prebuilts/gcc/linux-x86/host/i686-linux-glibc2.7-4.6" path="prebuilts/gcc/linux-x86/host/i686-linux-glibc2.7-4.6" revision="f92a936f2aa97526d4593386754bdbf02db07a12"/>
|
||||
<project groups="linux" name="platform/prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.7-4.6" path="prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.7-4.6" revision="6e47ff2790f5656b5b074407829ceecf3e6188c4"/>
|
||||
@ -131,7 +131,7 @@
|
||||
<project name="platform/prebuilts/ndk" path="prebuilts/ndk" revision="6aa61f8557a22039a30b42b7f283996381fd625d"/>
|
||||
<project name="platform/prebuilts/sdk" path="prebuilts/sdk" revision="b562b01c93de9578d5db537b6a602a38e1aaa0ce"/>
|
||||
<project name="platform/prebuilts/tools" path="prebuilts/tools" revision="387f03e815f57d536dd922706db1622bddba8d81"/>
|
||||
<project name="platform_system_bluetoothd" path="system/bluetoothd" remote="b2g" revision="bb356d6505f914347690c8143dbd03af427dd07e"/>
|
||||
<project name="platform_system_bluetoothd" path="system/bluetoothd" remote="b2g" revision="6c9cebe5892c69e8b4bb2ea4e202f36ad095a4f0"/>
|
||||
<project name="platform/system/extras" path="system/extras" revision="5356165f67f4a81c2ef28671c13697f1657590df"/>
|
||||
<project name="platform/system/media" path="system/media" revision="be0e2fe59a8043fa5200f75697df9220a99abe9d"/>
|
||||
<project name="platform/system/netd" path="system/netd" revision="36704b0da24debcab8090156568ac236315036bb"/>
|
||||
|
@ -21,12 +21,12 @@
|
||||
<!--
|
||||
B2G repositories for all targets
|
||||
-->
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="eeedf205f728573c570c3b86f71d51916288bd04"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="6b2254b3e272133e9286d5986960e66bdecac0eb"/>
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="a954bd2954c422b7d24d92cfd73000cb455dce44"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="19150d320e6802ec211ccc5e74c254ae9992312d"/>
|
||||
<project name="moztt" path="external/moztt" remote="b2g" revision="99c333dab00ed79baff9e1cf76b320aee8e1c123"/>
|
||||
<project name="platform_hardware_libhardware_moz" path="hardware/libhardware_moz" remote="b2g" revision="fdf3a143dc777e5f9d33a88373af7ea161d3b440"/>
|
||||
<project name="platform_system_libfdio" path="system/libfdio" remote="b2g" revision="34adfb400e031f3dd3353d92413572db5e3a7376"/>
|
||||
<project name="platform_system_libpdu" path="system/libpdu" remote="b2g" revision="ac4e539dbd73522c466ebffba53edea61702082f"/>
|
||||
<project name="platform_system_libpdu" path="system/libpdu" remote="b2g" revision="f1a61fa8f97cc0a1ac4eca160acc222981b21d90"/>
|
||||
<project name="platform_system_sensorsd" path="system/sensorsd" remote="b2g" revision="3618678c472320de386f5ddc27897992d0e148a8"/>
|
||||
<!-- B2G specific things. -->
|
||||
<project name="platform_build" path="build" remote="b2g" revision="8df1b0580ade1786bc1bf05a6abc06bcd62c2d6b">
|
||||
@ -35,7 +35,7 @@
|
||||
<project name="rilproxy" path="rilproxy" remote="b2g" revision="5ef30994f4778b4052e58a4383dbe7890048c87e"/>
|
||||
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
|
||||
<project name="fake-qemu-kernel" path="prebuilts/qemu-kernel" remote="b2g" revision="939b377d55a2f081d94029a30a75d05e5a20daf3"/>
|
||||
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="fc7902b057d00a3bd94548bec58e5c04ec5643f7"/>
|
||||
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="7c5a77c651bcde37005e6b6e209747edcc6c9361"/>
|
||||
<project name="valgrind" path="external/valgrind" remote="b2g" revision="5f931350fbc87c3df9db8b0ceb37734b8b471593"/>
|
||||
<project name="vex" path="external/VEX" remote="b2g" revision="48d8c7c950745f1b166b42125e6f0d3293d71636"/>
|
||||
<!-- Stock Android things -->
|
||||
@ -132,7 +132,7 @@
|
||||
<project name="platform/prebuilts/sdk" path="prebuilts/sdk" revision="842e33e43a55ea44833b9e23e4d180fa17c843af"/>
|
||||
<project name="platform/prebuilts/tools" path="prebuilts/tools" revision="5db24726f0f42124304195a6bdea129039eeeaeb"/>
|
||||
<project name="platform/system/bluetooth" path="system/bluetooth" revision="930ae098543881f47eac054677726ee4b998b2f8"/>
|
||||
<project name="platform_system_bluetoothd" path="system/bluetoothd" remote="b2g" revision="bb356d6505f914347690c8143dbd03af427dd07e"/>
|
||||
<project name="platform_system_bluetoothd" path="system/bluetoothd" remote="b2g" revision="6c9cebe5892c69e8b4bb2ea4e202f36ad095a4f0"/>
|
||||
<project name="platform_system_core" path="system/core" remote="b2g" revision="542d1f59dc331b472307e5bd043101d14d5a3a3e"/>
|
||||
<project name="platform/system/extras" path="system/extras" revision="18c1180e848e7ab8691940481f5c1c8d22c37b3e"/>
|
||||
<project name="platform/system/media" path="system/media" revision="d90b836f66bf1d9627886c96f3a2d9c3007fbb80"/>
|
||||
|
@ -21,15 +21,15 @@
|
||||
<!--
|
||||
B2G repositories for all targets
|
||||
-->
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="eeedf205f728573c570c3b86f71d51916288bd04"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="6b2254b3e272133e9286d5986960e66bdecac0eb"/>
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="a954bd2954c422b7d24d92cfd73000cb455dce44"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="19150d320e6802ec211ccc5e74c254ae9992312d"/>
|
||||
<project name="moztt" path="external/moztt" remote="b2g" revision="99c333dab00ed79baff9e1cf76b320aee8e1c123"/>
|
||||
<project name="platform_hardware_libhardware_moz" path="hardware/libhardware_moz" remote="b2g" revision="fdf3a143dc777e5f9d33a88373af7ea161d3b440"/>
|
||||
<project name="platform_system_libfdio" path="system/libfdio" remote="b2g" revision="34adfb400e031f3dd3353d92413572db5e3a7376"/>
|
||||
<project name="platform_system_libpdu" path="system/libpdu" remote="b2g" revision="ac4e539dbd73522c466ebffba53edea61702082f"/>
|
||||
<project name="platform_system_libpdu" path="system/libpdu" remote="b2g" revision="f1a61fa8f97cc0a1ac4eca160acc222981b21d90"/>
|
||||
<project name="platform_system_sensorsd" path="system/sensorsd" remote="b2g" revision="3618678c472320de386f5ddc27897992d0e148a8"/>
|
||||
<!-- B2G specific things. -->
|
||||
<project name="platform_build" path="build" remote="b2g" revision="be4b291a90b371b41b62ade68c31ad173bb87baa">
|
||||
<project name="platform_build" path="build" remote="b2g" revision="aee7ff3dba262a037559d360b62af429b62cb876">
|
||||
<copyfile dest="Makefile" src="core/root.mk"/>
|
||||
</project>
|
||||
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
|
||||
@ -38,15 +38,17 @@
|
||||
<project name="rilproxy" path="rilproxy" remote="b2g" revision="5ef30994f4778b4052e58a4383dbe7890048c87e"/>
|
||||
<project name="valgrind" path="external/valgrind" remote="b2g" revision="5f931350fbc87c3df9db8b0ceb37734b8b471593"/>
|
||||
<project name="vex" path="external/VEX" remote="b2g" revision="48d8c7c950745f1b166b42125e6f0d3293d71636"/>
|
||||
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="fc7902b057d00a3bd94548bec58e5c04ec5643f7"/>
|
||||
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="7c5a77c651bcde37005e6b6e209747edcc6c9361"/>
|
||||
<!-- Stock Android things -->
|
||||
<project groups="pdk,linux" name="platform/prebuilts/clang/linux-x86/host/3.5" path="prebuilts/clang/linux-x86/host/3.5" revision="ffc05a232799fe8fcb3e47b7440b52b1fb4244c0"/>
|
||||
<project groups="pdk,linux,arm" name="platform/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.8" path="prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.8" revision="337e0ef5e40f02a1ae59b90db0548976c70a7226"/>
|
||||
<project groups="pdk,linux,arm" name="platform/prebuilts/gcc/linux-x86/arm/arm-eabi-4.8" path="prebuilts/gcc/linux-x86/arm/arm-eabi-4.8" revision="8af5ff6f5dced9eb5a8127459df6c75d24342204"/>
|
||||
<project groups="pdk,linux,arm" name="platform/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.8" path="prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.8" revision="30915518fa7ea07166efedc191a4f40aef516fe7"/>
|
||||
<project depth="1" groups="pdk,linux,arm" name="platform/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9" path="prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9" remote="caf" revision="c09e1b3a55153d1ba142d5bf548c90487ea71f9e"/>
|
||||
<project groups="pdk,linux" name="platform/prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.11-4.6" path="prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.11-4.6" revision="96eee58e3389fb05a835310d6a06a6ba4486097a"/>
|
||||
<project groups="pdk,linux" name="platform/prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.11-4.8" path="prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.11-4.8" revision="7c8a46698171aa2e0be09edb43d15a6acf832770"/>
|
||||
<project groups="pdk,linux,x86" name="platform/prebuilts/gcc/linux-x86/x86/x86_64-linux-android-4.8" path="prebuilts/gcc/linux-x86/x86/x86_64-linux-android-4.8" revision="24b2038be8a636fd4a5d21f0abae1e466b07bcf7"/>
|
||||
<project depth="1" groups="pdk,linux,x86" name="platform/prebuilts/gcc/linux-x86/x86/x86_64-linux-android-4.9" path="prebuilts/gcc/linux-x86/x86/x86_64-linux-android-4.9" remote="caf" revision="c33513f9de95fcdf4ec832db5e3ebd612382f541"/>
|
||||
<project groups="linux" name="platform/prebuilts/python/linux-x86/2.7.5" path="prebuilts/python/linux-x86/2.7.5" revision="ab14644af0429dfb6744e9709f9ef46fb7bf73e4"/>
|
||||
<project name="device/common" path="device/common" revision="05f67c8cf7b9669da6f37f74b3388b594e319b84"/>
|
||||
<project name="device/sample" path="device/sample" revision="298675b60a633253434c4829339534c08292dc92"/>
|
||||
@ -140,7 +142,7 @@
|
||||
<project name="platform/prebuilts/ndk" path="prebuilts/ndk" revision="1d080491f26dfdfd76d5bbc3e6b40c660e8565af"/>
|
||||
<project name="platform/prebuilts/sdk" path="prebuilts/sdk" revision="61a10cbd19d6b7fc052a8cb92dfa1b37b93754f3"/>
|
||||
<project name="platform/prebuilts/tools" path="prebuilts/tools" revision="9e892a67a01671f312c76b0880dedaa6ba478148"/>
|
||||
<project name="platform_system_bluetoothd" path="system/bluetoothd" remote="b2g" revision="bb356d6505f914347690c8143dbd03af427dd07e"/>
|
||||
<project name="platform_system_bluetoothd" path="system/bluetoothd" remote="b2g" revision="6c9cebe5892c69e8b4bb2ea4e202f36ad095a4f0"/>
|
||||
<project name="platform/system/extras" path="system/extras" revision="47fa016e2248b80aebd5928402c7409f8e0ca64e"/>
|
||||
<project name="platform/system/media" path="system/media" revision="70bfebc66d9c6a4c614a8c7efde90e8e7e1d8641"/>
|
||||
<project name="platform/system/netd" path="system/netd" revision="d113f0ceefa9ce29eb3c86e2d23c7417a70b4048"/>
|
||||
@ -154,7 +156,7 @@
|
||||
<default remote="caf" revision="refs/tags/android-5.1.0_r1" sync-j="4"/>
|
||||
<!-- Nexus 5 specific things -->
|
||||
<project name="device/generic/armv7-a-neon" path="device/generic/armv7-a-neon" revision="fe7df1bc8dd0fd71571505d7be1c31a4ad1e40fb"/>
|
||||
<project name="device-hammerhead" path="device/lge/hammerhead" remote="b2g" revision="c4e9ed9053fbd21f57a7f014aaf898ac72ee1077"/>
|
||||
<project name="device-hammerhead" path="device/lge/hammerhead" remote="b2g" revision="acbb7a8914059426180c9059fc9419e57668a478"/>
|
||||
<project name="device_lge_hammerhead-kernel" path="device/lge/hammerhead-kernel" remote="b2g" revision="8b3ffcfdd3d3852eca5488628f8bb2a08acbffa7"/>
|
||||
<project name="platform/external/libnfc-nci" path="external/libnfc-nci" revision="5d0ae53d9588c3d70c005aec9be94af9a534de16"/>
|
||||
<project name="platform/external/wpa_supplicant_8" path="external/wpa_supplicant_8" revision="c15b6e266136cd0cdd9b94d0bbed1962d9dd6672"/>
|
||||
|
@ -44,8 +44,6 @@ MOZ_USE_NATIVE_POPUP_WINDOWS=1
|
||||
|
||||
MOZ_XULRUNNER=
|
||||
|
||||
MOZ_MEDIA_NAVIGATOR=1
|
||||
|
||||
MOZ_APP_ID={3c2e2abc-06d4-11e1-ac3b-374f68613e61}
|
||||
|
||||
MOZ_TIME_MANAGER=1
|
||||
|
@ -40,8 +40,6 @@ MOZ_RAW=1
|
||||
MOZ_AUDIO_CHANNEL_MANAGER=1
|
||||
fi
|
||||
|
||||
MOZ_MEDIA_NAVIGATOR=1
|
||||
|
||||
MOZ_APP_ID={d1bfe7d9-c01e-4237-998b-7b5f960a4314}
|
||||
MOZ_TIME_MANAGER=1
|
||||
|
||||
|
@ -102,10 +102,8 @@ DEFINES += -DMOZ_ICU_VERSION=$(MOZ_ICU_VERSION)
|
||||
ifdef MOZ_SYSTEM_ICU
|
||||
DEFINES += -DMOZ_SYSTEM_ICU
|
||||
endif
|
||||
ifdef MOZ_SHARED_ICU
|
||||
DEFINES += -DMOZ_SHARED_ICU
|
||||
endif
|
||||
DEFINES += -DMOZ_ICU_DBG_SUFFIX=$(MOZ_ICU_DBG_SUFFIX)
|
||||
DEFINES += -DICU_DATA_FILE=$(ICU_DATA_FILE)
|
||||
|
||||
ifneq (,$(filter gtk%,$(MOZ_WIDGET_TOOLKIT)))
|
||||
DEFINES += -DMOZ_GTK=1
|
||||
|
@ -72,21 +72,7 @@
|
||||
#endif
|
||||
#endif
|
||||
#ifndef MOZ_SYSTEM_ICU
|
||||
#ifdef MOZ_SHARED_ICU
|
||||
#ifdef XP_WIN
|
||||
@BINPATH@/icudt@MOZ_ICU_DBG_SUFFIX@@MOZ_ICU_VERSION@.dll
|
||||
@BINPATH@/icuin@MOZ_ICU_DBG_SUFFIX@@MOZ_ICU_VERSION@.dll
|
||||
@BINPATH@/icuuc@MOZ_ICU_DBG_SUFFIX@@MOZ_ICU_VERSION@.dll
|
||||
#elif defined(XP_MACOSX)
|
||||
@BINPATH@/libicudata.@MOZ_ICU_VERSION@.dylib
|
||||
@BINPATH@/libicui18n.@MOZ_ICU_VERSION@.dylib
|
||||
@BINPATH@/libicuuc.@MOZ_ICU_VERSION@.dylib
|
||||
#elif defined(XP_UNIX)
|
||||
@BINPATH@/libicudata.so.@MOZ_ICU_VERSION@
|
||||
@BINPATH@/libicui18n.so.@MOZ_ICU_VERSION@
|
||||
@BINPATH@/libicuuc.so.@MOZ_ICU_VERSION@
|
||||
#endif
|
||||
#endif
|
||||
@RESPATH@/@ICU_DATA_FILE@
|
||||
#endif
|
||||
#ifdef MOZ_SHARED_MOZGLUE
|
||||
@BINPATH@/@DLL_PREFIX@mozglue@DLL_SUFFIX@
|
||||
|
@ -6,9 +6,19 @@
|
||||
|
||||
option('--with-gonk', nargs=1, help='Path to the gonk base directory')
|
||||
|
||||
@depends('--with-gonk')
|
||||
@depends_if('--with-gonk')
|
||||
def gonkdir(value):
|
||||
return value[0] if value else ''
|
||||
return value[0]
|
||||
|
||||
add_old_configure_assignment('gonkdir', gonkdir)
|
||||
set_config('ANDROID_NDK',
|
||||
depends_if(gonkdir)(lambda x: os.path.join(x, 'ndk')))
|
||||
|
||||
@depends_if('--with-gonk')
|
||||
def gonk_toolkit(_):
|
||||
return 'cairo-gonk'
|
||||
|
||||
imply_option('--enable-default-toolkit', gonk_toolkit)
|
||||
|
||||
|
||||
option('--with-gonk-toolchain-prefix', nargs=1,
|
||||
|
@ -46,14 +46,6 @@ GARBAGE += $(addprefix $(FINAL_TARGET)/defaults/pref/, firefox.js)
|
||||
|
||||
endif
|
||||
|
||||
ifneq (,$(filter gtk%,$(MOZ_WIDGET_TOOLKIT)))
|
||||
libs::
|
||||
$(INSTALL) $(IFLAGS1) $(DIST)/branding/mozicon128.png $(FINAL_TARGET)/icons
|
||||
$(INSTALL) $(IFLAGS1) $(DIST)/branding/default16.png $(FINAL_TARGET)/chrome/icons/default
|
||||
$(INSTALL) $(IFLAGS1) $(DIST)/branding/default32.png $(FINAL_TARGET)/chrome/icons/default
|
||||
$(INSTALL) $(IFLAGS1) $(DIST)/branding/default48.png $(FINAL_TARGET)/chrome/icons/default
|
||||
endif
|
||||
|
||||
# channel-prefs.js is handled separate from other prefs due to bug 756325
|
||||
libs:: $(srcdir)/profile/channel-prefs.js
|
||||
$(NSINSTALL) -D $(DIST)/bin/defaults/pref
|
||||
|
@ -23,6 +23,14 @@ FINAL_TARGET_FILES += ['blocklist.xml']
|
||||
FINAL_TARGET_FILES.defaults.profile += ['profile/prefs.js']
|
||||
FINAL_TARGET_FILES.defaults += ['permissions']
|
||||
|
||||
if 'gtk' in CONFIG['MOZ_WIDGET_TOOLKIT']:
|
||||
FINAL_TARGET_FILES.icons += ['!/dist/branding/mozicon128.png']
|
||||
FINAL_TARGET_FILES.chrome.icons.default += [
|
||||
'!/dist/branding/default16.png',
|
||||
'!/dist/branding/default32.png',
|
||||
'!/dist/branding/default48.png',
|
||||
]
|
||||
|
||||
DEFINES['APP_VERSION'] = CONFIG['MOZ_APP_VERSION']
|
||||
|
||||
LOCAL_INCLUDES += [
|
||||
|
@ -27,6 +27,10 @@ var searchText;
|
||||
var gInitialized = false;
|
||||
var gObserver = new MutationObserver(function (mutations) {
|
||||
for (let mutation of mutations) {
|
||||
// The addition of the restore session button changes our width:
|
||||
if (mutation.attributeName == "session") {
|
||||
fitToWidth();
|
||||
}
|
||||
if (mutation.attributeName == "snippetsVersion") {
|
||||
if (!gInitialized) {
|
||||
ensureSnippetsMapThen(loadSnippets);
|
||||
@ -41,6 +45,7 @@ window.addEventListener("pageshow", function () {
|
||||
// Delay search engine setup, cause browser.js::BrowserOnAboutPageLoad runs
|
||||
// later and may use asynchronous getters.
|
||||
window.gObserver.observe(document.documentElement, { attributes: true });
|
||||
window.gObserver.observe(document.getElementById("launcher"), { attributes: true });
|
||||
fitToWidth();
|
||||
setupSearch();
|
||||
window.addEventListener("resize", fitToWidth);
|
||||
|
@ -565,6 +565,14 @@ var FullScreen = {
|
||||
|
||||
if (aAnimate && gPrefService.getBoolPref("browser.fullscreen.animate")) {
|
||||
gNavToolbox.setAttribute("fullscreenShouldAnimate", true);
|
||||
// Hide the fullscreen toggler until the transition ends.
|
||||
let listener = () => {
|
||||
gNavToolbox.removeEventListener("transitionend", listener, true);
|
||||
if (this._isChromeCollapsed)
|
||||
this._fullScrToggler.hidden = false;
|
||||
};
|
||||
gNavToolbox.addEventListener("transitionend", listener, true);
|
||||
this._fullScrToggler.hidden = true;
|
||||
}
|
||||
|
||||
gNavToolbox.style.marginTop =
|
||||
|
@ -667,12 +667,8 @@ window[chromehidden~="toolbar"] toolbar:not(#nav-bar):not(#TabsToolbar):not(#pri
|
||||
/* Full Screen UI */
|
||||
|
||||
#fullscr-toggler {
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 1px;
|
||||
position: fixed;
|
||||
z-index: 2147483647;
|
||||
background: black;
|
||||
}
|
||||
|
||||
html|*#fullscreen-warning {
|
||||
|
@ -3854,15 +3854,7 @@ function OpenBrowserWindow(options)
|
||||
}
|
||||
|
||||
if (options && options.remote) {
|
||||
// If we're using remote tabs by default, then OMTC will be force-enabled,
|
||||
// despite the preference returning as false.
|
||||
let omtcEnabled = gPrefService.getBoolPref("layers.offmainthreadcomposition.enabled")
|
||||
|| Services.appinfo.browserTabsRemoteAutostart;
|
||||
if (!omtcEnabled) {
|
||||
alert("To use out-of-process tabs, you must set the layers.offmainthreadcomposition.enabled preference and restart. Opening a normal window instead.");
|
||||
} else {
|
||||
extraFeatures += ",remote";
|
||||
}
|
||||
extraFeatures += ",remote";
|
||||
} else if (options && options.remote === false) {
|
||||
extraFeatures += ",non-remote";
|
||||
}
|
||||
|
@ -1048,6 +1048,8 @@
|
||||
</toolbarpalette>
|
||||
</toolbox>
|
||||
|
||||
<hbox id="fullscr-toggler" hidden="true"/>
|
||||
|
||||
<deck id="content-deck" flex="1">
|
||||
<hbox flex="1" id="browser">
|
||||
<vbox id="browser-border-start" hidden="true" layer="true"/>
|
||||
@ -1171,7 +1173,4 @@
|
||||
# starting with an empty iframe here in browser.xul from a Ts standpoint.
|
||||
</deck>
|
||||
|
||||
# Put it at the very end to make sure it is not covered by anything.
|
||||
<hbox id="fullscr-toggler" hidden="true"/>
|
||||
|
||||
</window>
|
||||
|
@ -1072,11 +1072,11 @@ var PageInfoListener = {
|
||||
|
||||
// Goes through all the elements on the doc. imageViewRows takes only the media elements.
|
||||
while (iterator.nextNode()) {
|
||||
let mediaNode = this.getMediaNode(document, strings, iterator.currentNode);
|
||||
let mediaItems = this.getMediaItems(document, strings, iterator.currentNode);
|
||||
|
||||
if (mediaNode) {
|
||||
if (mediaItems.length) {
|
||||
sendAsyncMessage("PageInfo:mediaData",
|
||||
{imageViewRow: mediaNode, isComplete: false});
|
||||
{mediaItems, isComplete: false});
|
||||
}
|
||||
|
||||
if (++nodeCount % 500 == 0) {
|
||||
@ -1089,15 +1089,17 @@ var PageInfoListener = {
|
||||
sendAsyncMessage("PageInfo:mediaData", {isComplete: true});
|
||||
},
|
||||
|
||||
getMediaNode: function(document, strings, elem)
|
||||
getMediaItems: function(document, strings, elem)
|
||||
{
|
||||
// Check for images defined in CSS (e.g. background, borders), any node may have multiple.
|
||||
// Check for images defined in CSS (e.g. background, borders)
|
||||
let computedStyle = elem.ownerDocument.defaultView.getComputedStyle(elem, "");
|
||||
let mediaElement = null;
|
||||
// A node can have multiple media items associated with it - for example,
|
||||
// multiple background images.
|
||||
let mediaItems = [];
|
||||
|
||||
let addImage = (url, type, alt, elem, isBg) => {
|
||||
let element = this.serializeElementInfo(document, url, type, alt, elem, isBg);
|
||||
mediaElement = [url, type, alt, element, isBg];
|
||||
mediaItems.push([url, type, alt, element, isBg]);
|
||||
};
|
||||
|
||||
if (computedStyle) {
|
||||
@ -1165,7 +1167,7 @@ var PageInfoListener = {
|
||||
addImage(elem.src, strings.mediaEmbed, "", elem, false);
|
||||
}
|
||||
|
||||
return mediaElement;
|
||||
return mediaItems;
|
||||
},
|
||||
|
||||
/**
|
||||
|
@ -405,7 +405,10 @@ function loadPageInfo(frameOuterWindowID, imageElement)
|
||||
return;
|
||||
}
|
||||
|
||||
addImage(message.data.imageViewRow);
|
||||
for (let item of message.data.mediaItems) {
|
||||
addImage(item);
|
||||
}
|
||||
|
||||
selectImage();
|
||||
});
|
||||
|
||||
|
@ -54,7 +54,6 @@ ACCEPTED_MAR_CHANNEL_IDS=firefox-mozilla-central
|
||||
MAR_CHANNEL_ID=firefox-mozilla-central
|
||||
MOZ_PROFILE_MIGRATOR=1
|
||||
MOZ_APP_STATIC_INI=1
|
||||
MOZ_MEDIA_NAVIGATOR=1
|
||||
MOZ_WEBGL_CONFORMANT=1
|
||||
# Enable navigator.mozPay
|
||||
MOZ_PAY=1
|
||||
|
@ -37,12 +37,12 @@ TESTS="
|
||||
# ensure we stop and report that there's an error.
|
||||
for test in $TESTS
|
||||
do
|
||||
./mach mochitest $test
|
||||
./mach mochitest --disable-e10s $test
|
||||
# UITour & get user media aren't compatible with e10s currenly.
|
||||
if [ "$1" != "--skip-e10s" ] && \
|
||||
[ "$test" != "browser/components/uitour/test/browser_UITour_loop.js" ] && \
|
||||
[ "$test" != "browser/base/content/test/general/browser_devices_get_user_media_about_urls.js" ];
|
||||
then
|
||||
./mach mochitest --e10s $test
|
||||
./mach mochitest $test
|
||||
fi
|
||||
done
|
||||
|
@ -122,10 +122,8 @@ DEFINES += -DMOZ_ICU_VERSION=$(MOZ_ICU_VERSION)
|
||||
ifdef MOZ_SYSTEM_ICU
|
||||
DEFINES += -DMOZ_SYSTEM_ICU
|
||||
endif
|
||||
ifdef MOZ_SHARED_ICU
|
||||
DEFINES += -DMOZ_SHARED_ICU
|
||||
endif
|
||||
DEFINES += -DMOZ_ICU_DBG_SUFFIX=$(MOZ_ICU_DBG_SUFFIX)
|
||||
DEFINES += -DICU_DATA_FILE=$(ICU_DATA_FILE)
|
||||
ifdef CLANG_CXX
|
||||
DEFINES += -DCLANG_CXX
|
||||
endif
|
||||
|
@ -99,21 +99,7 @@
|
||||
#endif
|
||||
#endif
|
||||
#ifndef MOZ_SYSTEM_ICU
|
||||
#ifdef MOZ_SHARED_ICU
|
||||
#ifdef XP_WIN
|
||||
@BINPATH@/icudt@MOZ_ICU_DBG_SUFFIX@@MOZ_ICU_VERSION@.dll
|
||||
@BINPATH@/icuin@MOZ_ICU_DBG_SUFFIX@@MOZ_ICU_VERSION@.dll
|
||||
@BINPATH@/icuuc@MOZ_ICU_DBG_SUFFIX@@MOZ_ICU_VERSION@.dll
|
||||
#elif defined(XP_MACOSX)
|
||||
@BINPATH@/libicudata.@MOZ_ICU_VERSION@.dylib
|
||||
@BINPATH@/libicui18n.@MOZ_ICU_VERSION@.dylib
|
||||
@BINPATH@/libicuuc.@MOZ_ICU_VERSION@.dylib
|
||||
#elif defined(XP_UNIX)
|
||||
@BINPATH@/libicudata.so.@MOZ_ICU_VERSION@
|
||||
@BINPATH@/libicui18n.so.@MOZ_ICU_VERSION@
|
||||
@BINPATH@/libicuuc.so.@MOZ_ICU_VERSION@
|
||||
#endif
|
||||
#endif
|
||||
@RESPATH@/@ICU_DATA_FILE@
|
||||
#endif
|
||||
#ifdef MOZ_GTK3
|
||||
@BINPATH@/@DLL_PREFIX@mozgtk@DLL_SUFFIX@
|
||||
|
@ -3,9 +3,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/.
|
||||
|
||||
USE_RCS_MK := 1
|
||||
include $(topsrcdir)/config/makefiles/makeutils.mk
|
||||
|
||||
ifdef MOZ_APP_BASENAME
|
||||
APP_INI_DEPS = $(topsrcdir)/config/milestone.txt
|
||||
|
||||
|
@ -5,21 +5,6 @@ dnl file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
AC_DEFUN([MOZ_ANDROID_NDK],
|
||||
[
|
||||
|
||||
MOZ_ARG_WITH_STRING(android-ndk,
|
||||
[ --with-android-ndk=DIR
|
||||
location where the Android NDK can be found],
|
||||
android_ndk=$withval)
|
||||
|
||||
MOZ_ARG_WITH_STRING(android-toolchain,
|
||||
[ --with-android-toolchain=DIR
|
||||
location of the Android toolchain],
|
||||
android_toolchain=$withval)
|
||||
|
||||
MOZ_ARG_WITH_STRING(android-gnu-compiler-version,
|
||||
[ --with-android-gnu-compiler-version=VER
|
||||
gnu compiler version to use],
|
||||
android_gnu_compiler_version=$withval)
|
||||
|
||||
MOZ_ARG_WITH_STRING(android-cxx-stl,
|
||||
[ --with-android-cxx-stl=VALUE
|
||||
use the specified C++ STL (stlport, libstdc++, libc++)],
|
||||
@ -38,77 +23,8 @@ if test $android_version -lt MIN_ANDROID_VERSION ; then
|
||||
AC_MSG_ERROR([--with-android-version must be at least MIN_ANDROID_VERSION.])
|
||||
fi
|
||||
|
||||
case "$target" in
|
||||
arm-*linux*-android*|*-linuxandroid*)
|
||||
android_tool_prefix="arm-linux-androideabi"
|
||||
;;
|
||||
i?86-*android*)
|
||||
android_tool_prefix="i686-linux-android"
|
||||
;;
|
||||
mipsel-*android*)
|
||||
android_tool_prefix="mipsel-linux-android"
|
||||
;;
|
||||
*)
|
||||
android_tool_prefix="$target_os"
|
||||
;;
|
||||
esac
|
||||
|
||||
case "$target" in
|
||||
*-android*|*-linuxandroid*)
|
||||
if test -z "$android_ndk" ; then
|
||||
AC_MSG_ERROR([You must specify --with-android-ndk=/path/to/ndk when targeting Android.])
|
||||
fi
|
||||
|
||||
if test -z "$android_toolchain" ; then
|
||||
AC_MSG_CHECKING([for android toolchain directory])
|
||||
|
||||
kernel_name=`uname -s | tr "[[:upper:]]" "[[:lower:]]"`
|
||||
|
||||
for version in $android_gnu_compiler_version 4.9 4.8 4.7; do
|
||||
case "$target_cpu" in
|
||||
arm)
|
||||
target_name=arm-linux-androideabi-$version
|
||||
;;
|
||||
i?86)
|
||||
target_name=x86-$version
|
||||
;;
|
||||
mipsel)
|
||||
target_name=mipsel-linux-android-$version
|
||||
;;
|
||||
*)
|
||||
AC_MSG_ERROR([target cpu is not supported])
|
||||
;;
|
||||
esac
|
||||
case "$host_cpu" in
|
||||
i*86)
|
||||
android_toolchain="$android_ndk"/toolchains/$target_name/prebuilt/$kernel_name-x86
|
||||
;;
|
||||
x86_64)
|
||||
android_toolchain="$android_ndk"/toolchains/$target_name/prebuilt/$kernel_name-x86_64
|
||||
if ! test -d "$android_toolchain" ; then
|
||||
android_toolchain="$android_ndk"/toolchains/$target_name/prebuilt/$kernel_name-x86
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
AC_MSG_ERROR([No known toolchain for your host cpu])
|
||||
;;
|
||||
esac
|
||||
if test -d "$android_toolchain" ; then
|
||||
android_gnu_compiler_version=$version
|
||||
break
|
||||
elif test -n "$android_gnu_compiler_version" ; then
|
||||
AC_MSG_ERROR([not found. Your --with-android-gnu-compiler-version may be wrong.])
|
||||
fi
|
||||
done
|
||||
|
||||
if test -z "$android_gnu_compiler_version" ; then
|
||||
AC_MSG_ERROR([not found. You have to specify --with-android-toolchain=/path/to/ndk/toolchain.])
|
||||
else
|
||||
AC_MSG_RESULT([$android_toolchain])
|
||||
fi
|
||||
NSPR_CONFIGURE_ARGS="$NSPR_CONFIGURE_ARGS --with-android-toolchain=$android_toolchain"
|
||||
fi
|
||||
|
||||
NSPR_CONFIGURE_ARGS="$NSPR_CONFIGURE_ARGS --with-android-version=$android_version"
|
||||
|
||||
AC_MSG_CHECKING([for android platform directory])
|
||||
@ -133,8 +49,6 @@ case "$target" in
|
||||
AC_MSG_ERROR([not found. Please check your NDK. With the current configuration, it should be in $android_platform])
|
||||
fi
|
||||
|
||||
TOOLCHAIN_PREFIX="$android_toolchain/bin/$android_tool_prefix-"
|
||||
|
||||
CPPFLAGS="-idirafter $android_platform/usr/include $CPPFLAGS"
|
||||
CFLAGS="-mandroid -fno-short-enums -fno-exceptions $CFLAGS"
|
||||
CXXFLAGS="-mandroid -fno-short-enums -fno-exceptions $CXXFLAGS"
|
||||
@ -145,13 +59,9 @@ case "$target" in
|
||||
dnl undefined symbol (present on the hardware, just not in the
|
||||
dnl NDK.)
|
||||
LDFLAGS="-mandroid -L$android_platform/usr/lib -Wl,-rpath-link=$android_platform/usr/lib --sysroot=$android_platform -llog -Wl,--allow-shlib-undefined $LDFLAGS"
|
||||
ANDROID_NDK="${android_ndk}"
|
||||
ANDROID_TOOLCHAIN="${android_toolchain}"
|
||||
ANDROID_PLATFORM="${android_platform}"
|
||||
|
||||
AC_DEFINE(ANDROID)
|
||||
AC_SUBST(ANDROID_NDK)
|
||||
AC_SUBST(ANDROID_TOOLCHAIN)
|
||||
AC_SUBST(ANDROID_PLATFORM)
|
||||
|
||||
;;
|
||||
|
@ -21,4 +21,5 @@ AC_DEFUN([AM_LANGINFO_CODESET],
|
||||
[Define if you have <langinfo.h> and nl_langinfo(CODESET).])
|
||||
HAVE_LANGINFO_CODESET=1
|
||||
fi
|
||||
AC_SUBST(HAVE_LANGINFO_CODESET)
|
||||
])
|
||||
|
@ -3,9 +3,7 @@ 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/.
|
||||
|
||||
dnl Set the MOZ_ICU_VERSION variable to denote the current version of the
|
||||
dnl ICU library, and also the MOZ_SHARED_ICU which would be true if we are
|
||||
dnl linking against a shared library of ICU, either one that we build from
|
||||
dnl our copy of ICU or the system provided library.
|
||||
dnl ICU library, as well as a few other things.
|
||||
|
||||
AC_DEFUN([MOZ_CONFIG_ICU], [
|
||||
|
||||
@ -18,7 +16,6 @@ MOZ_ARG_WITH_BOOL(system-icu,
|
||||
|
||||
if test -n "$MOZ_SYSTEM_ICU"; then
|
||||
PKG_CHECK_MODULES(MOZ_ICU, icu-i18n >= 50.1)
|
||||
MOZ_SHARED_ICU=1
|
||||
else
|
||||
MOZ_ICU_INCLUDES="/intl/icu/source/common /intl/icu/source/i18n"
|
||||
fi
|
||||
@ -79,228 +76,34 @@ if test -n "$USE_ICU"; then
|
||||
fi
|
||||
MOZ_ICU_VERSION="$version"
|
||||
|
||||
if test "$OS_TARGET" = WINNT; then
|
||||
MOZ_SHARED_ICU=1
|
||||
fi
|
||||
# TODO: the l is actually endian-dependent
|
||||
# We could make this set as 'l' or 'b' for little or big, respectively,
|
||||
# but we'd need to check in a big-endian version of the file.
|
||||
ICU_DATA_FILE="icudt${version}l.dat"
|
||||
|
||||
if test -z "${JS_STANDALONE}" -a -n "${JS_SHARED_LIBRARY}${MOZ_SYSTEM_ICU}"; then
|
||||
MOZ_SHARED_ICU=1
|
||||
fi
|
||||
|
||||
AC_SUBST(MOZ_ICU_VERSION)
|
||||
AC_SUBST(MOZ_SHARED_ICU)
|
||||
|
||||
if test -z "$MOZ_SYSTEM_ICU"; then
|
||||
case "$OS_TARGET" in
|
||||
WINNT)
|
||||
ICU_LIB_NAMES="icuin icuuc icudt"
|
||||
MOZ_ICU_DBG_SUFFIX=
|
||||
if test -n "$MOZ_DEBUG" -a -z "$MOZ_NO_DEBUG_RTL"; then
|
||||
MOZ_ICU_DBG_SUFFIX=d
|
||||
fi
|
||||
;;
|
||||
Darwin|Linux|DragonFly|FreeBSD|NetBSD|OpenBSD|GNU/kFreeBSD|SunOS|Android)
|
||||
ICU_LIB_NAMES="icui18n icuuc icudata"
|
||||
;;
|
||||
*)
|
||||
AC_MSG_ERROR([ECMAScript Internationalization API is not yet supported on this platform])
|
||||
esac
|
||||
dnl We won't build ICU data as a separate file when building
|
||||
dnl JS standalone so that embedders don't have to deal with it.
|
||||
if test -z "$JS_STANDALONE" -a -z "$MOZ_SYSTEM_ICU"; then
|
||||
MOZ_ICU_DATA_ARCHIVE=1
|
||||
else
|
||||
MOZ_ICU_DATA_ARCHIVE=
|
||||
fi
|
||||
fi
|
||||
|
||||
AC_SUBST(MOZ_ICU_DBG_SUFFIX)
|
||||
AC_SUBST(MOZ_ICU_VERSION)
|
||||
AC_SUBST(ENABLE_INTL_API)
|
||||
AC_SUBST(USE_ICU)
|
||||
AC_SUBST_LIST(ICU_LIB_NAMES)
|
||||
AC_SUBST(ICU_DATA_FILE)
|
||||
AC_SUBST(MOZ_ICU_DATA_ARCHIVE)
|
||||
|
||||
if test -n "$USE_ICU" -a -z "$MOZ_SYSTEM_ICU"; then
|
||||
dnl We build ICU as a static library for non-shared js builds and as a shared library for shared js builds.
|
||||
if test -z "$MOZ_SHARED_ICU"; then
|
||||
AC_DEFINE(U_STATIC_IMPLEMENTATION)
|
||||
if test -z "$YASM" -a -z "$GNU_AS" -a "$COMPILE_ENVIRONMENT"; then
|
||||
AC_MSG_ERROR([Building ICU requires either yasm or a GNU assembler. If you do not have either of those available for this platform you must use --without-intl-api])
|
||||
fi
|
||||
dnl We build ICU as a static library.
|
||||
AC_DEFINE(U_STATIC_IMPLEMENTATION)
|
||||
dnl Source files that use ICU should have control over which parts of the ICU
|
||||
dnl namespace they want to use.
|
||||
AC_DEFINE(U_USING_ICU_NAMESPACE,0)
|
||||
fi
|
||||
|
||||
|
||||
])
|
||||
|
||||
AC_DEFUN([MOZ_SUBCONFIGURE_ICU], [
|
||||
|
||||
if test "$MOZ_BUILD_APP" != js -o -n "$JS_STANDALONE"; then
|
||||
|
||||
if test -n "$USE_ICU" -a -z "$MOZ_SYSTEM_ICU"; then
|
||||
# Set ICU compile options
|
||||
ICU_CPPFLAGS=""
|
||||
# don't use icu namespace automatically in client code
|
||||
ICU_CPPFLAGS="$ICU_CPPFLAGS -DU_USING_ICU_NAMESPACE=0"
|
||||
# don't include obsolete header files
|
||||
ICU_CPPFLAGS="$ICU_CPPFLAGS -DU_NO_DEFAULT_INCLUDE_UTF_HEADERS=1"
|
||||
# remove chunks of the library that we don't need (yet)
|
||||
ICU_CPPFLAGS="$ICU_CPPFLAGS -DUCONFIG_NO_LEGACY_CONVERSION"
|
||||
ICU_CPPFLAGS="$ICU_CPPFLAGS -DUCONFIG_NO_TRANSLITERATION"
|
||||
ICU_CPPFLAGS="$ICU_CPPFLAGS -DUCONFIG_NO_REGULAR_EXPRESSIONS"
|
||||
ICU_CPPFLAGS="$ICU_CPPFLAGS -DUCONFIG_NO_BREAK_ITERATION"
|
||||
# we don't need to pass data to and from legacy char* APIs
|
||||
ICU_CPPFLAGS="$ICU_CPPFLAGS -DU_CHARSET_IS_UTF8"
|
||||
# make sure to not accidentally pick up system-icu headers
|
||||
ICU_CPPFLAGS="$ICU_CPPFLAGS -I$icudir/common -I$icudir/i18n"
|
||||
|
||||
ICU_CROSS_BUILD_OPT=""
|
||||
|
||||
if test "$CROSS_COMPILE"; then
|
||||
# Remove _DEPEND_CFLAGS from HOST_FLAGS to avoid configure error
|
||||
HOST_ICU_CFLAGS="$HOST_CFLAGS"
|
||||
HOST_ICU_CXXFLAGS="$HOST_CXXFLAGS"
|
||||
|
||||
HOST_ICU_CFLAGS=`echo $HOST_ICU_CFLAGS | sed "s|$_DEPEND_CFLAGS||g"`
|
||||
HOST_ICU_CXXFLAGS=`echo $HOST_ICU_CFXXLAGS | sed "s|$_DEPEND_CFLAGS||g"`
|
||||
|
||||
# ICU requires RTTI
|
||||
if test "$GNU_CC"; then
|
||||
HOST_ICU_CXXFLAGS=`echo $HOST_ICU_CXXFLAGS | sed 's|-fno-rtti|-frtti|g'`
|
||||
elif test "$_MSC_VER"; then
|
||||
HOST_ICU_CXXFLAGS=`echo $HOST_ICU_CXXFLAGS | sed 's|-GR-|-GR|g'`
|
||||
fi
|
||||
|
||||
HOST_ICU_BUILD_OPTS=""
|
||||
if test -n "$MOZ_DEBUG"; then
|
||||
HOST_ICU_BUILD_OPTS="$HOST_ICU_BUILD_OPTS --enable-debug"
|
||||
fi
|
||||
|
||||
abs_srcdir=`(cd $srcdir; pwd)`
|
||||
mkdir -p $_objdir/intl/icu/host
|
||||
(export AR="$HOST_AR"
|
||||
export RANLIB="$HOST_RANLIB"
|
||||
export CC="$HOST_CC"
|
||||
export CXX="$HOST_CXX"
|
||||
export CPP="$HOST_CPP"
|
||||
export LD="$HOST_LD"
|
||||
export CFLAGS="$HOST_ICU_CFLAGS $HOST_OPTIMIZE_FLAGS"
|
||||
export CPPFLAGS="$ICU_CPPFLAGS"
|
||||
export CXXFLAGS="$HOST_ICU_CXXFLAGS $HOST_OPTIMIZE_FLAGS"
|
||||
export LDFLAGS="$HOST_LDFLAGS"
|
||||
ac_configure_args="$HOST_ICU_BUILD_OPTS"
|
||||
ac_configure_args="$ac_configure_args --enable-static --disable-shared --enable-extras=no --enable-icuio=no --enable-layout=no --enable-tests=no --enable-samples=no"
|
||||
AC_OUTPUT_SUBDIRS_NOW(intl/icu/source:intl/icu/host)
|
||||
) || exit 1
|
||||
# generate config/icucross.mk
|
||||
$GMAKE -C $_objdir/intl/icu/host/ config/icucross.mk
|
||||
|
||||
# --with-cross-build requires absolute path
|
||||
ICU_HOST_PATH=`cd $_objdir/intl/icu/host && pwd`
|
||||
ICU_CROSS_BUILD_OPT="--with-cross-build=$ICU_HOST_PATH --disable-tools"
|
||||
ICU_TARGET_OPT="--build=$build --host=$target"
|
||||
else
|
||||
# CROSS_COMPILE isn't set build and target are i386 and x86-64.
|
||||
# So we must set target for --build and --host.
|
||||
ICU_TARGET_OPT="--build=$target --host=$target"
|
||||
fi
|
||||
|
||||
if test -z "$MOZ_SHARED_ICU"; then
|
||||
# To reduce library size, use static linking
|
||||
ICU_LINK_OPTS="--enable-static --disable-shared"
|
||||
else
|
||||
ICU_LINK_OPTS="--disable-static --enable-shared"
|
||||
fi
|
||||
# Force the ICU static libraries to be position independent code
|
||||
ICU_CFLAGS="$DSO_PIC_CFLAGS $CFLAGS"
|
||||
ICU_CXXFLAGS="$DSO_PIC_CFLAGS $CXXFLAGS"
|
||||
|
||||
ICU_BUILD_OPTS=""
|
||||
if test -n "$MOZ_DEBUG" -o "MOZ_DEBUG_SYMBOLS"; then
|
||||
ICU_CFLAGS="$ICU_CFLAGS $MOZ_DEBUG_FLAGS"
|
||||
ICU_CXXFLAGS="$ICU_CXXFLAGS $MOZ_DEBUG_FLAGS"
|
||||
if test -n "$CROSS_COMPILE" -a "$OS_TARGET" = "Darwin" \
|
||||
-a "$HOST_OS_ARCH" != "Darwin"
|
||||
then
|
||||
# Bug 951758: Cross-OSX builds with non-Darwin hosts have issues
|
||||
# with -g and friends (like -gdwarf and -gfull) because they try
|
||||
# to run dsymutil
|
||||
changequote(,)
|
||||
ICU_CFLAGS=`echo $ICU_CFLAGS | sed 's|-g[^ \t]*||g'`
|
||||
ICU_CXXFLAGS=`echo $ICU_CXXFLAGS | sed 's|-g[^ \t]*||g'`
|
||||
changequote([,])
|
||||
fi
|
||||
|
||||
ICU_LDFLAGS="$MOZ_DEBUG_LDFLAGS"
|
||||
if test -z "$MOZ_DEBUG"; then
|
||||
# To generate debug symbols, it requires MOZ_DEBUG_FLAGS.
|
||||
# But, not debug build.
|
||||
ICU_CFLAGS="$ICU_CFLAGS -UDEBUG -DNDEBUG"
|
||||
ICU_CXXFLAGS="$ICU_CXXFLAGS -UDEBUG -DNDEBUG"
|
||||
elif test -z "$MOZ_NO_DEBUG_RTL"; then
|
||||
ICU_BUILD_OPTS="$ICU_BUILD_OPTS --enable-debug"
|
||||
fi
|
||||
fi
|
||||
if test -z "$MOZ_OPTIMIZE"; then
|
||||
ICU_BUILD_OPTS="$ICU_BUILD_OPTS --disable-release"
|
||||
else
|
||||
ICU_CFLAGS="$ICU_CFLAGS $MOZ_OPTIMIZE_FLAGS"
|
||||
ICU_CXXFLAGS="$ICU_CXXFLAGS $MOZ_OPTIMIZE_FLAGS"
|
||||
fi
|
||||
|
||||
if test "$am_cv_langinfo_codeset" = "no"; then
|
||||
# ex. Android
|
||||
ICU_CPPFLAGS="$ICU_CPPFLAGS -DU_HAVE_NL_LANGINFO_CODESET=0"
|
||||
fi
|
||||
|
||||
# ICU requires RTTI
|
||||
if test "$GNU_CC"; then
|
||||
ICU_CXXFLAGS=`echo $ICU_CXXFLAGS | sed 's|-fno-rtti|-frtti|g'`
|
||||
else
|
||||
if test "$_MSC_VER"; then
|
||||
ICU_CXXFLAGS=`echo $ICU_CXXFLAGS | sed 's|-GR-|-GR|g'`
|
||||
fi
|
||||
|
||||
# Add RTL flags for MSVCRT.DLL
|
||||
if test -n "$MOZ_DEBUG" -a -z "$MOZ_NO_DEBUG_RTL"; then
|
||||
ICU_CFLAGS="$ICU_CFLAGS -MDd"
|
||||
ICU_CXXFLAGS="$ICU_CXXFLAGS -MDd"
|
||||
else
|
||||
ICU_CFLAGS="$ICU_CFLAGS -MD"
|
||||
ICU_CXXFLAGS="$ICU_CXXFLAGS -MD"
|
||||
fi
|
||||
|
||||
# add disable optimize flag for workaround for bug 899948
|
||||
if test -z "$MOZ_OPTIMIZE"; then
|
||||
ICU_CFLAGS="$ICU_CFLAGS -Od"
|
||||
ICU_CXXFLAGS="$ICU_CXXFLAGS -Od"
|
||||
fi
|
||||
fi
|
||||
|
||||
if test -n "$gonkdir"; then
|
||||
ICU_CXXFLAGS="-I$gonkdir/abi/cpp/include $ICU_CXXFLAGS"
|
||||
elif test "$OS_TARGET" = Android -a "$MOZ_ANDROID_CXX_STL" = mozstlport; then
|
||||
ICU_CXXFLAGS="-I$_topsrcdir/build/gabi++/include $ICU_CXXFLAGS"
|
||||
fi
|
||||
|
||||
if test -z "$MOZ_SHARED_ICU"; then
|
||||
ICU_CXXFLAGS="$ICU_CXXFLAGS -DU_STATIC_IMPLEMENTATION"
|
||||
ICU_CFLAGS="$ICU_CFLAGS -DU_STATIC_IMPLEMENTATION"
|
||||
if test "$GNU_CC"; then
|
||||
ICU_CFLAGS="$ICU_CFLAGS -fvisibility=hidden"
|
||||
ICU_CXXFLAGS="$ICU_CXXFLAGS -fvisibility=hidden"
|
||||
fi
|
||||
fi
|
||||
|
||||
(export AR="$AR"
|
||||
export RANLIB="$RANLIB"
|
||||
export CC="$CC"
|
||||
export CXX="$CXX"
|
||||
export LD="$LD"
|
||||
export ARFLAGS="$ARFLAGS"
|
||||
export CPPFLAGS="$ICU_CPPFLAGS $CPPFLAGS"
|
||||
export CFLAGS="$ICU_CFLAGS"
|
||||
export CXXFLAGS="$ICU_CXXFLAGS"
|
||||
export LDFLAGS="$ICU_LDFLAGS $LDFLAGS"
|
||||
ac_configure_args="$ICU_BUILD_OPTS $ICU_CROSS_BUILD_OPT $ICU_LINK_OPTS $ICU_TARGET_OPT"
|
||||
ac_configure_args="$ac_configure_args --disable-extras --disable-icuio --disable-layout --disable-tests --disable-samples --disable-strict"
|
||||
AC_OUTPUT_SUBDIRS(intl/icu/source:intl/icu/target)
|
||||
) || exit 1
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
])
|
||||
|
@ -89,7 +89,7 @@ elif os == 'Android':
|
||||
gyp_vars.update(
|
||||
gtest_target_type='executable',
|
||||
moz_webrtc_mediacodec=1,
|
||||
android_toolchain=CONFIG['ANDROID_TOOLCHAIN'],
|
||||
android_toolchain=CONFIG.get('ANDROID_TOOLCHAIN', ''),
|
||||
)
|
||||
|
||||
flavors = {
|
||||
|
77
build/moz.configure/android-ndk.configure
Normal file
77
build/moz.configure/android-ndk.configure
Normal file
@ -0,0 +1,77 @@
|
||||
# -*- 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/.
|
||||
|
||||
|
||||
js_option('--with-android-ndk', nargs=1,
|
||||
help='location where the Android NDK can be found')
|
||||
|
||||
js_option('--with-android-toolchain', nargs=1,
|
||||
help='location of the Android toolchain')
|
||||
|
||||
js_option('--with-android-gnu-compiler-version', nargs=1,
|
||||
help='GNU compiler version to use')
|
||||
|
||||
@depends('--with-android-ndk', build_project)
|
||||
def ndk(value, build_project):
|
||||
if build_project == 'mobile/android' and not value:
|
||||
die('You must specify --with-android-ndk=/path/to/ndk when '
|
||||
'building mobile/android')
|
||||
if value:
|
||||
return value[0]
|
||||
|
||||
set_config('ANDROID_NDK', ndk)
|
||||
add_old_configure_assignment('android_ndk', ndk)
|
||||
|
||||
@depends(target, host, ndk, '--with-android-toolchain',
|
||||
'--with-android-gnu-compiler-version')
|
||||
@checking('for the Android toolchain directory', lambda x: x or 'not found')
|
||||
@imports(_from='mozbuild.shellutil', _import='quote')
|
||||
def android_toolchain(target, host, ndk, toolchain, gnu_compiler_version):
|
||||
if not ndk:
|
||||
return
|
||||
if toolchain:
|
||||
return toolchain[0]
|
||||
else:
|
||||
if target.cpu == 'arm' and target.endianness == 'little':
|
||||
target_base = 'arm-linux-androideabi'
|
||||
elif target.cpu == 'x86':
|
||||
target_base = 'x86'
|
||||
elif target.cpu == 'mips' and target.endianness == 'little':
|
||||
target_base = 'mipsel-linux-android'
|
||||
else:
|
||||
die('Target cpu is not supported.')
|
||||
|
||||
toolchain_format = '%s/toolchains/%s-%s/prebuilt/%s-%s'
|
||||
|
||||
for version in gnu_compiler_version or ['4.9', '4.8', '4.7']:
|
||||
toolchain = toolchain_format % (ndk, target_base, version,
|
||||
host.kernel.lower(), host.cpu)
|
||||
log.debug('Trying %s' % quote(toolchain))
|
||||
if not os.path.isdir(toolchain) and host.cpu == 'x86_64':
|
||||
toolchain = toolchain_format % (ndk, target_base, version,
|
||||
host.kernel.lower(), 'x86')
|
||||
log.debug('Trying %s' % quote(toolchain))
|
||||
if os.path.isdir(toolchain):
|
||||
return toolchain
|
||||
else:
|
||||
if gnu_compiler_version:
|
||||
die('Your --with-android-gnu-compiler-version may be wrong')
|
||||
die('You have to specify --with-android-toolchain='
|
||||
'/path/to/ndk/toolchain.')
|
||||
|
||||
set_config('ANDROID_TOOLCHAIN', android_toolchain)
|
||||
|
||||
@depends(target, android_toolchain)
|
||||
def android_toolchain_prefix(target, toolchain):
|
||||
if toolchain:
|
||||
if target.cpu == 'x86':
|
||||
# Ideally, the --target should just have the right x86 variant
|
||||
# in the first place.
|
||||
return '%s/bin/i686-linux-android-' % toolchain
|
||||
return '%s/bin/%s-' % (toolchain, target.toolchain)
|
||||
|
||||
imply_option('--with-toolchain-prefix', android_toolchain_prefix,
|
||||
reason='--with-android-ndk')
|
@ -54,14 +54,13 @@ def checking(what, callback=None):
|
||||
ret = func(*args, **kwargs)
|
||||
except FatalCheckError as e:
|
||||
error = e.message
|
||||
if callback:
|
||||
log.info(callback(ret))
|
||||
elif ret is True:
|
||||
display_ret = callback(ret) if callback else ret
|
||||
if display_ret is True:
|
||||
log.info('yes')
|
||||
elif ret is False:
|
||||
elif display_ret is False or display_ret is None:
|
||||
log.info('no')
|
||||
else:
|
||||
log.info(ret)
|
||||
log.info(display_ret)
|
||||
if error:
|
||||
die(error)
|
||||
return ret
|
||||
|
@ -735,22 +735,4 @@ def js_option(*args, **kwargs):
|
||||
add_old_configure_arg(js_option)
|
||||
|
||||
|
||||
# This is overridden in b2g/moz.configure with an option. No other project
|
||||
# needs the option directly, but it's used to influence some other things in
|
||||
# toolkit/moz.configure (and possibly top-level moz.configure later on), so
|
||||
# define a dummy default here.
|
||||
@depends('--help')
|
||||
def gonkdir(help):
|
||||
return ''
|
||||
|
||||
|
||||
include(include_project_configure)
|
||||
|
||||
# By now, gonkdir is either the dummy function above or a real function
|
||||
# depending on --with-gonk from b2g/moz.configure.
|
||||
@depends(gonkdir)
|
||||
def gonkdir_for_old_configure(value):
|
||||
if value:
|
||||
return value
|
||||
|
||||
add_old_configure_assignment('gonkdir', gonkdir_for_old_configure)
|
||||
|
@ -301,12 +301,9 @@ def old_configure_options(*options):
|
||||
'--with-adjust-sdk-keyfile',
|
||||
'--with-android-cxx-stl',
|
||||
'--with-android-distribution-directory',
|
||||
'--with-android-gnu-compiler-version',
|
||||
'--with-android-max-sdk',
|
||||
'--with-android-min-sdk',
|
||||
'--with-android-ndk',
|
||||
'--with-android-sdk',
|
||||
'--with-android-toolchain',
|
||||
'--with-android-version',
|
||||
'--with-app-basename',
|
||||
'--with-app-name',
|
||||
|
@ -59,6 +59,17 @@ set_config('HAVE_YASM', have_yasm)
|
||||
add_old_configure_assignment('YASM', have_yasm)
|
||||
|
||||
|
||||
# Android NDK
|
||||
# ==============================================================
|
||||
|
||||
@depends('--disable-compile-environment', build_project, '--help')
|
||||
def android_ndk_include(compile_env, build_project, _):
|
||||
if compile_env and build_project in ('mobile/android', 'js'):
|
||||
return 'android-ndk.configure'
|
||||
|
||||
include(android_ndk_include)
|
||||
|
||||
|
||||
# Compiler wrappers
|
||||
# ==============================================================
|
||||
js_option('--with-compiler-wrapper', env='COMPILER_WRAPPER', nargs=1,
|
||||
@ -117,6 +128,6 @@ def toolchain_prefix(value, target, host, cross_compiling):
|
||||
if cross_compiling and not all(i.cpu in ('x86_64', 'x86')
|
||||
for i in (target, host)):
|
||||
return '%s-' % target.toolchain
|
||||
return ''
|
||||
|
||||
set_config('TOOLCHAIN_PREFIX', toolchain_prefix)
|
||||
add_old_configure_assignment('TOOLCHAIN_PREFIX', toolchain_prefix)
|
||||
|
@ -66,6 +66,7 @@ included_inclnames_to_ignore = set([
|
||||
'jsautokw.h', # generated in $OBJDIR
|
||||
'jscustomallocator.h', # provided by embedders; allowed to be missing
|
||||
'js-config.h', # generated in $OBJDIR
|
||||
'fdlibm.h', # fdlibm
|
||||
'pratom.h', # NSPR
|
||||
'prcvar.h', # NSPR
|
||||
'prerror.h', # NSPR
|
||||
|
14
config/external/fdlibm/moz.build
vendored
Normal file
14
config/external/fdlibm/moz.build
vendored
Normal file
@ -0,0 +1,14 @@
|
||||
# -*- 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/.
|
||||
|
||||
Library('fdlibm')
|
||||
|
||||
with Files('**'):
|
||||
BUG_COMPONENT = ('Core', 'JavaScript Engine')
|
||||
|
||||
DIRS += [
|
||||
'../../../modules/fdlibm',
|
||||
]
|
62
config/external/icu/Makefile.in
vendored
62
config/external/icu/Makefile.in
vendored
@ -1,62 +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/.
|
||||
|
||||
# Ensure that this happens before including rules.mk
|
||||
ifdef USE_ICU
|
||||
ifndef MOZ_SYSTEM_ICU
|
||||
# Library names: On Windows, ICU uses modified library names for static
|
||||
# and debug libraries.
|
||||
ifdef MOZ_SHARED_ICU
|
||||
ifeq ($(OS_ARCH),WINNT)
|
||||
ICU_FILES := $(foreach libname,$(ICU_LIB_NAMES),$(DEPTH)/intl/icu/target/lib/$(libname)$(MOZ_ICU_DBG_SUFFIX)$(MOZ_ICU_VERSION).dll)
|
||||
else # ! WINNT
|
||||
ifeq ($(OS_ARCH),Darwin)
|
||||
ICU_FILES := $(foreach libname,$(ICU_LIB_NAMES),$(DEPTH)/intl/icu/target/lib/$(DLL_PREFIX)$(libname).$(MOZ_ICU_VERSION)$(DLL_SUFFIX))
|
||||
else # ! Darwin
|
||||
ICU_FILES := $(foreach libname,$(ICU_LIB_NAMES),$(DEPTH)/intl/icu/target/lib/$(DLL_PREFIX)$(libname)$(DLL_SUFFIX).$(MOZ_ICU_VERSION))
|
||||
endif
|
||||
endif # WINNT
|
||||
ifdef ICU_FILES
|
||||
ICU_DEST := $(DIST)/bin
|
||||
INSTALL_TARGETS += ICU
|
||||
$(ICU_FILES): buildicu
|
||||
ICU_TARGET := target
|
||||
endif
|
||||
else # !MOZ_SHARED_ICU
|
||||
ifeq ($(OS_ARCH),WINNT)
|
||||
ICU_LIB_RENAME = $(foreach libname,$(ICU_LIB_NAMES),\
|
||||
cp -p $(DEPTH)/intl/icu/target/lib/s$(libname)$(MOZ_ICU_DBG_SUFFIX).lib $(DEPTH)/intl/icu/target/lib/$(libname)$(MOZ_ICU_DBG_SUFFIX).lib;)
|
||||
endif
|
||||
endif # MOZ_SHARED_ICU
|
||||
endif # !MOZ_SYSTEM_ICU
|
||||
endif # USE_ICU
|
||||
|
||||
include $(topsrcdir)/config/rules.mk
|
||||
|
||||
ifdef USE_ICU
|
||||
ifndef MOZ_SYSTEM_ICU
|
||||
target:: buildicu
|
||||
$(STATIC_LIBS): buildicu
|
||||
|
||||
# - Force ICU to use the standard suffix for object files because expandlibs
|
||||
# will discard all files with a non-standard suffix (bug 857450).
|
||||
# - Options for genrb: -k strict parsing; -R omit collation tailoring rules.
|
||||
buildicu::
|
||||
# ICU's build system is full of races, so force non-parallel build.
|
||||
# Msys screws up GENRBOPTS when it contains spaces, so all genrb flags need
|
||||
# to be stuck together. See https://bugzilla.mozilla.org/show_bug.cgi?id=1034594#c34
|
||||
ifdef CROSS_COMPILE
|
||||
+ASAN_OPTIONS=detect_leaks=0 $(MAKE) -j1 -C $(DEPTH)/intl/icu/host STATIC_O=$(OBJ_SUFFIX) GENRBOPTS='-kRC'
|
||||
endif
|
||||
+ASAN_OPTIONS=detect_leaks=0 $(MAKE) -j1 -C $(DEPTH)/intl/icu/target STATIC_O=$(OBJ_SUFFIX) GENRBOPTS='-kR'
|
||||
$(ICU_LIB_RENAME)
|
||||
|
||||
distclean clean::
|
||||
ifdef CROSS_COMPILE
|
||||
+$(MAKE) -C $(DEPTH)/intl/icu/host $@ STATIC_O=$(OBJ_SUFFIX)
|
||||
endif
|
||||
+$(MAKE) -C $(DEPTH)/intl/icu/target $@ STATIC_O=$(OBJ_SUFFIX)
|
||||
|
||||
endif
|
||||
endif
|
27
config/external/icu/common/moz.build
vendored
Normal file
27
config/external/icu/common/moz.build
vendored
Normal file
@ -0,0 +1,27 @@
|
||||
# -*- 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/.
|
||||
|
||||
Library('icuuc')
|
||||
FINAL_LIBRARY = 'icu'
|
||||
|
||||
if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gonk':
|
||||
OS_LIBS += [
|
||||
'gabi++',
|
||||
]
|
||||
if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'android' and CONFIG['MOZ_ANDROID_CXX_STL'] == 'mozstlport':
|
||||
USE_LIBS += [
|
||||
'gabi++'
|
||||
]
|
||||
|
||||
DEFINES['U_COMMON_IMPLEMENTATION'] = True
|
||||
# This normally gets defined in the SDK but our WINVER is too low.
|
||||
#FIXME: should probably stop including mozilla-config.h
|
||||
DEFINES['LOCALE_SNAME'] = 0x5c
|
||||
|
||||
LOCAL_INCLUDES += CONFIG['MOZ_ICU_INCLUDES']
|
||||
|
||||
include('../defs.mozbuild')
|
||||
include('sources.mozbuild')
|
181
config/external/icu/common/sources.mozbuild
vendored
Normal file
181
config/external/icu/common/sources.mozbuild
vendored
Normal file
@ -0,0 +1,181 @@
|
||||
# THIS FILE IS GENERATED BY /intl/icu_sources_data.py DO NOT EDIT
|
||||
SOURCES += [
|
||||
'/intl/icu/source/common/appendable.cpp',
|
||||
'/intl/icu/source/common/bmpset.cpp',
|
||||
'/intl/icu/source/common/brkeng.cpp',
|
||||
'/intl/icu/source/common/brkiter.cpp',
|
||||
'/intl/icu/source/common/bytestream.cpp',
|
||||
'/intl/icu/source/common/bytestrie.cpp',
|
||||
'/intl/icu/source/common/bytestriebuilder.cpp',
|
||||
'/intl/icu/source/common/bytestrieiterator.cpp',
|
||||
'/intl/icu/source/common/caniter.cpp',
|
||||
'/intl/icu/source/common/chariter.cpp',
|
||||
'/intl/icu/source/common/charstr.cpp',
|
||||
'/intl/icu/source/common/cmemory.c',
|
||||
'/intl/icu/source/common/cstring.c',
|
||||
'/intl/icu/source/common/cwchar.c',
|
||||
'/intl/icu/source/common/dictbe.cpp',
|
||||
'/intl/icu/source/common/dictionarydata.cpp',
|
||||
'/intl/icu/source/common/dtintrv.cpp',
|
||||
'/intl/icu/source/common/errorcode.cpp',
|
||||
'/intl/icu/source/common/filteredbrk.cpp',
|
||||
'/intl/icu/source/common/filterednormalizer2.cpp',
|
||||
'/intl/icu/source/common/icudataver.c',
|
||||
'/intl/icu/source/common/icuplug.cpp',
|
||||
'/intl/icu/source/common/listformatter.cpp',
|
||||
'/intl/icu/source/common/loadednormalizer2impl.cpp',
|
||||
'/intl/icu/source/common/locavailable.cpp',
|
||||
'/intl/icu/source/common/locbased.cpp',
|
||||
'/intl/icu/source/common/locdispnames.cpp',
|
||||
'/intl/icu/source/common/locid.cpp',
|
||||
'/intl/icu/source/common/loclikely.cpp',
|
||||
'/intl/icu/source/common/locmap.c',
|
||||
'/intl/icu/source/common/locresdata.cpp',
|
||||
'/intl/icu/source/common/locutil.cpp',
|
||||
'/intl/icu/source/common/messagepattern.cpp',
|
||||
'/intl/icu/source/common/normalizer2.cpp',
|
||||
'/intl/icu/source/common/normalizer2impl.cpp',
|
||||
'/intl/icu/source/common/normlzr.cpp',
|
||||
'/intl/icu/source/common/parsepos.cpp',
|
||||
'/intl/icu/source/common/patternprops.cpp',
|
||||
'/intl/icu/source/common/pluralmap.cpp',
|
||||
'/intl/icu/source/common/propname.cpp',
|
||||
'/intl/icu/source/common/propsvec.c',
|
||||
'/intl/icu/source/common/punycode.cpp',
|
||||
'/intl/icu/source/common/putil.cpp',
|
||||
'/intl/icu/source/common/rbbi.cpp',
|
||||
'/intl/icu/source/common/rbbidata.cpp',
|
||||
'/intl/icu/source/common/rbbinode.cpp',
|
||||
'/intl/icu/source/common/rbbirb.cpp',
|
||||
'/intl/icu/source/common/rbbiscan.cpp',
|
||||
'/intl/icu/source/common/rbbisetb.cpp',
|
||||
'/intl/icu/source/common/rbbistbl.cpp',
|
||||
'/intl/icu/source/common/rbbitblb.cpp',
|
||||
'/intl/icu/source/common/resbund.cpp',
|
||||
'/intl/icu/source/common/resbund_cnv.cpp',
|
||||
'/intl/icu/source/common/ruleiter.cpp',
|
||||
'/intl/icu/source/common/schriter.cpp',
|
||||
'/intl/icu/source/common/serv.cpp',
|
||||
'/intl/icu/source/common/servlk.cpp',
|
||||
'/intl/icu/source/common/servlkf.cpp',
|
||||
'/intl/icu/source/common/servls.cpp',
|
||||
'/intl/icu/source/common/servnotf.cpp',
|
||||
'/intl/icu/source/common/servrbf.cpp',
|
||||
'/intl/icu/source/common/servslkf.cpp',
|
||||
'/intl/icu/source/common/sharedobject.cpp',
|
||||
'/intl/icu/source/common/simplepatternformatter.cpp',
|
||||
'/intl/icu/source/common/stringpiece.cpp',
|
||||
'/intl/icu/source/common/stringtriebuilder.cpp',
|
||||
'/intl/icu/source/common/uarrsort.c',
|
||||
'/intl/icu/source/common/ubidi.c',
|
||||
'/intl/icu/source/common/ubidi_props.c',
|
||||
'/intl/icu/source/common/ubidiln.c',
|
||||
'/intl/icu/source/common/ubidiwrt.c',
|
||||
'/intl/icu/source/common/ubrk.cpp',
|
||||
'/intl/icu/source/common/ucase.cpp',
|
||||
'/intl/icu/source/common/ucasemap.cpp',
|
||||
'/intl/icu/source/common/ucasemap_titlecase_brkiter.cpp',
|
||||
'/intl/icu/source/common/ucat.c',
|
||||
'/intl/icu/source/common/uchar.c',
|
||||
'/intl/icu/source/common/ucharstrie.cpp',
|
||||
'/intl/icu/source/common/ucharstriebuilder.cpp',
|
||||
'/intl/icu/source/common/ucharstrieiterator.cpp',
|
||||
'/intl/icu/source/common/uchriter.cpp',
|
||||
'/intl/icu/source/common/ucln_cmn.cpp',
|
||||
'/intl/icu/source/common/ucmndata.c',
|
||||
'/intl/icu/source/common/ucnv.c',
|
||||
'/intl/icu/source/common/ucnv2022.cpp',
|
||||
'/intl/icu/source/common/ucnv_bld.cpp',
|
||||
'/intl/icu/source/common/ucnv_cb.c',
|
||||
'/intl/icu/source/common/ucnv_cnv.c',
|
||||
'/intl/icu/source/common/ucnv_ct.c',
|
||||
'/intl/icu/source/common/ucnv_err.c',
|
||||
'/intl/icu/source/common/ucnv_ext.cpp',
|
||||
'/intl/icu/source/common/ucnv_io.cpp',
|
||||
'/intl/icu/source/common/ucnv_lmb.c',
|
||||
'/intl/icu/source/common/ucnv_set.c',
|
||||
'/intl/icu/source/common/ucnv_u16.c',
|
||||
'/intl/icu/source/common/ucnv_u32.c',
|
||||
'/intl/icu/source/common/ucnv_u7.c',
|
||||
'/intl/icu/source/common/ucnv_u8.c',
|
||||
'/intl/icu/source/common/ucnvbocu.cpp',
|
||||
'/intl/icu/source/common/ucnvdisp.c',
|
||||
'/intl/icu/source/common/ucnvhz.c',
|
||||
'/intl/icu/source/common/ucnvisci.c',
|
||||
'/intl/icu/source/common/ucnvlat1.c',
|
||||
'/intl/icu/source/common/ucnvmbcs.cpp',
|
||||
'/intl/icu/source/common/ucnvscsu.c',
|
||||
'/intl/icu/source/common/ucnvsel.cpp',
|
||||
'/intl/icu/source/common/ucol_swp.cpp',
|
||||
'/intl/icu/source/common/udata.cpp',
|
||||
'/intl/icu/source/common/udatamem.c',
|
||||
'/intl/icu/source/common/udataswp.c',
|
||||
'/intl/icu/source/common/uenum.c',
|
||||
'/intl/icu/source/common/uhash.c',
|
||||
'/intl/icu/source/common/uhash_us.cpp',
|
||||
'/intl/icu/source/common/uidna.cpp',
|
||||
'/intl/icu/source/common/uinit.cpp',
|
||||
'/intl/icu/source/common/uinvchar.c',
|
||||
'/intl/icu/source/common/uiter.cpp',
|
||||
'/intl/icu/source/common/ulist.c',
|
||||
'/intl/icu/source/common/ulistformatter.cpp',
|
||||
'/intl/icu/source/common/uloc.cpp',
|
||||
'/intl/icu/source/common/uloc_keytype.cpp',
|
||||
'/intl/icu/source/common/uloc_tag.c',
|
||||
'/intl/icu/source/common/umapfile.c',
|
||||
'/intl/icu/source/common/umath.c',
|
||||
'/intl/icu/source/common/umutex.cpp',
|
||||
'/intl/icu/source/common/unames.cpp',
|
||||
'/intl/icu/source/common/unifiedcache.cpp',
|
||||
'/intl/icu/source/common/unifilt.cpp',
|
||||
'/intl/icu/source/common/unifunct.cpp',
|
||||
'/intl/icu/source/common/uniset.cpp',
|
||||
'/intl/icu/source/common/uniset_closure.cpp',
|
||||
'/intl/icu/source/common/uniset_props.cpp',
|
||||
'/intl/icu/source/common/unisetspan.cpp',
|
||||
'/intl/icu/source/common/unistr.cpp',
|
||||
'/intl/icu/source/common/unistr_case.cpp',
|
||||
'/intl/icu/source/common/unistr_case_locale.cpp',
|
||||
'/intl/icu/source/common/unistr_cnv.cpp',
|
||||
'/intl/icu/source/common/unistr_props.cpp',
|
||||
'/intl/icu/source/common/unistr_titlecase_brkiter.cpp',
|
||||
'/intl/icu/source/common/unorm.cpp',
|
||||
'/intl/icu/source/common/unormcmp.cpp',
|
||||
'/intl/icu/source/common/uobject.cpp',
|
||||
'/intl/icu/source/common/uprops.cpp',
|
||||
'/intl/icu/source/common/ures_cnv.c',
|
||||
'/intl/icu/source/common/uresbund.cpp',
|
||||
'/intl/icu/source/common/uresdata.c',
|
||||
'/intl/icu/source/common/usc_impl.c',
|
||||
'/intl/icu/source/common/uscript.c',
|
||||
'/intl/icu/source/common/uscript_props.cpp',
|
||||
'/intl/icu/source/common/uset.cpp',
|
||||
'/intl/icu/source/common/uset_props.cpp',
|
||||
'/intl/icu/source/common/usetiter.cpp',
|
||||
'/intl/icu/source/common/ushape.cpp',
|
||||
'/intl/icu/source/common/usprep.cpp',
|
||||
'/intl/icu/source/common/ustack.cpp',
|
||||
'/intl/icu/source/common/ustr_cnv.cpp',
|
||||
'/intl/icu/source/common/ustr_titlecase_brkiter.cpp',
|
||||
'/intl/icu/source/common/ustr_wcs.cpp',
|
||||
'/intl/icu/source/common/ustrcase.cpp',
|
||||
'/intl/icu/source/common/ustrcase_locale.cpp',
|
||||
'/intl/icu/source/common/ustrenum.cpp',
|
||||
'/intl/icu/source/common/ustrfmt.c',
|
||||
'/intl/icu/source/common/ustring.cpp',
|
||||
'/intl/icu/source/common/ustrtrns.cpp',
|
||||
'/intl/icu/source/common/utext.cpp',
|
||||
'/intl/icu/source/common/utf_impl.c',
|
||||
'/intl/icu/source/common/util.cpp',
|
||||
'/intl/icu/source/common/util_props.cpp',
|
||||
'/intl/icu/source/common/utrace.c',
|
||||
'/intl/icu/source/common/utrie.cpp',
|
||||
'/intl/icu/source/common/utrie2.cpp',
|
||||
'/intl/icu/source/common/utrie2_builder.cpp',
|
||||
'/intl/icu/source/common/uts46.cpp',
|
||||
'/intl/icu/source/common/utypes.c',
|
||||
'/intl/icu/source/common/uvector.cpp',
|
||||
'/intl/icu/source/common/uvectr32.cpp',
|
||||
'/intl/icu/source/common/uvectr64.cpp',
|
||||
'/intl/icu/source/common/wintz.c',
|
||||
]
|
31
config/external/icu/data/icudata.s
vendored
Normal file
31
config/external/icu/data/icudata.s
vendored
Normal file
@ -0,0 +1,31 @@
|
||||
;; 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 PREFIX
|
||||
%define DATA_SYMBOL _ %+ ICU_DATA_SYMBOL
|
||||
%else
|
||||
%define DATA_SYMBOL ICU_DATA_SYMBOL
|
||||
%endif
|
||||
|
||||
%ifidn __OUTPUT_FORMAT__,elf
|
||||
%define FORMAT_ELF 1
|
||||
%elifidn __OUTPUT_FORMAT__,elf32
|
||||
%define FORMAT_ELF 1
|
||||
%elifidn __OUTPUT_FORMAT__,elf64
|
||||
%define FORMAT_ELF 1
|
||||
%else
|
||||
%define FORMAT_ELF 0
|
||||
%endif
|
||||
|
||||
%if FORMAT_ELF
|
||||
global DATA_SYMBOL:data hidden
|
||||
; This is needed for ELF, otherwise the GNU linker assumes the stack is executable by default.
|
||||
[SECTION .note.GNU-stack noalloc noexec nowrite progbits]
|
||||
%else
|
||||
global DATA_SYMBOL
|
||||
%endif
|
||||
|
||||
SECTION .rodata align=16
|
||||
DATA_SYMBOL:
|
||||
incbin ICU_DATA_FILE
|
12
config/external/icu/data/icudata_gas.S
vendored
Normal file
12
config/external/icu/data/icudata_gas.S
vendored
Normal file
@ -0,0 +1,12 @@
|
||||
# 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/.
|
||||
|
||||
#if defined(__linux__) && defined(__ELF__)
|
||||
.section .note.GNU-stack,"",@progbits
|
||||
#endif
|
||||
.global ICU_DATA_SYMBOL
|
||||
.data
|
||||
.balign 16
|
||||
ICU_DATA_SYMBOL:
|
||||
.incbin ICU_DATA_FILE
|
BIN
config/external/icu/data/icudt56l.dat
vendored
Normal file
BIN
config/external/icu/data/icudt56l.dat
vendored
Normal file
Binary file not shown.
31
config/external/icu/data/moz.build
vendored
Normal file
31
config/external/icu/data/moz.build
vendored
Normal file
@ -0,0 +1,31 @@
|
||||
# -*- 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/.
|
||||
|
||||
if CONFIG['MOZ_ICU_DATA_ARCHIVE']:
|
||||
# Copy the pre-built ICU data file to dist/bin.
|
||||
FINAL_TARGET_FILES += [CONFIG['ICU_DATA_FILE']]
|
||||
|
||||
# Build a library containing the ICU data for use in the JS shell, so that
|
||||
# JSAPI consumers don't have to deal with setting ICU's data path.
|
||||
Library('icudata')
|
||||
|
||||
if CONFIG['OS_ARCH'] == 'WINNT':
|
||||
if CONFIG['CPU_ARCH'] == 'x86':
|
||||
ASFLAGS += ['-DPREFIX']
|
||||
elif CONFIG['OS_ARCH'] == 'Darwin':
|
||||
ASFLAGS += ['-DPREFIX']
|
||||
|
||||
ASFLAGS += [
|
||||
'-DICU_DATA_FILE="%s"' % CONFIG['ICU_DATA_FILE'],
|
||||
'-DICU_DATA_SYMBOL=icudt%s_dat' % CONFIG['MOZ_ICU_VERSION'],
|
||||
]
|
||||
LOCAL_INCLUDES += ['.']
|
||||
|
||||
if CONFIG['HAVE_YASM']:
|
||||
USE_YASM = True
|
||||
SOURCES += ['icudata.s']
|
||||
elif CONFIG['GNU_AS']:
|
||||
SOURCES += ['icudata_gas.S']
|
39
config/external/icu/defs.mozbuild
vendored
Normal file
39
config/external/icu/defs.mozbuild
vendored
Normal file
@ -0,0 +1,39 @@
|
||||
# -*- 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/.
|
||||
|
||||
DEFINES.update(
|
||||
# Don't use icu namespace automatically in client code.
|
||||
U_USING_ICU_NAMESPACE = 0,
|
||||
|
||||
# Don't include obsolete header files.
|
||||
U_NO_DEFAULT_INCLUDE_UTF_HEADERS = 1,
|
||||
|
||||
# Remove chunks of the library that we don't need (yet).
|
||||
UCONFIG_NO_LEGACY_CONVERSION = True,
|
||||
UCONFIG_NO_TRANSLITERATION = True,
|
||||
UCONFIG_NO_REGULAR_EXPRESSIONS = True,
|
||||
UCONFIG_NO_BREAK_ITERATION = True,
|
||||
|
||||
# We don't need to pass data to and from legacy char* APIs.
|
||||
U_CHARSET_IS_UTF8 = True,
|
||||
)
|
||||
|
||||
if not CONFIG['HAVE_LANGINFO_CODESET']:
|
||||
DEFINES['U_HAVE_NL_LANGINFO_CODESET'] = 0
|
||||
|
||||
# ICU requires RTTI
|
||||
if CONFIG['GNU_CXX']:
|
||||
CXXFLAGS += ['-frtti']
|
||||
elif CONFIG['OS_TARGET'] == 'WINNT':
|
||||
CXXFLAGS += ['-GR']
|
||||
|
||||
DISABLE_STL_WRAPPING = True
|
||||
ALLOW_COMPILER_WARNINGS = True
|
||||
|
||||
if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'android' and CONFIG['MOZ_ANDROID_CXX_STL'] == 'mozstlport':
|
||||
LOCAL_INCLUDES += ['/build/gabi++/include']
|
||||
if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gonk':
|
||||
LOCAL_INCLUDES += ['%' + CONFIG['ANDROID_SOURCE'] + '/abi/cpp/include']
|
15
config/external/icu/i18n/moz.build
vendored
Normal file
15
config/external/icu/i18n/moz.build
vendored
Normal file
@ -0,0 +1,15 @@
|
||||
# -*- 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/.
|
||||
|
||||
Library('icui18n')
|
||||
FINAL_LIBRARY = 'icu'
|
||||
|
||||
DEFINES['U_I18N_IMPLEMENTATION'] = True
|
||||
|
||||
LOCAL_INCLUDES += CONFIG['MOZ_ICU_INCLUDES']
|
||||
|
||||
include('../defs.mozbuild')
|
||||
include('sources.mozbuild')
|
201
config/external/icu/i18n/sources.mozbuild
vendored
Normal file
201
config/external/icu/i18n/sources.mozbuild
vendored
Normal file
@ -0,0 +1,201 @@
|
||||
# THIS FILE IS GENERATED BY /intl/icu_sources_data.py DO NOT EDIT
|
||||
SOURCES += [
|
||||
'/intl/icu/source/i18n/affixpatternparser.cpp',
|
||||
'/intl/icu/source/i18n/alphaindex.cpp',
|
||||
'/intl/icu/source/i18n/anytrans.cpp',
|
||||
'/intl/icu/source/i18n/astro.cpp',
|
||||
'/intl/icu/source/i18n/basictz.cpp',
|
||||
'/intl/icu/source/i18n/bocsu.cpp',
|
||||
'/intl/icu/source/i18n/brktrans.cpp',
|
||||
'/intl/icu/source/i18n/buddhcal.cpp',
|
||||
'/intl/icu/source/i18n/calendar.cpp',
|
||||
'/intl/icu/source/i18n/casetrn.cpp',
|
||||
'/intl/icu/source/i18n/cecal.cpp',
|
||||
'/intl/icu/source/i18n/chnsecal.cpp',
|
||||
'/intl/icu/source/i18n/choicfmt.cpp',
|
||||
'/intl/icu/source/i18n/coleitr.cpp',
|
||||
'/intl/icu/source/i18n/coll.cpp',
|
||||
'/intl/icu/source/i18n/collation.cpp',
|
||||
'/intl/icu/source/i18n/collationbuilder.cpp',
|
||||
'/intl/icu/source/i18n/collationcompare.cpp',
|
||||
'/intl/icu/source/i18n/collationdata.cpp',
|
||||
'/intl/icu/source/i18n/collationdatabuilder.cpp',
|
||||
'/intl/icu/source/i18n/collationdatareader.cpp',
|
||||
'/intl/icu/source/i18n/collationdatawriter.cpp',
|
||||
'/intl/icu/source/i18n/collationfastlatin.cpp',
|
||||
'/intl/icu/source/i18n/collationfastlatinbuilder.cpp',
|
||||
'/intl/icu/source/i18n/collationfcd.cpp',
|
||||
'/intl/icu/source/i18n/collationiterator.cpp',
|
||||
'/intl/icu/source/i18n/collationkeys.cpp',
|
||||
'/intl/icu/source/i18n/collationroot.cpp',
|
||||
'/intl/icu/source/i18n/collationrootelements.cpp',
|
||||
'/intl/icu/source/i18n/collationruleparser.cpp',
|
||||
'/intl/icu/source/i18n/collationsets.cpp',
|
||||
'/intl/icu/source/i18n/collationsettings.cpp',
|
||||
'/intl/icu/source/i18n/collationtailoring.cpp',
|
||||
'/intl/icu/source/i18n/collationweights.cpp',
|
||||
'/intl/icu/source/i18n/compactdecimalformat.cpp',
|
||||
'/intl/icu/source/i18n/coptccal.cpp',
|
||||
'/intl/icu/source/i18n/cpdtrans.cpp',
|
||||
'/intl/icu/source/i18n/csdetect.cpp',
|
||||
'/intl/icu/source/i18n/csmatch.cpp',
|
||||
'/intl/icu/source/i18n/csr2022.cpp',
|
||||
'/intl/icu/source/i18n/csrecog.cpp',
|
||||
'/intl/icu/source/i18n/csrmbcs.cpp',
|
||||
'/intl/icu/source/i18n/csrsbcs.cpp',
|
||||
'/intl/icu/source/i18n/csrucode.cpp',
|
||||
'/intl/icu/source/i18n/csrutf8.cpp',
|
||||
'/intl/icu/source/i18n/curramt.cpp',
|
||||
'/intl/icu/source/i18n/currfmt.cpp',
|
||||
'/intl/icu/source/i18n/currpinf.cpp',
|
||||
'/intl/icu/source/i18n/currunit.cpp',
|
||||
'/intl/icu/source/i18n/dangical.cpp',
|
||||
'/intl/icu/source/i18n/datefmt.cpp',
|
||||
'/intl/icu/source/i18n/dcfmtsym.cpp',
|
||||
'/intl/icu/source/i18n/decContext.c',
|
||||
'/intl/icu/source/i18n/decfmtst.cpp',
|
||||
'/intl/icu/source/i18n/decimalformatpattern.cpp',
|
||||
'/intl/icu/source/i18n/decimfmt.cpp',
|
||||
'/intl/icu/source/i18n/decimfmtimpl.cpp',
|
||||
'/intl/icu/source/i18n/decNumber.c',
|
||||
'/intl/icu/source/i18n/digitaffix.cpp',
|
||||
'/intl/icu/source/i18n/digitaffixesandpadding.cpp',
|
||||
'/intl/icu/source/i18n/digitformatter.cpp',
|
||||
'/intl/icu/source/i18n/digitgrouping.cpp',
|
||||
'/intl/icu/source/i18n/digitinterval.cpp',
|
||||
'/intl/icu/source/i18n/digitlst.cpp',
|
||||
'/intl/icu/source/i18n/dtfmtsym.cpp',
|
||||
'/intl/icu/source/i18n/dtitvfmt.cpp',
|
||||
'/intl/icu/source/i18n/dtitvinf.cpp',
|
||||
'/intl/icu/source/i18n/dtptngen.cpp',
|
||||
'/intl/icu/source/i18n/dtrule.cpp',
|
||||
'/intl/icu/source/i18n/esctrn.cpp',
|
||||
'/intl/icu/source/i18n/ethpccal.cpp',
|
||||
'/intl/icu/source/i18n/fmtable.cpp',
|
||||
'/intl/icu/source/i18n/fmtable_cnv.cpp',
|
||||
'/intl/icu/source/i18n/format.cpp',
|
||||
'/intl/icu/source/i18n/fphdlimp.cpp',
|
||||
'/intl/icu/source/i18n/fpositer.cpp',
|
||||
'/intl/icu/source/i18n/funcrepl.cpp',
|
||||
'/intl/icu/source/i18n/gender.cpp',
|
||||
'/intl/icu/source/i18n/gregocal.cpp',
|
||||
'/intl/icu/source/i18n/gregoimp.cpp',
|
||||
'/intl/icu/source/i18n/hebrwcal.cpp',
|
||||
'/intl/icu/source/i18n/identifier_info.cpp',
|
||||
'/intl/icu/source/i18n/indiancal.cpp',
|
||||
'/intl/icu/source/i18n/inputext.cpp',
|
||||
'/intl/icu/source/i18n/islamcal.cpp',
|
||||
'/intl/icu/source/i18n/japancal.cpp',
|
||||
'/intl/icu/source/i18n/locdspnm.cpp',
|
||||
'/intl/icu/source/i18n/measfmt.cpp',
|
||||
'/intl/icu/source/i18n/measunit.cpp',
|
||||
'/intl/icu/source/i18n/measure.cpp',
|
||||
'/intl/icu/source/i18n/msgfmt.cpp',
|
||||
'/intl/icu/source/i18n/name2uni.cpp',
|
||||
'/intl/icu/source/i18n/nfrs.cpp',
|
||||
'/intl/icu/source/i18n/nfrule.cpp',
|
||||
'/intl/icu/source/i18n/nfsubs.cpp',
|
||||
'/intl/icu/source/i18n/nortrans.cpp',
|
||||
'/intl/icu/source/i18n/nultrans.cpp',
|
||||
'/intl/icu/source/i18n/numfmt.cpp',
|
||||
'/intl/icu/source/i18n/numsys.cpp',
|
||||
'/intl/icu/source/i18n/olsontz.cpp',
|
||||
'/intl/icu/source/i18n/persncal.cpp',
|
||||
'/intl/icu/source/i18n/pluralaffix.cpp',
|
||||
'/intl/icu/source/i18n/plurfmt.cpp',
|
||||
'/intl/icu/source/i18n/plurrule.cpp',
|
||||
'/intl/icu/source/i18n/precision.cpp',
|
||||
'/intl/icu/source/i18n/quant.cpp',
|
||||
'/intl/icu/source/i18n/quantityformatter.cpp',
|
||||
'/intl/icu/source/i18n/rbnf.cpp',
|
||||
'/intl/icu/source/i18n/rbt.cpp',
|
||||
'/intl/icu/source/i18n/rbt_data.cpp',
|
||||
'/intl/icu/source/i18n/rbt_pars.cpp',
|
||||
'/intl/icu/source/i18n/rbt_rule.cpp',
|
||||
'/intl/icu/source/i18n/rbt_set.cpp',
|
||||
'/intl/icu/source/i18n/rbtz.cpp',
|
||||
'/intl/icu/source/i18n/regexcmp.cpp',
|
||||
'/intl/icu/source/i18n/regeximp.cpp',
|
||||
'/intl/icu/source/i18n/regexst.cpp',
|
||||
'/intl/icu/source/i18n/regextxt.cpp',
|
||||
'/intl/icu/source/i18n/region.cpp',
|
||||
'/intl/icu/source/i18n/reldatefmt.cpp',
|
||||
'/intl/icu/source/i18n/reldtfmt.cpp',
|
||||
'/intl/icu/source/i18n/rematch.cpp',
|
||||
'/intl/icu/source/i18n/remtrans.cpp',
|
||||
'/intl/icu/source/i18n/repattrn.cpp',
|
||||
'/intl/icu/source/i18n/rulebasedcollator.cpp',
|
||||
'/intl/icu/source/i18n/scientificnumberformatter.cpp',
|
||||
'/intl/icu/source/i18n/scriptset.cpp',
|
||||
'/intl/icu/source/i18n/search.cpp',
|
||||
'/intl/icu/source/i18n/selfmt.cpp',
|
||||
'/intl/icu/source/i18n/sharedbreakiterator.cpp',
|
||||
'/intl/icu/source/i18n/simpletz.cpp',
|
||||
'/intl/icu/source/i18n/smallintformatter.cpp',
|
||||
'/intl/icu/source/i18n/smpdtfmt.cpp',
|
||||
'/intl/icu/source/i18n/smpdtfst.cpp',
|
||||
'/intl/icu/source/i18n/sortkey.cpp',
|
||||
'/intl/icu/source/i18n/strmatch.cpp',
|
||||
'/intl/icu/source/i18n/strrepl.cpp',
|
||||
'/intl/icu/source/i18n/stsearch.cpp',
|
||||
'/intl/icu/source/i18n/taiwncal.cpp',
|
||||
'/intl/icu/source/i18n/timezone.cpp',
|
||||
'/intl/icu/source/i18n/titletrn.cpp',
|
||||
'/intl/icu/source/i18n/tmunit.cpp',
|
||||
'/intl/icu/source/i18n/tmutamt.cpp',
|
||||
'/intl/icu/source/i18n/tmutfmt.cpp',
|
||||
'/intl/icu/source/i18n/tolowtrn.cpp',
|
||||
'/intl/icu/source/i18n/toupptrn.cpp',
|
||||
'/intl/icu/source/i18n/translit.cpp',
|
||||
'/intl/icu/source/i18n/transreg.cpp',
|
||||
'/intl/icu/source/i18n/tridpars.cpp',
|
||||
'/intl/icu/source/i18n/tzfmt.cpp',
|
||||
'/intl/icu/source/i18n/tzgnames.cpp',
|
||||
'/intl/icu/source/i18n/tznames.cpp',
|
||||
'/intl/icu/source/i18n/tznames_impl.cpp',
|
||||
'/intl/icu/source/i18n/tzrule.cpp',
|
||||
'/intl/icu/source/i18n/tztrans.cpp',
|
||||
'/intl/icu/source/i18n/ucal.cpp',
|
||||
'/intl/icu/source/i18n/ucln_in.cpp',
|
||||
'/intl/icu/source/i18n/ucol.cpp',
|
||||
'/intl/icu/source/i18n/ucol_res.cpp',
|
||||
'/intl/icu/source/i18n/ucol_sit.cpp',
|
||||
'/intl/icu/source/i18n/ucoleitr.cpp',
|
||||
'/intl/icu/source/i18n/ucsdet.cpp',
|
||||
'/intl/icu/source/i18n/ucurr.cpp',
|
||||
'/intl/icu/source/i18n/udat.cpp',
|
||||
'/intl/icu/source/i18n/udateintervalformat.cpp',
|
||||
'/intl/icu/source/i18n/udatpg.cpp',
|
||||
'/intl/icu/source/i18n/ufieldpositer.cpp',
|
||||
'/intl/icu/source/i18n/uitercollationiterator.cpp',
|
||||
'/intl/icu/source/i18n/ulocdata.c',
|
||||
'/intl/icu/source/i18n/umsg.cpp',
|
||||
'/intl/icu/source/i18n/unesctrn.cpp',
|
||||
'/intl/icu/source/i18n/uni2name.cpp',
|
||||
'/intl/icu/source/i18n/unum.cpp',
|
||||
'/intl/icu/source/i18n/unumsys.cpp',
|
||||
'/intl/icu/source/i18n/upluralrules.cpp',
|
||||
'/intl/icu/source/i18n/uregex.cpp',
|
||||
'/intl/icu/source/i18n/uregexc.cpp',
|
||||
'/intl/icu/source/i18n/uregion.cpp',
|
||||
'/intl/icu/source/i18n/usearch.cpp',
|
||||
'/intl/icu/source/i18n/uspoof.cpp',
|
||||
'/intl/icu/source/i18n/uspoof_build.cpp',
|
||||
'/intl/icu/source/i18n/uspoof_conf.cpp',
|
||||
'/intl/icu/source/i18n/uspoof_impl.cpp',
|
||||
'/intl/icu/source/i18n/uspoof_wsconf.cpp',
|
||||
'/intl/icu/source/i18n/utf16collationiterator.cpp',
|
||||
'/intl/icu/source/i18n/utf8collationiterator.cpp',
|
||||
'/intl/icu/source/i18n/utmscale.c',
|
||||
'/intl/icu/source/i18n/utrans.cpp',
|
||||
'/intl/icu/source/i18n/valueformatter.cpp',
|
||||
'/intl/icu/source/i18n/visibledigits.cpp',
|
||||
'/intl/icu/source/i18n/vtzone.cpp',
|
||||
'/intl/icu/source/i18n/vzone.cpp',
|
||||
'/intl/icu/source/i18n/windtfmt.cpp',
|
||||
'/intl/icu/source/i18n/winnmfmt.cpp',
|
||||
'/intl/icu/source/i18n/wintzimpl.cpp',
|
||||
'/intl/icu/source/i18n/zonemeta.cpp',
|
||||
'/intl/icu/source/i18n/zrule.cpp',
|
||||
'/intl/icu/source/i18n/ztrans.cpp',
|
||||
]
|
26
config/external/icu/moz.build
vendored
26
config/external/icu/moz.build
vendored
@ -9,19 +9,13 @@ Library('icu')
|
||||
if CONFIG['MOZ_SYSTEM_ICU']:
|
||||
OS_LIBS += CONFIG['MOZ_ICU_LIBS']
|
||||
else:
|
||||
# Order needs to be preserved
|
||||
for l in CONFIG['ICU_LIB_NAMES']:
|
||||
USE_LIBS += ['%s/intl/icu/target/lib/%s%s' % (
|
||||
'static:' if not CONFIG['MOZ_SHARED_ICU'] else '',
|
||||
l,
|
||||
CONFIG['MOZ_ICU_DBG_SUFFIX']
|
||||
)]
|
||||
|
||||
if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gonk':
|
||||
OS_LIBS += [
|
||||
'gabi++',
|
||||
]
|
||||
if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'android' and CONFIG['MOZ_ANDROID_CXX_STL'] == 'mozstlport':
|
||||
USE_LIBS += [
|
||||
'gabi++'
|
||||
]
|
||||
DIRS += [
|
||||
'common',
|
||||
'data',
|
||||
'i18n',
|
||||
]
|
||||
if CONFIG['MOZ_ICU_DATA_ARCHIVE']:
|
||||
DIRS += ['stubdata']
|
||||
USE_LIBS += ['icustubdata']
|
||||
else:
|
||||
USE_LIBS += ['icudata']
|
||||
|
15
config/external/icu/stubdata/moz.build
vendored
Normal file
15
config/external/icu/stubdata/moz.build
vendored
Normal file
@ -0,0 +1,15 @@
|
||||
# -*- 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/.
|
||||
|
||||
# This builds the ICU stubdata library, since we are shipping ICU
|
||||
# data in a separate data file. ICU needs a data symbol to link against
|
||||
# even if you're loading its data from a file.
|
||||
|
||||
Library('icustubdata')
|
||||
|
||||
LOCAL_INCLUDES += CONFIG['MOZ_ICU_INCLUDES']
|
||||
|
||||
SOURCES += ['/intl/icu/source/stubdata/stubdata.c']
|
@ -29,8 +29,8 @@ if CONFIG['HOST_OS_ARCH'] != 'WINNT':
|
||||
# while the program here is in C.
|
||||
HostProgram('nsinstall_real', c_only=True)
|
||||
|
||||
if CONFIG['MOZ_SHARED_ICU']:
|
||||
DEFINES['MOZ_SHARED_ICU'] = True
|
||||
if CONFIG['MOZ_SYSTEM_ICU']:
|
||||
DEFINES['MOZ_SYSTEM_ICU'] = True
|
||||
|
||||
PYTHON_UNIT_TESTS += [
|
||||
'tests/test_mozbuild_reading.py',
|
||||
|
@ -1327,7 +1327,7 @@ kvm.h
|
||||
spawn.h
|
||||
err.h
|
||||
xlocale.h
|
||||
#ifdef MOZ_SHARED_ICU
|
||||
#ifdef MOZ_SYSTEM_ICU
|
||||
unicode/locid.h
|
||||
unicode/numsys.h
|
||||
unicode/timezone.h
|
||||
|
@ -7,13 +7,7 @@
|
||||
}
|
||||
|
||||
#eyedropper-button::before {
|
||||
background-image: url("chrome://devtools/skin/images/command-eyedropper.png");
|
||||
}
|
||||
|
||||
@media (min-resolution: 1.1dppx) {
|
||||
#eyedropper-button::before {
|
||||
background-image: url("chrome://devtools/skin/images/command-eyedropper@2x.png");
|
||||
}
|
||||
background-image: url("chrome://devtools/skin/images/command-eyedropper.svg");
|
||||
}
|
||||
|
||||
/* Mix-in classes */
|
||||
|
@ -62,7 +62,8 @@ public:
|
||||
return;
|
||||
}
|
||||
|
||||
if (!JS::CopyAsyncStack(aCx, asyncStack, asyncCause, &parentFrame, 0)) {
|
||||
if (JS::IsSavedFrame(asyncStack) &&
|
||||
!JS::CopyAsyncStack(aCx, asyncStack, asyncCause, &parentFrame, 0)) {
|
||||
JS_ClearPendingException(aCx);
|
||||
} else {
|
||||
stackFrame.mAsyncParent = parentFrame;
|
||||
|
@ -20,19 +20,10 @@ if (SpecialPowers.hasPermission("alarms", document)) {
|
||||
} else {
|
||||
SpecialPowers.pushPrefEnv({"set": [["dom.mozAlarms.enabled", true]]}, function() {
|
||||
SpecialPowers.removePermission("alarms", document);
|
||||
|
||||
// mozAlarms is installed on all platforms except Android for the moment.
|
||||
if (navigator.appVersion.indexOf("Android") != -1) {
|
||||
ok(!('mozAlarms' in navigator),
|
||||
"navigator.mozAlarms should not exist without permission");
|
||||
ok(!('AlarmsManager' in window),
|
||||
"Interface AlarmsManager should not exist");
|
||||
} else {
|
||||
ok(!('mozAlarms' in navigator),
|
||||
"navigator.mozAlarms should not exist without permission");
|
||||
ok(!('AlarmsManager' in window),
|
||||
"Interface AlarmsManager should not exist without permission");
|
||||
}
|
||||
ok(!('mozAlarms' in navigator),
|
||||
"navigator.mozAlarms should not exist without permission");
|
||||
ok(!('AlarmsManager' in window),
|
||||
"Interface AlarmsManager should not exist without permission");
|
||||
SpecialPowers.addPermission("alarms", true, document);
|
||||
SimpleTest.finish();
|
||||
});
|
||||
|
@ -20,7 +20,6 @@ SpecialPowers.pushPrefEnv({"set": [["dom.mozAlarms.enabled", true]]}, function()
|
||||
|
||||
// mozAlarms is installed on all platforms except Android for the moment.
|
||||
if (navigator.appVersion.indexOf("Android") != -1) {
|
||||
ok('AlarmsManager' in window, "Interface AlarmsManager should exist");
|
||||
try {
|
||||
todo('mozAlarms' in navigator,
|
||||
"mozAlarms is not allowed on Android for now. TODO Bug 863557.");
|
||||
@ -30,6 +29,7 @@ SpecialPowers.pushPrefEnv({"set": [["dom.mozAlarms.enabled", true]]}, function()
|
||||
"Caught exception: " + e);
|
||||
}
|
||||
} else {
|
||||
ok('AlarmsManager' in window, "Interface AlarmsManager should exist");
|
||||
ok('mozAlarms' in navigator, "navigator.mozAlarms should exist");
|
||||
ok(navigator.mozAlarms instanceof AlarmsManager,
|
||||
"navigator.mozAlarms should be an instance of AlarmsManager");
|
||||
|
@ -80,10 +80,8 @@
|
||||
#include "WidgetUtils.h"
|
||||
#include "nsIPresentationService.h"
|
||||
|
||||
#ifdef MOZ_MEDIA_NAVIGATOR
|
||||
#include "mozilla/dom/MediaDevices.h"
|
||||
#include "MediaManager.h"
|
||||
#endif
|
||||
#ifdef MOZ_B2G_BT
|
||||
#include "BluetoothManager.h"
|
||||
#endif
|
||||
@ -183,7 +181,6 @@ NS_IMPL_CYCLE_COLLECTION_CLASS(Navigator)
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN(Navigator)
|
||||
tmp->Invalidate();
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK(mWindow)
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK(mCachedResolveResults)
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK_PRESERVED_WRAPPER
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK_END
|
||||
|
||||
@ -220,7 +217,6 @@ NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN(Navigator)
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mServiceWorkerContainer)
|
||||
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mWindow)
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mCachedResolveResults)
|
||||
#ifdef MOZ_EME
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mMediaKeySystemAccessManager)
|
||||
#endif
|
||||
@ -1365,7 +1361,6 @@ Navigator::SendBeacon(const nsAString& aUrl,
|
||||
return true;
|
||||
}
|
||||
|
||||
#ifdef MOZ_MEDIA_NAVIGATOR
|
||||
MediaDevices*
|
||||
Navigator::GetMediaDevices(ErrorResult& aRv)
|
||||
{
|
||||
@ -1433,7 +1428,6 @@ Navigator::MozGetUserMediaDevices(const MediaStreamConstraints& aConstraints,
|
||||
aRv = manager->GetUserMediaDevices(mWindow, aConstraints, onsuccess, onerror,
|
||||
aInnerWindowID, aCallID);
|
||||
}
|
||||
#endif
|
||||
|
||||
DesktopNotificationCenter*
|
||||
Navigator::GetMozNotification(ErrorResult& aRv)
|
||||
@ -1668,11 +1662,6 @@ Navigator::HasFeature(const nsAString& aName, ErrorResult& aRv)
|
||||
return p.forget();
|
||||
}
|
||||
|
||||
if (featureName.EqualsLiteral("Navigator.mozContacts")) {
|
||||
p->MaybeResolve(true);
|
||||
return p.forget();
|
||||
}
|
||||
|
||||
if (featureName.EqualsLiteral("Navigator.getDeviceStorage")) {
|
||||
p->MaybeResolve(Preferences::GetBool("device.storage.enabled"));
|
||||
return p.forget();
|
||||
@ -2204,13 +2193,11 @@ Navigator::OnNavigation()
|
||||
return;
|
||||
}
|
||||
|
||||
#ifdef MOZ_MEDIA_NAVIGATOR
|
||||
// If MediaManager is open let it inform any live streams or pending callbacks
|
||||
MediaManager *manager = MediaManager::GetIfExists();
|
||||
if (manager) {
|
||||
manager->OnNavigation(mWindow->WindowID());
|
||||
}
|
||||
#endif
|
||||
if (mCameraManager) {
|
||||
mCameraManager->OnNavigation(mWindow->WindowID());
|
||||
}
|
||||
@ -2256,206 +2243,6 @@ Navigator::GetMozAudioChannelManager(ErrorResult& aRv)
|
||||
}
|
||||
#endif
|
||||
|
||||
bool
|
||||
Navigator::DoResolve(JSContext* aCx, JS::Handle<JSObject*> aObject,
|
||||
JS::Handle<jsid> aId,
|
||||
JS::MutableHandle<JS::PropertyDescriptor> aDesc)
|
||||
{
|
||||
// Note: Keep this in sync with MayResolve.
|
||||
if (!JSID_IS_STRING(aId)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
nsScriptNameSpaceManager* nameSpaceManager = GetNameSpaceManager();
|
||||
if (!nameSpaceManager) {
|
||||
return Throw(aCx, NS_ERROR_NOT_INITIALIZED);
|
||||
}
|
||||
|
||||
nsAutoJSString name;
|
||||
if (!name.init(aCx, JSID_TO_STRING(aId))) {
|
||||
return false;
|
||||
}
|
||||
|
||||
const nsGlobalNameStruct* name_struct =
|
||||
nameSpaceManager->LookupNavigatorName(name);
|
||||
if (!name_struct) {
|
||||
return true;
|
||||
}
|
||||
|
||||
JS::Rooted<JSObject*> naviObj(aCx,
|
||||
js::CheckedUnwrap(aObject,
|
||||
/* stopAtWindowProxy = */ false));
|
||||
if (!naviObj) {
|
||||
return Throw(aCx, NS_ERROR_DOM_SECURITY_ERR);
|
||||
}
|
||||
|
||||
if (name_struct->mType == nsGlobalNameStruct::eTypeNewDOMBinding) {
|
||||
ConstructNavigatorProperty construct = name_struct->mConstructNavigatorProperty;
|
||||
MOZ_ASSERT(construct);
|
||||
|
||||
JS::Rooted<JSObject*> domObject(aCx);
|
||||
{
|
||||
// Make sure to do the creation of our object in the compartment
|
||||
// of naviObj, especially since we plan to cache that object.
|
||||
JSAutoCompartment ac(aCx, naviObj);
|
||||
|
||||
// Check whether our constructor is enabled after we unwrap Xrays, since
|
||||
// we don't want to define an interface on the Xray if it's disabled in
|
||||
// the target global, even if it's enabled in the Xray's global.
|
||||
if (name_struct->mConstructorEnabled &&
|
||||
!(*name_struct->mConstructorEnabled)(aCx, naviObj)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (name.EqualsLiteral("mozSettings")) {
|
||||
bool hasPermission = CheckPermission("settings-api-read") ||
|
||||
CheckPermission("settings-api-write");
|
||||
if (!hasPermission) {
|
||||
FillPropertyDescriptor(aDesc, aObject, JS::NullValue(), false);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
if (name.EqualsLiteral("mozDownloadManager")) {
|
||||
if (!CheckPermission("downloads")) {
|
||||
FillPropertyDescriptor(aDesc, aObject, JS::NullValue(), false);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
nsISupports* existingObject = mCachedResolveResults.GetWeak(name);
|
||||
if (existingObject) {
|
||||
// We know all of our WebIDL objects here are wrappercached, so just go
|
||||
// ahead and WrapObject() them. We can't use GetOrCreateDOMReflector,
|
||||
// because we don't have the concrete type.
|
||||
JS::Rooted<JS::Value> wrapped(aCx);
|
||||
if (!dom::WrapObject(aCx, existingObject, &wrapped)) {
|
||||
return false;
|
||||
}
|
||||
domObject = &wrapped.toObject();
|
||||
} else {
|
||||
domObject = construct(aCx, naviObj);
|
||||
if (!domObject) {
|
||||
return Throw(aCx, NS_ERROR_FAILURE);
|
||||
}
|
||||
|
||||
// Store the value in our cache
|
||||
nsISupports* native = UnwrapDOMObjectToISupports(domObject);
|
||||
MOZ_ASSERT(native);
|
||||
mCachedResolveResults.Put(name, native);
|
||||
}
|
||||
}
|
||||
|
||||
if (!JS_WrapObject(aCx, &domObject)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
FillPropertyDescriptor(aDesc, aObject, JS::ObjectValue(*domObject), false);
|
||||
return true;
|
||||
}
|
||||
|
||||
NS_ASSERTION(name_struct->mType == nsGlobalNameStruct::eTypeNavigatorProperty,
|
||||
"unexpected type");
|
||||
|
||||
nsresult rv = NS_OK;
|
||||
|
||||
nsCOMPtr<nsISupports> native;
|
||||
bool hadCachedNative = mCachedResolveResults.Get(name, getter_AddRefs(native));
|
||||
bool okToUseNative;
|
||||
JS::Rooted<JS::Value> prop_val(aCx);
|
||||
if (hadCachedNative) {
|
||||
okToUseNative = true;
|
||||
} else {
|
||||
native = do_CreateInstance(name_struct->mCID, &rv);
|
||||
if (NS_FAILED(rv)) {
|
||||
return Throw(aCx, rv);
|
||||
}
|
||||
|
||||
nsCOMPtr<nsIDOMGlobalPropertyInitializer> gpi(do_QueryInterface(native));
|
||||
|
||||
if (gpi) {
|
||||
if (!mWindow) {
|
||||
return Throw(aCx, NS_ERROR_UNEXPECTED);
|
||||
}
|
||||
|
||||
rv = gpi->Init(mWindow, &prop_val);
|
||||
if (NS_FAILED(rv)) {
|
||||
return Throw(aCx, rv);
|
||||
}
|
||||
}
|
||||
|
||||
okToUseNative = !prop_val.isObjectOrNull();
|
||||
}
|
||||
|
||||
if (okToUseNative) {
|
||||
// Make sure to do the creation of our object in the compartment
|
||||
// of naviObj, especially since we plan to cache that object.
|
||||
JSAutoCompartment ac(aCx, naviObj);
|
||||
|
||||
rv = nsContentUtils::WrapNative(aCx, native, &prop_val);
|
||||
|
||||
if (NS_FAILED(rv)) {
|
||||
return Throw(aCx, rv);
|
||||
}
|
||||
|
||||
// Now that we know we managed to wrap this thing properly, go ahead and
|
||||
// cache it as needed.
|
||||
if (!hadCachedNative) {
|
||||
mCachedResolveResults.Put(name, native);
|
||||
}
|
||||
}
|
||||
|
||||
if (!JS_WrapValue(aCx, &prop_val)) {
|
||||
return Throw(aCx, NS_ERROR_UNEXPECTED);
|
||||
}
|
||||
|
||||
FillPropertyDescriptor(aDesc, aObject, prop_val, false);
|
||||
return true;
|
||||
}
|
||||
|
||||
/* static */
|
||||
bool
|
||||
Navigator::MayResolve(jsid aId)
|
||||
{
|
||||
// Note: This function does not fail and may not have any side-effects.
|
||||
// Note: Keep this in sync with DoResolve.
|
||||
if (!JSID_IS_STRING(aId)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
nsScriptNameSpaceManager *nameSpaceManager = PeekNameSpaceManager();
|
||||
if (!nameSpaceManager) {
|
||||
// Really shouldn't happen here. Fail safe.
|
||||
return true;
|
||||
}
|
||||
|
||||
nsAutoString name;
|
||||
AssignJSFlatString(name, JSID_TO_FLAT_STRING(aId));
|
||||
|
||||
return nameSpaceManager->LookupNavigatorName(name);
|
||||
}
|
||||
|
||||
void
|
||||
Navigator::GetOwnPropertyNames(JSContext* aCx, nsTArray<nsString>& aNames,
|
||||
ErrorResult& aRv)
|
||||
{
|
||||
nsScriptNameSpaceManager *nameSpaceManager = GetNameSpaceManager();
|
||||
if (!nameSpaceManager) {
|
||||
NS_ERROR("Can't get namespace manager.");
|
||||
aRv.Throw(NS_ERROR_UNEXPECTED);
|
||||
return;
|
||||
}
|
||||
|
||||
JS::Rooted<JSObject*> wrapper(aCx, GetWrapper());
|
||||
for (auto i = nameSpaceManager->NavigatorNameIter(); !i.Done(); i.Next()) {
|
||||
const GlobalNameMapEntry* entry = i.Get();
|
||||
if (!entry->mGlobalName.mConstructorEnabled ||
|
||||
entry->mGlobalName.mConstructorEnabled(aCx, wrapper)) {
|
||||
aNames.AppendElement(entry->mKey);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
JSObject*
|
||||
Navigator::WrapObject(JSContext* cx, JS::Handle<JSObject*> aGivenProto)
|
||||
{
|
||||
@ -2513,7 +2300,6 @@ Navigator::HasNFCSupport(JSContext* /* unused */, JSObject* aGlobal)
|
||||
}
|
||||
#endif // MOZ_NFC
|
||||
|
||||
#ifdef MOZ_MEDIA_NAVIGATOR
|
||||
/* static */
|
||||
bool
|
||||
Navigator::HasUserMediaSupport(JSContext* /* unused */,
|
||||
@ -2523,7 +2309,6 @@ Navigator::HasUserMediaSupport(JSContext* /* unused */,
|
||||
return Preferences::GetBool("media.navigator.enabled", false) ||
|
||||
Preferences::GetBool("media.peerconnection.enabled", false);
|
||||
}
|
||||
#endif // MOZ_MEDIA_NAVIGATOR
|
||||
|
||||
/* static */
|
||||
bool
|
||||
|
@ -71,11 +71,9 @@ class MozIdleObserver;
|
||||
#ifdef MOZ_GAMEPAD
|
||||
class Gamepad;
|
||||
#endif // MOZ_GAMEPAD
|
||||
#ifdef MOZ_MEDIA_NAVIGATOR
|
||||
class NavigatorUserMediaSuccessCallback;
|
||||
class NavigatorUserMediaErrorCallback;
|
||||
class MozGetUserMediaDevicesSuccessCallback;
|
||||
#endif // MOZ_MEDIA_NAVIGATOR
|
||||
|
||||
namespace network {
|
||||
class Connection;
|
||||
@ -294,7 +292,6 @@ public:
|
||||
const Nullable<ArrayBufferViewOrBlobOrStringOrFormData>& aData,
|
||||
ErrorResult& aRv);
|
||||
|
||||
#ifdef MOZ_MEDIA_NAVIGATOR
|
||||
void MozGetUserMedia(const MediaStreamConstraints& aConstraints,
|
||||
NavigatorUserMediaSuccessCallback& aOnSuccess,
|
||||
NavigatorUserMediaErrorCallback& aOnError,
|
||||
@ -305,18 +302,9 @@ public:
|
||||
uint64_t aInnerWindowID,
|
||||
const nsAString& aCallID,
|
||||
ErrorResult& aRv);
|
||||
#endif // MOZ_MEDIA_NAVIGATOR
|
||||
|
||||
already_AddRefed<ServiceWorkerContainer> ServiceWorker();
|
||||
|
||||
bool DoResolve(JSContext* aCx, JS::Handle<JSObject*> aObject,
|
||||
JS::Handle<jsid> aId,
|
||||
JS::MutableHandle<JS::PropertyDescriptor> aDesc);
|
||||
// The return value is whether DoResolve might end up resolving the given id.
|
||||
// If in doubt, return true.
|
||||
static bool MayResolve(jsid aId);
|
||||
void GetOwnPropertyNames(JSContext* aCx, nsTArray<nsString>& aNames,
|
||||
ErrorResult& aRv);
|
||||
void GetLanguages(nsTArray<nsString>& aLanguages);
|
||||
|
||||
bool MozE10sEnabled();
|
||||
@ -338,10 +326,8 @@ public:
|
||||
#ifdef MOZ_NFC
|
||||
static bool HasNFCSupport(JSContext* /* unused */, JSObject* aGlobal);
|
||||
#endif // MOZ_NFC
|
||||
#ifdef MOZ_MEDIA_NAVIGATOR
|
||||
static bool HasUserMediaSupport(JSContext* /* unused */,
|
||||
JSObject* /* unused */);
|
||||
#endif // MOZ_MEDIA_NAVIGATOR
|
||||
|
||||
static bool HasDataStoreSupport(nsIPrincipal* aPrincipal);
|
||||
|
||||
@ -422,13 +408,6 @@ private:
|
||||
RefPtr<DeviceStorageAreaListener> mDeviceStorageAreaListener;
|
||||
RefPtr<Presentation> mPresentation;
|
||||
|
||||
// Hashtable for saving cached objects DoResolve created, so we don't create
|
||||
// the object twice if asked for it twice, whether due to use of "delete" or
|
||||
// due to Xrays. We could probably use a nsJSThingHashtable here, but then
|
||||
// we'd need to figure out exactly how to trace that, and that seems to be
|
||||
// rocket science. :(
|
||||
nsInterfaceHashtable<nsStringHashKey, nsISupports> mCachedResolveResults;
|
||||
|
||||
nsTArray<RefPtr<Promise> > mVRGetDevicesPromises;
|
||||
};
|
||||
|
||||
|
@ -7472,6 +7472,12 @@ nsContentUtils::TransferableToIPCTransferable(nsITransferable* aTransferable,
|
||||
IPCDataTransferItem* item = aIPCDataTransfer->items().AppendElement();
|
||||
item->flavor() = nsCString(flavorStr);
|
||||
item->data() = NS_ConvertUTF8toUTF16(flavorStr);
|
||||
} else if (!data) {
|
||||
// Empty element, transfer only the flavor
|
||||
IPCDataTransferItem* item = aIPCDataTransfer->items().AppendElement();
|
||||
item->flavor() = nsCString(flavorStr);
|
||||
item->data() = EmptyCString();
|
||||
continue;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -255,9 +255,7 @@
|
||||
|
||||
#include "nsISpeculativeConnect.h"
|
||||
|
||||
#ifdef MOZ_MEDIA_NAVIGATOR
|
||||
#include "mozilla/MediaManager.h"
|
||||
#endif // MOZ_MEDIA_NAVIGATOR
|
||||
#ifdef MOZ_WEBRTC
|
||||
#include "IPeerConnection.h"
|
||||
#endif // MOZ_WEBRTC
|
||||
@ -8841,13 +8839,11 @@ nsDocument::CanSavePresentation(nsIRequest *aNewRequest)
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef MOZ_MEDIA_NAVIGATOR
|
||||
// Check if we have active GetUserMedia use
|
||||
if (MediaManager::Exists() && win &&
|
||||
MediaManager::Get()->IsWindowStillActive(win->WindowID())) {
|
||||
return false;
|
||||
}
|
||||
#endif // MOZ_MEDIA_NAVIGATOR
|
||||
|
||||
#ifdef MOZ_WEBRTC
|
||||
// Check if we have active PeerConnections
|
||||
|
@ -758,14 +758,14 @@ protected:
|
||||
JS::AutoIdVector &props) const;
|
||||
};
|
||||
|
||||
const js::Class OuterWindowProxyClass =
|
||||
PROXY_CLASS_WITH_EXT(
|
||||
"Proxy",
|
||||
0, /* additional class flags */
|
||||
PROXY_MAKE_EXT(
|
||||
false, /* isWrappedNative */
|
||||
nsOuterWindowProxy::ObjectMoved
|
||||
));
|
||||
static const js::ClassExtension OuterWindowProxyClassExtension = PROXY_MAKE_EXT(
|
||||
nsOuterWindowProxy::ObjectMoved
|
||||
);
|
||||
|
||||
const js::Class OuterWindowProxyClass = PROXY_CLASS_WITH_EXT(
|
||||
"Proxy",
|
||||
0, /* additional class flags */
|
||||
&OuterWindowProxyClassExtension);
|
||||
|
||||
const char *
|
||||
nsOuterWindowProxy::className(JSContext *cx, JS::Handle<JSObject*> proxy) const
|
||||
@ -4239,13 +4239,7 @@ nsGlobalWindow::MayResolve(jsid aId)
|
||||
nsAutoString name;
|
||||
AssignJSFlatString(name, JSID_TO_FLAT_STRING(aId));
|
||||
|
||||
const nsGlobalNameStruct *name_struct =
|
||||
nameSpaceManager->LookupName(name);
|
||||
|
||||
// LookupName only returns structs for the global.
|
||||
MOZ_ASSERT_IF(name_struct,
|
||||
name_struct->mType != nsGlobalNameStruct::eTypeNavigatorProperty);
|
||||
return name_struct;
|
||||
return nameSpaceManager->LookupName(name);
|
||||
}
|
||||
|
||||
void
|
||||
@ -10291,14 +10285,7 @@ nsGlobalWindow::GetInterface(const nsIID & aIID, void **aSink)
|
||||
NS_ENSURE_ARG_POINTER(aSink);
|
||||
*aSink = nullptr;
|
||||
|
||||
if (aIID.Equals(NS_GET_IID(mozIDOMWindowProxy))) {
|
||||
MOZ_ASSERT(IsInnerWindow());
|
||||
nsGlobalWindow* outer = GetOuterWindowInternal();
|
||||
NS_ENSURE_TRUE(outer, NS_ERROR_NOT_INITIALIZED);
|
||||
|
||||
nsCOMPtr<mozIDOMWindowProxy> proxy = outer->AsOuter();
|
||||
proxy.forget(aSink);
|
||||
} else if (aIID.Equals(NS_GET_IID(nsIDocCharset))) {
|
||||
if (aIID.Equals(NS_GET_IID(nsIDocCharset))) {
|
||||
nsGlobalWindow* outer = GetOuterWindowInternal();
|
||||
NS_ENSURE_TRUE(outer, NS_ERROR_NOT_INITIALIZED);
|
||||
|
||||
|
@ -17,7 +17,4 @@
|
||||
#define JAVASCRIPT_GLOBAL_PRIVILEGED_PROPERTY_CATEGORY \
|
||||
"JavaScript-global-privileged-property"
|
||||
|
||||
#define JAVASCRIPT_NAVIGATOR_PROPERTY_CATEGORY \
|
||||
"JavaScript-navigator-property"
|
||||
|
||||
#endif /* nsIScriptNameSpaceManager_h__ */
|
||||
|
@ -74,7 +74,6 @@ nsPlainTextSerializer::nsPlainTextSerializer()
|
||||
mCiteQuoteLevel = 0;
|
||||
mStructs = true; // will be read from prefs later
|
||||
mHeaderStrategy = 1 /*indent increasingly*/; // ditto
|
||||
mDontWrapAnyQuotes = false; // ditto
|
||||
mHasWrittenCiteBlockquote = false;
|
||||
mSpanLevel = 0;
|
||||
for (int32_t i = 0; i <= 6; i++) {
|
||||
@ -178,15 +177,6 @@ nsPlainTextSerializer::Init(uint32_t aFlags, uint32_t aWrapColumn,
|
||||
|
||||
mHeaderStrategy =
|
||||
Preferences::GetInt(PREF_HEADER_STRATEGY, mHeaderStrategy);
|
||||
|
||||
// DontWrapAnyQuotes is set according to whether plaintext mail
|
||||
// is wrapping to window width -- see bug 134439.
|
||||
// We'll only want this if we're wrapping and formatted.
|
||||
if (mFlags & nsIDocumentEncoder::OutputWrap || mWrapColumn > 0) {
|
||||
mDontWrapAnyQuotes =
|
||||
Preferences::GetBool("mail.compose.wrap_to_window_width",
|
||||
mDontWrapAnyQuotes);
|
||||
}
|
||||
}
|
||||
|
||||
// The pref is default inited to false in libpref, but we use true
|
||||
@ -1588,8 +1578,7 @@ nsPlainTextSerializer::Write(const nsAString& aStr)
|
||||
// that does normal formatted text. The one for preformatted text calls
|
||||
// Output directly while the other code path goes through AddToLine.
|
||||
if ((mPreFormattedMail && !mWrapColumn) || (IsInPre() && !mPreFormattedMail)
|
||||
|| ((mSpanLevel > 0 || mDontWrapAnyQuotes)
|
||||
&& mEmptyLines >= 0 && str.First() == char16_t('>'))) {
|
||||
|| (mSpanLevel > 0 && mEmptyLines >= 0 && str.First() == char16_t('>'))) {
|
||||
// No intelligent wrapping.
|
||||
|
||||
// This mustn't be mixed with intelligent wrapping without clearing
|
||||
|
@ -128,15 +128,6 @@ private:
|
||||
uint32_t mHeadLevel;
|
||||
bool mAtFirstColumn;
|
||||
|
||||
// Handling of quoted text (for mail):
|
||||
// Quotes need to be wrapped differently from non-quoted text,
|
||||
// because quoted text has a few extra characters (e.g. ">> ")
|
||||
// which makes the line length longer.
|
||||
// Mail can represent quotes in different ways:
|
||||
// Not wrapped in any special tag (if mail.compose.wrap_to_window_width)
|
||||
// or in a <span>.
|
||||
bool mDontWrapAnyQuotes; // no special quote markers
|
||||
|
||||
bool mStructs; // Output structs (pref)
|
||||
|
||||
// If we've just written out a cite blockquote, we need to remember it
|
||||
|
@ -100,8 +100,6 @@ static const PLDHashTableOps hash_table_ops =
|
||||
nsScriptNameSpaceManager::nsScriptNameSpaceManager()
|
||||
: mGlobalNames(&hash_table_ops, sizeof(GlobalNameMapEntry),
|
||||
GLOBALNAME_HASHTABLE_INITIAL_LENGTH)
|
||||
, mNavigatorNames(&hash_table_ops, sizeof(GlobalNameMapEntry),
|
||||
GLOBALNAME_HASHTABLE_INITIAL_LENGTH)
|
||||
{
|
||||
MOZ_COUNT_CTOR(nsScriptNameSpaceManager);
|
||||
}
|
||||
@ -113,10 +111,10 @@ nsScriptNameSpaceManager::~nsScriptNameSpaceManager()
|
||||
}
|
||||
|
||||
nsGlobalNameStruct *
|
||||
nsScriptNameSpaceManager::AddToHash(PLDHashTable *aTable, const nsAString *aKey,
|
||||
nsScriptNameSpaceManager::AddToHash(const nsAString *aKey,
|
||||
const char16_t **aClassName)
|
||||
{
|
||||
auto entry = static_cast<GlobalNameMapEntry*>(aTable->Add(aKey, fallible));
|
||||
auto entry = static_cast<GlobalNameMapEntry*>(mGlobalNames.Add(aKey, fallible));
|
||||
if (!entry) {
|
||||
return nullptr;
|
||||
}
|
||||
@ -129,10 +127,9 @@ nsScriptNameSpaceManager::AddToHash(PLDHashTable *aTable, const nsAString *aKey,
|
||||
}
|
||||
|
||||
void
|
||||
nsScriptNameSpaceManager::RemoveFromHash(PLDHashTable *aTable,
|
||||
const nsAString *aKey)
|
||||
nsScriptNameSpaceManager::RemoveFromHash(const nsAString *aKey)
|
||||
{
|
||||
aTable->Remove(aKey);
|
||||
mGlobalNames.Remove(aKey);
|
||||
}
|
||||
|
||||
nsresult
|
||||
@ -176,9 +173,6 @@ nsScriptNameSpaceManager::Init()
|
||||
rv = FillHash(cm, JAVASCRIPT_GLOBAL_PRIVILEGED_PROPERTY_CATEGORY);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
rv = FillHash(cm, JAVASCRIPT_NAVIGATOR_PROPERTY_CATEGORY);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
// Initial filling of the has table has been done.
|
||||
// Now, listen for changes.
|
||||
nsCOMPtr<nsIObserverService> serv =
|
||||
@ -192,9 +186,9 @@ nsScriptNameSpaceManager::Init()
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
nsGlobalNameStruct*
|
||||
nsScriptNameSpaceManager::LookupNameInternal(const nsAString& aName,
|
||||
const char16_t **aClassName)
|
||||
const nsGlobalNameStruct*
|
||||
nsScriptNameSpaceManager::LookupName(const nsAString& aName,
|
||||
const char16_t **aClassName)
|
||||
{
|
||||
auto entry = static_cast<GlobalNameMapEntry*>(mGlobalNames.Search(&aName));
|
||||
|
||||
@ -211,14 +205,6 @@ nsScriptNameSpaceManager::LookupNameInternal(const nsAString& aName,
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
const nsGlobalNameStruct*
|
||||
nsScriptNameSpaceManager::LookupNavigatorName(const nsAString& aName)
|
||||
{
|
||||
auto entry = static_cast<GlobalNameMapEntry*>(mNavigatorNames.Search(&aName));
|
||||
|
||||
return entry ? &entry->mGlobalName : nullptr;
|
||||
}
|
||||
|
||||
nsresult
|
||||
nsScriptNameSpaceManager::RegisterClassName(const char *aClassName,
|
||||
int32_t aDOMClassInfoID,
|
||||
@ -230,7 +216,7 @@ nsScriptNameSpaceManager::RegisterClassName(const char *aClassName,
|
||||
NS_ERROR("Trying to register a non-ASCII class name");
|
||||
return NS_OK;
|
||||
}
|
||||
nsGlobalNameStruct *s = AddToHash(&mGlobalNames, aClassName, aResult);
|
||||
nsGlobalNameStruct *s = AddToHash(aClassName, aResult);
|
||||
NS_ENSURE_TRUE(s, NS_ERROR_OUT_OF_MEMORY);
|
||||
|
||||
if (s->mType == nsGlobalNameStruct::eTypeClassConstructor) {
|
||||
@ -265,7 +251,7 @@ nsScriptNameSpaceManager::RegisterClassProto(const char *aClassName,
|
||||
|
||||
*aFoundOld = false;
|
||||
|
||||
nsGlobalNameStruct *s = AddToHash(&mGlobalNames, aClassName);
|
||||
nsGlobalNameStruct *s = AddToHash(aClassName);
|
||||
NS_ENSURE_TRUE(s, NS_ERROR_OUT_OF_MEMORY);
|
||||
|
||||
if (s->mType != nsGlobalNameStruct::eTypeNotInitialized &&
|
||||
@ -298,8 +284,6 @@ nsScriptNameSpaceManager::OperateCategoryEntryHash(nsICategoryManager* aCategory
|
||||
} else if (strcmp(aCategory, JAVASCRIPT_GLOBAL_PROPERTY_CATEGORY) == 0 ||
|
||||
strcmp(aCategory, JAVASCRIPT_GLOBAL_PRIVILEGED_PROPERTY_CATEGORY) == 0) {
|
||||
type = nsGlobalNameStruct::eTypeProperty;
|
||||
} else if (strcmp(aCategory, JAVASCRIPT_NAVIGATOR_PROPERTY_CATEGORY) == 0) {
|
||||
type = nsGlobalNameStruct::eTypeNavigatorProperty;
|
||||
} else {
|
||||
return NS_OK;
|
||||
}
|
||||
@ -315,28 +299,19 @@ nsScriptNameSpaceManager::OperateCategoryEntryHash(nsICategoryManager* aCategory
|
||||
nsresult rv = strWrapper->GetData(categoryEntry);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
PLDHashTable *table;
|
||||
if (type == nsGlobalNameStruct::eTypeNavigatorProperty) {
|
||||
table = &mNavigatorNames;
|
||||
} else {
|
||||
table = &mGlobalNames;
|
||||
}
|
||||
|
||||
// We need to handle removal before calling GetCategoryEntry
|
||||
// because the category entry is already removed before we are
|
||||
// notified.
|
||||
if (aRemove) {
|
||||
NS_ConvertASCIItoUTF16 entry(categoryEntry);
|
||||
const nsGlobalNameStruct *s =
|
||||
type == nsGlobalNameStruct::eTypeNavigatorProperty ?
|
||||
LookupNavigatorName(entry) : LookupNameInternal(entry);
|
||||
const nsGlobalNameStruct *s = LookupName(entry);
|
||||
// Verify mType so that this API doesn't remove names
|
||||
// registered by others.
|
||||
if (!s || s->mType != type) {
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
RemoveFromHash(table, &entry);
|
||||
RemoveFromHash(&entry);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
@ -345,11 +320,8 @@ nsScriptNameSpaceManager::OperateCategoryEntryHash(nsICategoryManager* aCategory
|
||||
getter_Copies(contractId));
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
if (type == nsGlobalNameStruct::eTypeNavigatorProperty ||
|
||||
type == nsGlobalNameStruct::eTypeExternalConstructor) {
|
||||
bool isNavProperty = type == nsGlobalNameStruct::eTypeNavigatorProperty;
|
||||
nsPrintfCString prefName("dom.%s.disable.%s",
|
||||
isNavProperty ? "navigator-property" : "global-constructor",
|
||||
if (type == nsGlobalNameStruct::eTypeExternalConstructor) {
|
||||
nsPrintfCString prefName("dom.global-constructor.disable.%s",
|
||||
categoryEntry.get());
|
||||
if (Preferences::GetType(prefName.get()) == nsIPrefBranch::PREF_BOOL &&
|
||||
Preferences::GetBool(prefName.get(), false)) {
|
||||
@ -374,7 +346,7 @@ nsScriptNameSpaceManager::OperateCategoryEntryHash(nsICategoryManager* aCategory
|
||||
nsCID cid = *cidPtr;
|
||||
free(cidPtr);
|
||||
|
||||
nsGlobalNameStruct *s = AddToHash(table, categoryEntry.get());
|
||||
nsGlobalNameStruct *s = AddToHash(categoryEntry.get());
|
||||
NS_ENSURE_TRUE(s, NS_ERROR_OUT_OF_MEMORY);
|
||||
|
||||
if (s->mType == nsGlobalNameStruct::eTypeNotInitialized ||
|
||||
@ -447,7 +419,7 @@ nsScriptNameSpaceManager::RegisterDefineDOMInterface(const nsAFlatString& aName,
|
||||
mozilla::dom::DefineInterface aDefineDOMInterface,
|
||||
mozilla::dom::ConstructorEnabled* aConstructorEnabled)
|
||||
{
|
||||
nsGlobalNameStruct *s = AddToHash(&mGlobalNames, &aName);
|
||||
nsGlobalNameStruct *s = AddToHash(&aName);
|
||||
if (s) {
|
||||
if (s->mType == nsGlobalNameStruct::eTypeNotInitialized) {
|
||||
s->mType = nsGlobalNameStruct::eTypeNewDOMBinding;
|
||||
@ -457,22 +429,6 @@ nsScriptNameSpaceManager::RegisterDefineDOMInterface(const nsAFlatString& aName,
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
nsScriptNameSpaceManager::RegisterNavigatorDOMConstructor(
|
||||
const nsAFlatString& aName,
|
||||
mozilla::dom::ConstructNavigatorProperty aNavConstructor,
|
||||
mozilla::dom::ConstructorEnabled* aConstructorEnabled)
|
||||
{
|
||||
nsGlobalNameStruct *s = AddToHash(&mNavigatorNames, &aName);
|
||||
if (s) {
|
||||
if (s->mType == nsGlobalNameStruct::eTypeNotInitialized) {
|
||||
s->mType = nsGlobalNameStruct::eTypeNewDOMBinding;
|
||||
}
|
||||
s->mConstructNavigatorProperty = aNavConstructor;
|
||||
s->mConstructorEnabled = aConstructorEnabled;
|
||||
}
|
||||
}
|
||||
|
||||
MOZ_DEFINE_MALLOC_SIZE_OF(ScriptNameSpaceManagerMallocSizeOf)
|
||||
|
||||
NS_IMETHODIMP
|
||||
@ -497,11 +453,5 @@ nsScriptNameSpaceManager::SizeOfIncludingThis(
|
||||
n += entry->SizeOfExcludingThis(aMallocSizeOf);
|
||||
}
|
||||
|
||||
n += mNavigatorNames.ShallowSizeOfExcludingThis(aMallocSizeOf);
|
||||
for (auto iter = mNavigatorNames.ConstIter(); !iter.Done(); iter.Next()) {
|
||||
auto entry = static_cast<GlobalNameMapEntry*>(iter.Get());
|
||||
n += entry->SizeOfExcludingThis(aMallocSizeOf);
|
||||
}
|
||||
|
||||
return n;
|
||||
}
|
||||
|
@ -40,7 +40,6 @@ struct nsGlobalNameStruct
|
||||
eTypeNotInitialized,
|
||||
eTypeNewDOMBinding,
|
||||
eTypeProperty,
|
||||
eTypeNavigatorProperty,
|
||||
eTypeExternalConstructor,
|
||||
eTypeClassConstructor,
|
||||
eTypeClassProto,
|
||||
@ -59,10 +58,8 @@ struct nsGlobalNameStruct
|
||||
};
|
||||
|
||||
// For new style DOM bindings.
|
||||
union {
|
||||
mozilla::dom::DefineInterface mDefineDOMInterface; // for window
|
||||
mozilla::dom::ConstructNavigatorProperty mConstructNavigatorProperty; // for navigator
|
||||
};
|
||||
mozilla::dom::DefineInterface mDefineDOMInterface;
|
||||
|
||||
// May be null if enabled unconditionally
|
||||
mozilla::dom::ConstructorEnabled* mConstructorEnabled;
|
||||
};
|
||||
@ -103,16 +100,7 @@ public:
|
||||
// It also returns a pointer to the string buffer of the classname
|
||||
// in the nsGlobalNameStruct.
|
||||
const nsGlobalNameStruct* LookupName(const nsAString& aName,
|
||||
const char16_t **aClassName = nullptr)
|
||||
{
|
||||
return LookupNameInternal(aName, aClassName);
|
||||
}
|
||||
|
||||
// Returns a nsGlobalNameStruct for the navigator property aName, or
|
||||
// null if one is not found. The returned nsGlobalNameStruct is only
|
||||
// guaranteed to be valid until the next call to any of the methods
|
||||
// in this class.
|
||||
const nsGlobalNameStruct* LookupNavigatorName(const nsAString& aName);
|
||||
const char16_t **aClassName = nullptr);
|
||||
|
||||
nsresult RegisterClassName(const char *aClassName,
|
||||
int32_t aDOMClassInfoID,
|
||||
@ -137,19 +125,6 @@ public:
|
||||
aConstructorEnabled);
|
||||
}
|
||||
|
||||
void RegisterNavigatorDOMConstructor(const nsAFlatString& aName,
|
||||
mozilla::dom::ConstructNavigatorProperty aNavConstructor,
|
||||
mozilla::dom::ConstructorEnabled* aConstructorEnabled);
|
||||
template<size_t N>
|
||||
void RegisterNavigatorDOMConstructor(const char16_t (&aKey)[N],
|
||||
mozilla::dom::ConstructNavigatorProperty aNavConstructor,
|
||||
mozilla::dom::ConstructorEnabled* aConstructorEnabled)
|
||||
{
|
||||
nsLiteralString key(aKey);
|
||||
return RegisterNavigatorDOMConstructor(key, aNavConstructor,
|
||||
aConstructorEnabled);
|
||||
}
|
||||
|
||||
class NameIterator : public PLDHashTable::Iterator
|
||||
{
|
||||
public:
|
||||
@ -170,7 +145,6 @@ public:
|
||||
};
|
||||
|
||||
NameIterator GlobalNameIter() { return NameIterator(&mGlobalNames); }
|
||||
NameIterator NavigatorNameIter() { return NameIterator(&mNavigatorNames); }
|
||||
|
||||
size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const;
|
||||
|
||||
@ -181,16 +155,16 @@ private:
|
||||
// that aKey will be mapped to. If mType in the returned
|
||||
// nsGlobalNameStruct is != eTypeNotInitialized, an entry for aKey
|
||||
// already existed.
|
||||
nsGlobalNameStruct *AddToHash(PLDHashTable *aTable, const nsAString *aKey,
|
||||
nsGlobalNameStruct *AddToHash(const nsAString *aKey,
|
||||
const char16_t **aClassName = nullptr);
|
||||
nsGlobalNameStruct *AddToHash(PLDHashTable *aTable, const char *aKey,
|
||||
nsGlobalNameStruct *AddToHash(const char *aKey,
|
||||
const char16_t **aClassName = nullptr)
|
||||
{
|
||||
NS_ConvertASCIItoUTF16 key(aKey);
|
||||
return AddToHash(aTable, &key, aClassName);
|
||||
return AddToHash(&key, aClassName);
|
||||
}
|
||||
// Removes an existing entry from the hash.
|
||||
void RemoveFromHash(PLDHashTable *aTable, const nsAString *aKey);
|
||||
void RemoveFromHash(const nsAString *aKey);
|
||||
|
||||
nsresult FillHash(nsICategoryManager *aCategoryManager,
|
||||
const char *aCategory);
|
||||
@ -229,11 +203,7 @@ private:
|
||||
nsISupports* aEntry,
|
||||
bool aRemove);
|
||||
|
||||
nsGlobalNameStruct* LookupNameInternal(const nsAString& aName,
|
||||
const char16_t **aClassName = nullptr);
|
||||
|
||||
PLDHashTable mGlobalNames;
|
||||
PLDHashTable mNavigatorNames;
|
||||
};
|
||||
|
||||
#endif /* nsScriptNameSpaceManager_h__ */
|
||||
|
@ -203,7 +203,6 @@ nsIAtom** const kAttributesHTML[] = {
|
||||
&nsGkAtoms::media,
|
||||
&nsGkAtoms::method,
|
||||
&nsGkAtoms::min,
|
||||
&nsGkAtoms::mozdonotsend,
|
||||
&nsGkAtoms::multiple,
|
||||
&nsGkAtoms::muted,
|
||||
&nsGkAtoms::name,
|
||||
|
@ -122,7 +122,7 @@ function testCopyPaste (isXHTML) {
|
||||
function testPasteHTML(id, expected) {
|
||||
var contentEditable = $(id);
|
||||
contentEditable.focus();
|
||||
synthesizeKey("v", {accelKey: 1});
|
||||
synthesizeKey("v", {accelKey: true});
|
||||
is(contentEditable.innerHTML, expected, id+".innerHtml after the paste");
|
||||
}
|
||||
function testSelectionToString(expected) {
|
||||
|
@ -440,6 +440,11 @@ class CGDOMJSClass(CGThing):
|
||||
|
||||
return fill(
|
||||
"""
|
||||
static const js::ClassExtension sClassExtension = {
|
||||
nullptr, /* weakmapKeyDelegateOp */
|
||||
${objectMoved} /* objectMovedOp */
|
||||
};
|
||||
|
||||
static const DOMJSClass sClass = {
|
||||
{ "${name}",
|
||||
${flags},
|
||||
@ -456,11 +461,7 @@ class CGDOMJSClass(CGThing):
|
||||
nullptr, /* construct */
|
||||
${trace}, /* trace */
|
||||
JS_NULL_CLASS_SPEC,
|
||||
{
|
||||
false, /* isWrappedNative */
|
||||
nullptr, /* weakmapKeyDelegateOp */
|
||||
${objectMoved} /* objectMovedOp */
|
||||
},
|
||||
&sClassExtension,
|
||||
JS_NULL_OBJECT_OPS
|
||||
},
|
||||
$*{descriptor}
|
||||
@ -507,11 +508,14 @@ class CGDOMProxyJSClass(CGThing):
|
||||
objectMovedHook = OBJECT_MOVED_HOOK_NAME if self.descriptor.wrapperCache else 'nullptr'
|
||||
return fill(
|
||||
"""
|
||||
static const js::ClassExtension sClassExtension = PROXY_MAKE_EXT(
|
||||
${objectMoved}
|
||||
);
|
||||
|
||||
static const DOMJSClass sClass = {
|
||||
PROXY_CLASS_WITH_EXT("${name}",
|
||||
${flags},
|
||||
PROXY_MAKE_EXT(false, /* isWrappedNative */
|
||||
${objectMoved})),
|
||||
&sClassExtension),
|
||||
$*{descriptor}
|
||||
};
|
||||
""",
|
||||
@ -1659,57 +1663,31 @@ class CGClassConstructor(CGAbstractStaticMethod):
|
||||
|
||||
|
||||
# Encapsulate the constructor in a helper method to share genConstructorBody with CGJSImplMethod.
|
||||
class CGConstructNavigatorObjectHelper(CGAbstractStaticMethod):
|
||||
class CGConstructNavigatorObject(CGAbstractMethod):
|
||||
"""
|
||||
Construct a new JS-implemented WebIDL DOM object, for use on navigator.
|
||||
"""
|
||||
def __init__(self, descriptor):
|
||||
name = "ConstructNavigatorObjectHelper"
|
||||
args = [Argument('JSContext*', 'cx'),
|
||||
Argument('GlobalObject&', 'global'),
|
||||
Argument('JS::Handle<JSObject*>', 'obj'),
|
||||
Argument('ErrorResult&', 'aRv')]
|
||||
rtype = 'already_AddRefed<%s>' % descriptor.name
|
||||
CGAbstractStaticMethod.__init__(self, descriptor, name, rtype, args)
|
||||
|
||||
def definition_body(self):
|
||||
return genConstructorBody(self.descriptor)
|
||||
|
||||
|
||||
class CGConstructNavigatorObject(CGAbstractMethod):
|
||||
"""
|
||||
Wrap a JS-implemented WebIDL object into a JS value, for use on navigator.
|
||||
"""
|
||||
def __init__(self, descriptor):
|
||||
name = 'ConstructNavigatorObject'
|
||||
args = [Argument('JSContext*', 'aCx'), Argument('JS::Handle<JSObject*>', 'aObj')]
|
||||
CGAbstractMethod.__init__(self, descriptor, name, 'JSObject*', args)
|
||||
CGAbstractMethod.__init__(self, descriptor, "ConstructNavigatorObject",
|
||||
rtype, args)
|
||||
|
||||
def definition_body(self):
|
||||
if not self.descriptor.interface.isJSImplemented():
|
||||
raise TypeError("Only JS-implemented classes are currently supported "
|
||||
"on navigator. See bug 856820.")
|
||||
return fill(
|
||||
|
||||
return dedent(
|
||||
"""
|
||||
GlobalObject global(aCx, aObj);
|
||||
GlobalObject global(cx, obj);
|
||||
if (global.Failed()) {
|
||||
aRv.Throw(NS_ERROR_FAILURE);
|
||||
return nullptr;
|
||||
}
|
||||
ErrorResult rv;
|
||||
JS::Rooted<JS::Value> v(aCx);
|
||||
{ // Scope to make sure |result| goes out of scope while |v| is rooted
|
||||
RefPtr<mozilla::dom::${descriptorName}> result = ConstructNavigatorObjectHelper(aCx, global, rv);
|
||||
if (rv.MaybeSetPendingException(aCx)) {
|
||||
return nullptr;
|
||||
}
|
||||
if (!GetOrCreateDOMReflector(aCx, result, &v)) {
|
||||
//XXX Assertion disabled for now, see bug 991271.
|
||||
MOZ_ASSERT(true || JS_IsExceptionPending(aCx));
|
||||
return nullptr;
|
||||
}
|
||||
}
|
||||
return &v.toObject();
|
||||
""",
|
||||
descriptorName=self.descriptor.name)
|
||||
""") + genConstructorBody(self.descriptor)
|
||||
|
||||
|
||||
class CGClassConstructHookHolder(CGGeneric):
|
||||
@ -2497,6 +2475,9 @@ def IsCrossOriginWritable(attr, descriptor):
|
||||
len(crossOriginWritable) == 1)
|
||||
return crossOriginWritable[0] == descriptor.interface.identifier.name
|
||||
|
||||
def isNonExposedNavigatorObjectGetter(attr, descriptor):
|
||||
return (attr.navigatorObjectGetter and
|
||||
not descriptor.getDescriptor(attr.type.inner.identifier.name).register)
|
||||
|
||||
class AttrDefiner(PropertyDefiner):
|
||||
def __init__(self, descriptor, name, static, unforgeable=False):
|
||||
@ -2508,7 +2489,8 @@ class AttrDefiner(PropertyDefiner):
|
||||
attributes = [m for m in descriptor.interface.members if
|
||||
m.isAttr() and m.isStatic() == static and
|
||||
MemberIsUnforgeable(m, descriptor) == unforgeable and
|
||||
isMaybeExposedIn(m, descriptor)]
|
||||
isMaybeExposedIn(m, descriptor) and
|
||||
not isNonExposedNavigatorObjectGetter(m, descriptor)]
|
||||
else:
|
||||
attributes = []
|
||||
self.chrome = [m for m in attributes if isChromeOnly(m)]
|
||||
@ -7119,7 +7101,9 @@ class CGPerSignatureCall(CGThing):
|
||||
IDLType if there's an IDL type involved (including |void|).
|
||||
2) An argument list, which is allowed to be empty.
|
||||
3) A name of a native method to call.
|
||||
4) Whether or not this method is static.
|
||||
4) Whether or not this method is static. Note that this only controls how
|
||||
the method is called (|self->nativeMethodName(...)| vs
|
||||
|nativeMethodName(...)|).
|
||||
|
||||
We also need to know whether this is a method or a getter/setter
|
||||
to do error reporting correctly.
|
||||
@ -7171,7 +7155,7 @@ class CGPerSignatureCall(CGThing):
|
||||
""")))
|
||||
|
||||
deprecated = (idlNode.getExtendedAttribute("Deprecated") or
|
||||
(static and descriptor.interface.getExtendedAttribute("Deprecated")))
|
||||
(idlNode.isStatic() and descriptor.interface.getExtendedAttribute("Deprecated")))
|
||||
if deprecated:
|
||||
cgThings.append(CGGeneric(dedent(
|
||||
"""
|
||||
@ -7187,12 +7171,7 @@ class CGPerSignatureCall(CGThing):
|
||||
"return true;\n")
|
||||
|
||||
argsPre = []
|
||||
if static:
|
||||
nativeType = descriptor.nativeType
|
||||
staticTypeOverride = PropertyDefiner.getStringAttr(idlNode, "StaticClassOverride")
|
||||
if (staticTypeOverride):
|
||||
nativeType = staticTypeOverride
|
||||
nativeMethodName = "%s::%s" % (nativeType, nativeMethodName)
|
||||
if idlNode.isStatic():
|
||||
# If we're a constructor, "obj" may not be a function, so calling
|
||||
# XrayAwareCalleeGlobal() on it is not safe. Of course in the
|
||||
# constructor case either "obj" is an Xray or we're already in the
|
||||
@ -7223,7 +7202,7 @@ class CGPerSignatureCall(CGThing):
|
||||
argsPre.append("cx")
|
||||
|
||||
# Hack for making Promise.prototype.then work well over Xrays.
|
||||
if (not static and
|
||||
if (not idlNode.isStatic() and
|
||||
descriptor.name == "Promise" and
|
||||
idlNode.isMethod() and
|
||||
idlNode.identifier.name == "then"):
|
||||
@ -7286,7 +7265,7 @@ class CGPerSignatureCall(CGThing):
|
||||
needsUnwrappedVar = True
|
||||
argsPre.append("unwrappedObj ? *unwrappedObj : obj")
|
||||
|
||||
if static and not isConstructor and descriptor.name == "Promise":
|
||||
if idlNode.isStatic() and not isConstructor and descriptor.name == "Promise":
|
||||
# Hack for Promise for now: pass in the "this" value to
|
||||
# Promise static methods.
|
||||
argsPre.append("args.thisv()")
|
||||
@ -7390,7 +7369,8 @@ class CGPerSignatureCall(CGThing):
|
||||
cgThings.append(CGCallGenerator(
|
||||
self.isFallible(),
|
||||
self.getArguments(), argsPre, returnType,
|
||||
self.extendedAttributes, descriptor, nativeMethodName,
|
||||
self.extendedAttributes, descriptor,
|
||||
nativeMethodName,
|
||||
static, argsPost=argsPost, resultVar=resultVar))
|
||||
|
||||
if useCounterName:
|
||||
@ -7564,6 +7544,13 @@ class CGMethodCall(CGThing):
|
||||
else:
|
||||
useCounterName = None
|
||||
|
||||
if method.isStatic():
|
||||
nativeType = descriptor.nativeType
|
||||
staticTypeOverride = PropertyDefiner.getStringAttr(method, "StaticClassOverride")
|
||||
if (staticTypeOverride):
|
||||
nativeType = staticTypeOverride
|
||||
nativeMethodName = "%s::%s" % (nativeType, nativeMethodName)
|
||||
|
||||
def requiredArgCount(signature):
|
||||
arguments = signature[1]
|
||||
if len(arguments) == 0:
|
||||
@ -7989,11 +7976,27 @@ class CGGetterCall(CGPerSignatureCall):
|
||||
attr.identifier.name)
|
||||
else:
|
||||
useCounterName = None
|
||||
if attr.isStatic():
|
||||
nativeMethodName = "%s::%s" % (descriptor.nativeType, nativeMethodName)
|
||||
CGPerSignatureCall.__init__(self, returnType, [], nativeMethodName,
|
||||
attr.isStatic(), descriptor, attr,
|
||||
getter=True, useCounterName=useCounterName)
|
||||
|
||||
|
||||
class CGNavigatorGetterCall(CGPerSignatureCall):
|
||||
"""
|
||||
A class to generate a native object getter call for an IDL getter for a
|
||||
property generated by NavigatorProperty.
|
||||
"""
|
||||
def __init__(self, returnType, _, descriptor, attr):
|
||||
nativeMethodName = "%s::ConstructNavigatorObject" % (toBindingNamespace(returnType.inner.identifier.name))
|
||||
CGPerSignatureCall.__init__(self, returnType, [], nativeMethodName,
|
||||
True, descriptor, attr, getter=True)
|
||||
|
||||
def getArguments(self):
|
||||
return [(FakeArgument(BuiltinTypes[IDLBuiltinType.Types.object], self.idlNode), "reflector")]
|
||||
|
||||
|
||||
class FakeIdentifier():
|
||||
def __init__(self, name):
|
||||
self.name = name
|
||||
@ -8043,6 +8046,8 @@ class CGSetterCall(CGPerSignatureCall):
|
||||
attr.identifier.name)
|
||||
else:
|
||||
useCounterName = None
|
||||
if attr.isStatic():
|
||||
nativeMethodName = "%s::%s" % (descriptor.nativeType, nativeMethodName)
|
||||
CGPerSignatureCall.__init__(self, None,
|
||||
[FakeArgument(argType, attr, allowTreatNonCallableAsNull=True)],
|
||||
nativeMethodName, attr.isStatic(),
|
||||
@ -8628,8 +8633,12 @@ class CGSpecializedGetter(CGAbstractStaticMethod):
|
||||
else:
|
||||
prefix = ""
|
||||
|
||||
if self.attr.navigatorObjectGetter:
|
||||
cgGetterCall = CGNavigatorGetterCall
|
||||
else:
|
||||
cgGetterCall = CGGetterCall
|
||||
return (prefix +
|
||||
CGGetterCall(self.attr.type, nativeName,
|
||||
cgGetterCall(self.attr.type, nativeName,
|
||||
self.descriptor, self.attr).define())
|
||||
|
||||
@staticmethod
|
||||
@ -11889,6 +11898,8 @@ class CGDescriptor(CGThing):
|
||||
assert descriptor.interface.hasInterfaceObject()
|
||||
cgThings.append(CGStaticGetter(descriptor, m))
|
||||
elif descriptor.interface.hasInterfacePrototypeObject():
|
||||
if isNonExposedNavigatorObjectGetter(m, descriptor):
|
||||
continue
|
||||
cgThings.append(CGSpecializedGetter(descriptor, m))
|
||||
if props.isCrossOriginGetter:
|
||||
crossOriginGetters.add(m.identifier.name)
|
||||
@ -11944,8 +11955,7 @@ class CGDescriptor(CGThing):
|
||||
cgThings.append(CGGenericSetter(descriptor,
|
||||
allowCrossOriginThis=True))
|
||||
|
||||
if descriptor.interface.getNavigatorProperty():
|
||||
cgThings.append(CGConstructNavigatorObjectHelper(descriptor))
|
||||
if descriptor.interface.isNavigatorProperty():
|
||||
cgThings.append(CGConstructNavigatorObject(descriptor))
|
||||
|
||||
if descriptor.concrete and not descriptor.proxy:
|
||||
@ -12016,7 +12026,7 @@ class CGDescriptor(CGThing):
|
||||
if descriptor.interface.hasInterfaceObject():
|
||||
cgThings.append(CGDefineDOMInterfaceMethod(descriptor))
|
||||
|
||||
if ((descriptor.interface.hasInterfaceObject() or descriptor.interface.getNavigatorProperty()) and
|
||||
if ((descriptor.interface.hasInterfaceObject() or descriptor.interface.isNavigatorProperty()) and
|
||||
not descriptor.interface.isExternal() and
|
||||
descriptor.isExposedConditionally()):
|
||||
cgThings.append(CGConstructorEnabled(descriptor))
|
||||
@ -13025,15 +13035,12 @@ class CGRegisterProtos(CGAbstractMethod):
|
||||
aNameSpaceManager->RegisterDefineDOMInterface(MOZ_UTF16(#_dom_class), _dom_class##Binding::DefineDOMInterface, _ctor_check);
|
||||
#define REGISTER_CONSTRUCTOR(_dom_constructor, _dom_class, _ctor_check) \\
|
||||
aNameSpaceManager->RegisterDefineDOMInterface(MOZ_UTF16(#_dom_constructor), _dom_class##Binding::DefineDOMInterface, _ctor_check);
|
||||
#define REGISTER_NAVIGATOR_CONSTRUCTOR(_prop, _dom_class, _ctor_check) \\
|
||||
aNameSpaceManager->RegisterNavigatorDOMConstructor(MOZ_UTF16(_prop), _dom_class##Binding::ConstructNavigatorObject, _ctor_check);
|
||||
""")
|
||||
|
||||
def _undefineMacro(self):
|
||||
return dedent("""
|
||||
#undef REGISTER_CONSTRUCTOR
|
||||
#undef REGISTER_PROTO
|
||||
#undef REGISTER_NAVIGATOR_CONSTRUCTOR
|
||||
""")
|
||||
|
||||
def _registerProtos(self):
|
||||
@ -13050,10 +13057,6 @@ class CGRegisterProtos(CGAbstractMethod):
|
||||
lines.append("REGISTER_PROTO(%s, %s);\n" % (desc.name, getCheck(desc)))
|
||||
lines.extend("REGISTER_CONSTRUCTOR(%s, %s, %s);\n" % (n.identifier.name, desc.name, getCheck(desc))
|
||||
for n in desc.interface.namedConstructors)
|
||||
for desc in self.config.getDescriptors(isNavigatorProperty=True, register=True):
|
||||
propName = desc.interface.getNavigatorProperty()
|
||||
assert propName
|
||||
lines.append('REGISTER_NAVIGATOR_CONSTRUCTOR("%s", %s, %s);\n' % (propName, desc.name, getCheck(desc)))
|
||||
return ''.join(lines)
|
||||
|
||||
def indent_body(self, body):
|
||||
|
@ -225,7 +225,7 @@ class Configuration:
|
||||
elif key == 'isJSImplemented':
|
||||
getter = lambda x: x.interface.isJSImplemented()
|
||||
elif key == 'isNavigatorProperty':
|
||||
getter = lambda x: x.interface.getNavigatorProperty() is not None
|
||||
getter = lambda x: x.interface.isNavigatorProperty()
|
||||
elif key == 'isExposedInAnyWorker':
|
||||
getter = lambda x: x.interface.isExposedInAnyWorker()
|
||||
elif key == 'isExposedInWorkerDebugger':
|
||||
@ -585,6 +585,13 @@ class Descriptor(DescriptorProvider):
|
||||
for attribute in ['implicitJSContext']:
|
||||
addExtendedAttribute(attribute, desc.get(attribute, {}))
|
||||
|
||||
if self.interface.identifier.name == 'Navigator':
|
||||
for m in self.interface.members:
|
||||
if m.isAttr() and m.navigatorObjectGetter:
|
||||
# These getters call ConstructNavigatorObject to construct
|
||||
# the value, and ConstructNavigatorObject needs a JSContext.
|
||||
self.extendedAttributes['all'].setdefault(m.identifier.name, []).append('implicitJSContext')
|
||||
|
||||
self._binaryNames = desc.get('binaryNames', {})
|
||||
self._binaryNames.setdefault('__legacycaller', 'LegacyCall')
|
||||
self._binaryNames.setdefault('__stringifier', 'Stringify')
|
||||
@ -637,13 +644,10 @@ class Descriptor(DescriptorProvider):
|
||||
if (self.interface.getExtendedAttribute("CheckAnyPermissions") or
|
||||
self.interface.getExtendedAttribute("CheckAllPermissions") or
|
||||
self.interface.getExtendedAttribute("AvailableIn") == "PrivilegedApps"):
|
||||
if self.interface.getNavigatorProperty():
|
||||
self.featureDetectibleThings.add("Navigator.%s" % self.interface.getNavigatorProperty())
|
||||
else:
|
||||
iface = self.interface.identifier.name
|
||||
self.featureDetectibleThings.add(iface)
|
||||
for m in self.interface.members:
|
||||
self.featureDetectibleThings.add("%s.%s" % (iface, m.identifier.name))
|
||||
iface = self.interface.identifier.name
|
||||
self.featureDetectibleThings.add(iface)
|
||||
for m in self.interface.members:
|
||||
self.featureDetectibleThings.add("%s.%s" % (iface, m.identifier.name))
|
||||
|
||||
for m in self.interface.members:
|
||||
if (m.getExtendedAttribute("CheckAnyPermissions") or
|
||||
|
@ -70,6 +70,11 @@ SimpleGlobal_moved(JSObject *obj, const JSObject *old)
|
||||
globalObject->UpdateWrapper(obj, old);
|
||||
}
|
||||
|
||||
static const js::ClassExtension SimpleGlobalClassExtension = {
|
||||
nullptr,
|
||||
SimpleGlobal_moved
|
||||
};
|
||||
|
||||
const js::Class SimpleGlobalClass = {
|
||||
"",
|
||||
JSCLASS_GLOBAL_FLAGS | JSCLASS_HAS_PRIVATE | JSCLASS_PRIVATE_IS_NSISUPPORTS,
|
||||
@ -85,11 +90,9 @@ const js::Class SimpleGlobalClass = {
|
||||
nullptr,
|
||||
nullptr,
|
||||
JS_GlobalObjectTraceHook,
|
||||
JS_NULL_CLASS_SPEC, {
|
||||
false,
|
||||
nullptr,
|
||||
SimpleGlobal_moved
|
||||
}, JS_NULL_OBJECT_OPS
|
||||
JS_NULL_CLASS_SPEC,
|
||||
&SimpleGlobalClassExtension,
|
||||
JS_NULL_OBJECT_OPS
|
||||
};
|
||||
|
||||
// static
|
||||
|
@ -578,8 +578,8 @@ class IDLExternalInterface(IDLObjectWithIdentifier, IDLExposureMixins):
|
||||
def isProbablyShortLivingObject(self):
|
||||
return False
|
||||
|
||||
def getNavigatorProperty(self):
|
||||
return None
|
||||
def isNavigatorProperty(self):
|
||||
return False
|
||||
|
||||
def _getDependentObjects(self):
|
||||
return set()
|
||||
@ -1240,7 +1240,7 @@ class IDLInterface(IDLObjectWithScope, IDLExposureMixins):
|
||||
# interface object, unless they're navigator properties.
|
||||
if (self.isExposedConditionally() and
|
||||
not self.hasInterfaceObject() and
|
||||
not self.getNavigatorProperty()):
|
||||
not self.isNavigatorProperty()):
|
||||
raise WebIDLError("Interface with no interface object is "
|
||||
"exposed conditionally",
|
||||
[self.location])
|
||||
@ -1586,6 +1586,15 @@ class IDLInterface(IDLObjectWithScope, IDLExposureMixins):
|
||||
current = current.parent
|
||||
return False
|
||||
|
||||
def isNavigatorProperty(self):
|
||||
naviProp = self.getExtendedAttribute("NavigatorProperty")
|
||||
if not naviProp:
|
||||
return False
|
||||
assert len(naviProp) == 1
|
||||
assert isinstance(naviProp, list)
|
||||
assert len(naviProp[0]) != 0
|
||||
return True
|
||||
|
||||
def getNavigatorProperty(self):
|
||||
naviProp = self.getExtendedAttribute("NavigatorProperty")
|
||||
if not naviProp:
|
||||
@ -1593,7 +1602,22 @@ class IDLInterface(IDLObjectWithScope, IDLExposureMixins):
|
||||
assert len(naviProp) == 1
|
||||
assert isinstance(naviProp, list)
|
||||
assert len(naviProp[0]) != 0
|
||||
return naviProp[0]
|
||||
conditionExtendedAttributes = self._extendedAttrDict.viewkeys() & IDLInterface.conditionExtendedAttributes
|
||||
attr = IDLAttribute(self.location,
|
||||
IDLUnresolvedIdentifier(BuiltinLocation("<auto-generated-identifier>"), naviProp[0]),
|
||||
IDLUnresolvedType(self.location, IDLUnresolvedIdentifier(self.location, self.identifier.name)),
|
||||
True,
|
||||
extendedAttrDict={ a: self._extendedAttrDict[a] for a in conditionExtendedAttributes },
|
||||
navigatorObjectGetter=True)
|
||||
attr._exposureGlobalNames = self._exposureGlobalNames
|
||||
# We're abusing Constant a little bit here, because we need Cached. The
|
||||
# getter will create a new object every time, but we're never going to
|
||||
# clear the cached value.
|
||||
extendedAttrs = [ IDLExtendedAttribute(self.location, ("Throws", )),
|
||||
IDLExtendedAttribute(self.location, ("Cached", )),
|
||||
IDLExtendedAttribute(self.location, ("Constant", )) ]
|
||||
attr.addExtendedAttributes(extendedAttrs)
|
||||
return attr
|
||||
|
||||
def hasChildInterfaces(self):
|
||||
return self._hasChildInterfaces
|
||||
@ -1611,13 +1635,11 @@ class IDLInterface(IDLObjectWithScope, IDLExposureMixins):
|
||||
def hasMembersInSlots(self):
|
||||
return self._ownMembersInSlots != 0
|
||||
|
||||
conditionExtendedAttributes = [ "Pref", "ChromeOnly", "Func", "AvailableIn",
|
||||
"CheckAnyPermissions",
|
||||
"CheckAllPermissions" ]
|
||||
def isExposedConditionally(self):
|
||||
return (self.getExtendedAttribute("Pref") or
|
||||
self.getExtendedAttribute("ChromeOnly") or
|
||||
self.getExtendedAttribute("Func") or
|
||||
self.getExtendedAttribute("AvailableIn") or
|
||||
self.getExtendedAttribute("CheckAnyPermissions") or
|
||||
self.getExtendedAttribute("CheckAllPermissions"))
|
||||
return any(self.getExtendedAttribute(a) for a in self.conditionExtendedAttributes)
|
||||
|
||||
|
||||
class IDLDictionary(IDLObjectWithScope):
|
||||
@ -3372,11 +3394,14 @@ class IDLInterfaceMember(IDLObjectWithIdentifier, IDLExposureMixins):
|
||||
AffectsValues = ("Nothing", "Everything")
|
||||
DependsOnValues = ("Nothing", "DOMState", "DeviceState", "Everything")
|
||||
|
||||
def __init__(self, location, identifier, tag):
|
||||
def __init__(self, location, identifier, tag, extendedAttrDict=None):
|
||||
IDLObjectWithIdentifier.__init__(self, location, None, identifier)
|
||||
IDLExposureMixins.__init__(self, location)
|
||||
self.tag = tag
|
||||
self._extendedAttrDict = {}
|
||||
if extendedAttrDict is None:
|
||||
self._extendedAttrDict = {}
|
||||
else:
|
||||
self._extendedAttrDict = extendedAttrDict
|
||||
|
||||
def isMethod(self):
|
||||
return self.tag == IDLInterfaceMember.Tags.Method
|
||||
@ -3860,9 +3885,11 @@ class IDLConst(IDLInterfaceMember):
|
||||
|
||||
class IDLAttribute(IDLInterfaceMember):
|
||||
def __init__(self, location, identifier, type, readonly, inherit=False,
|
||||
static=False, stringifier=False, maplikeOrSetlike=None):
|
||||
static=False, stringifier=False, maplikeOrSetlike=None,
|
||||
extendedAttrDict=None, navigatorObjectGetter=False):
|
||||
IDLInterfaceMember.__init__(self, location, identifier,
|
||||
IDLInterfaceMember.Tags.Attr)
|
||||
IDLInterfaceMember.Tags.Attr,
|
||||
extendedAttrDict=extendedAttrDict)
|
||||
|
||||
assert isinstance(type, IDLType)
|
||||
self.type = type
|
||||
@ -3879,6 +3906,7 @@ class IDLAttribute(IDLInterfaceMember):
|
||||
self.maplikeOrSetlike = maplikeOrSetlike
|
||||
self.dependsOn = "Everything"
|
||||
self.affects = "Everything"
|
||||
self.navigatorObjectGetter = navigatorObjectGetter
|
||||
|
||||
if static and identifier.name == "prototype":
|
||||
raise WebIDLError("The identifier of a static attribute must not be 'prototype'",
|
||||
@ -6595,11 +6623,26 @@ class Parser(Tokenizer):
|
||||
def finish(self):
|
||||
# If we have interfaces that are iterable, create their
|
||||
# iterator interfaces and add them to the productions array.
|
||||
interfaceStatements = [p for p in self._productions if
|
||||
isinstance(p, IDLInterface)]
|
||||
interfaceStatements = []
|
||||
for p in self._productions:
|
||||
if isinstance(p, IDLInterface):
|
||||
interfaceStatements.append(p)
|
||||
if p.identifier.name == "Navigator":
|
||||
navigatorInterface = p
|
||||
|
||||
iterableIteratorIface = None
|
||||
for iface in interfaceStatements:
|
||||
navigatorProperty = iface.getNavigatorProperty()
|
||||
if navigatorProperty:
|
||||
# We're generating a partial interface to add a readonly
|
||||
# property to the Navigator interface for every interface
|
||||
# annotated with NavigatorProperty.
|
||||
partialInterface = IDLPartialInterface(iface.location,
|
||||
IDLUnresolvedIdentifier(iface.location, "Navigator"),
|
||||
[ navigatorProperty ],
|
||||
navigatorInterface)
|
||||
self._productions.append(partialInterface)
|
||||
|
||||
iterable = None
|
||||
# We haven't run finish() on the interface yet, so we don't know
|
||||
# whether our interface is maplike/setlike/iterable or not. This
|
||||
|
@ -15,7 +15,7 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=707564
|
||||
var isnot = parent.isnot;
|
||||
|
||||
addLoadEvent(function() {
|
||||
var props = Object.getOwnPropertyNames(frames[0].navigator);
|
||||
var props = Object.getOwnPropertyNames(Object.getPrototypeOf(frames[0].navigator));
|
||||
isnot(props.indexOf("mozContacts"), -1,
|
||||
"Should enumerate a mozContacts property on navigator");
|
||||
|
||||
|
@ -25,7 +25,7 @@ function test()
|
||||
var nav = document.getElementById("t1").contentWindow.navigator;
|
||||
is(nav.foopy, undefined, "We should have an Xray now");
|
||||
is(nav.wrappedJSObject.foopy, 5, "We should have the right navigator object");
|
||||
var props = Object.getOwnPropertyNames(nav);
|
||||
var props = Object.getOwnPropertyNames(Object.getPrototypeOf(nav));
|
||||
isnot(props.indexOf("mozContacts"), -1,
|
||||
"Should enumerate a mozContacts property on navigator xray");
|
||||
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user