merge mozilla-inbound to mozilla-central

This commit is contained in:
Carsten "Tomcat" Book 2013-12-19 10:28:37 +01:00
Родитель a824197342 8c661b3531
Коммит bdd365c1f1
7 изменённых файлов: 53 добавлений и 38 удалений

Просмотреть файл

@ -226,9 +226,7 @@ EventQueue::CoalesceReorderEvents(AccEvent* aTailEvent)
// If tailEvent contains thisEvent
// then
// if show of tailEvent contains a grand parent of thisEvent
// then assert
// else if hide of tailEvent contains a grand parent of thisEvent
// if show or hide of tailEvent contains a grand parent of thisEvent
// then ignore thisEvent and its show and hide events
// otherwise ignore thisEvent but not its show and hide events
Accessible* thisParent = thisEvent->mAccessible;
@ -237,9 +235,12 @@ EventQueue::CoalesceReorderEvents(AccEvent* aTailEvent)
AccReorderEvent* tailReorder = downcast_accEvent(aTailEvent);
uint32_t eventType = tailReorder->IsShowHideEventTarget(thisParent);
if (eventType == nsIAccessibleEvent::EVENT_SHOW) {
NS_ERROR("Accessible tree was created after it was modified! Huh?");
} else if (eventType == nsIAccessibleEvent::EVENT_HIDE) {
// Sometimes InvalidateChildren() and
// DocAccessible::CacheChildrenInSubtree() can conspire to reparent an
// accessible in this case no need for mutation events. Se bug 883708
// for details.
if (eventType == nsIAccessibleEvent::EVENT_SHOW ||
eventType == nsIAccessibleEvent::EVENT_HIDE) {
AccReorderEvent* thisReorder = downcast_accEvent(thisEvent);
thisReorder->DoNotEmitAll();
} else {

Просмотреть файл

@ -2,6 +2,7 @@
[test_ariadialog.html]
[test_bug852150.xhtml]
[test_bug883708.xhtml]
[test_bug895082.html]
[test_canvas.html]
[test_colorpicker.xul]

Просмотреть файл

@ -0,0 +1,33 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script type="application/javascript"
src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
<script>
function boom()
{
var newSpan = document.createElementNS("http://www.w3.org/1999/xhtml", "span");
c.insertBefore(newSpan, d);
a.style.visibility = "visible";
ok(true, "test didn't crash or assert");
SimpleTest.finish();
}
</script>
</head>
<body onload="boom();">
<a target="_blank"
title="test reparenting accessible subtree when inaccessible element becomes accessible"
href="https://bugzilla.mozilla.org/show_bug.cgi?id=883708">
Mozilla Bug 883708
</a>
<p id="display"></p>
<div id="content" style="display: none"></div>
<pre id="test">
</pre>
<div style="visibility: collapse;" id="a"><div style="float: right; visibility: visible;"><div id="c"><td id="d"></td></div></div></div></body>
</html>

Просмотреть файл

@ -1733,15 +1733,6 @@ RuntimeService::Init()
MAX_WORKERS_PER_DOMAIN);
gMaxWorkersPerDomain = std::max(0, maxPerDomain);
mDetectorName = Preferences::GetLocalizedCString("intl.charset.detector");
nsCOMPtr<nsIPlatformCharset> platformCharset =
do_GetService(NS_PLATFORMCHARSET_CONTRACTID, &rv);
if (NS_SUCCEEDED(rv)) {
rv = platformCharset->GetCharset(kPlatformCharsetSel_PlainTextInFile,
mSystemCharset);
}
rv = InitOSFileConstants();
if (NS_FAILED(rv)) {
return rv;

Просмотреть файл

@ -96,9 +96,6 @@ private:
// Only used on the main thread.
nsCOMPtr<nsITimer> mIdleThreadTimer;
nsCString mDetectorName;
nsCString mSystemCharset;
static JSSettings sDefaultJSSettings;
static bool sDefaultPreferences[WORKERPREF_COUNT];
@ -153,18 +150,6 @@ public:
void
ForgetSharedWorker(WorkerPrivate* aWorkerPrivate);
const nsACString&
GetDetectorName() const
{
return mDetectorName;
}
const nsACString&
GetSystemCharset() const
{
return mSystemCharset;
}
const NavigatorStrings&
GetNavigatorStrings() const
{

Просмотреть файл

@ -7819,10 +7819,13 @@ GetTemplateObjectForNative(JSContext *cx, HandleScript script, jsbytecode *pc,
// done to provide templates to Ion for inlining these natives later on.
if (native == js_Array) {
// Note: the template array won't be used if its length is inaccurately
// computed here. (We allocate here because compilation may occur on a
// separate thread where allocation is impossible.)
size_t count = 0;
if (args.hasDefined(1))
if (args.length() != 1)
count = args.length();
else if (args.hasDefined(0) && args[0].isInt32() && args[0].toInt32() > 0)
else if (args.length() == 1 && args[0].isInt32() && args[0].toInt32() >= 0)
count = args[0].toInt32();
res.set(NewDenseUnallocatedArray(cx, count, nullptr, TenuredObject));
if (!res)

Просмотреть файл

@ -122,8 +122,6 @@ void CacheIOThread::ThreadFunc()
lock.NotifyAll();
static PRIntervalTime const waitTime = PR_MillisecondsToInterval(5000);
do {
loopStart:
// Reset the lowest level now, so that we can detect a new event on
@ -160,14 +158,17 @@ loopStart:
}
if (EventsPending())
goto loopStart;
continue;
lock.Wait(waitTime);
if (mShutdown)
break;
lock.Wait(PR_INTERVAL_NO_TIMEOUT);
if (EventsPending())
goto loopStart;
continue;
} while (!mShutdown);
} while (true);
MOZ_ASSERT(!EventsPending());
} // lock