Merge mozilla-central to Places

This commit is contained in:
Shawn Wilsher 2010-12-14 15:56:41 -08:00
commit a5c05b1e08
65 changed files with 303 additions and 416 deletions

View File

@ -355,6 +355,9 @@ nsRootAccessible::FireAccessibleFocusEvent(nsAccessible* aFocusAccessible,
if (gLastFocusedNode == focusNode && !aForceEvent)
return;
nsDocAccessible* focusDocument = focusAccessible->GetDocAccessible();
NS_ASSERTION(focusDocument, "No document while accessible is in document?!");
gLastFocusedAccessiblesState = nsAccUtils::State(focusAccessible);
// Fire menu start/end events for ARIA menus.
@ -373,7 +376,7 @@ nsRootAccessible::FireAccessibleFocusEvent(nsAccessible* aFocusAccessible,
menuBarAccessible, aIsFromUserInput,
AccEvent::eAllowDupes);
if (menuStartEvent)
FireDelayedAccessibleEvent(menuStartEvent);
focusDocument->FireDelayedAccessibleEvent(menuStartEvent);
}
}
}
@ -384,7 +387,7 @@ nsRootAccessible::FireAccessibleFocusEvent(nsAccessible* aFocusAccessible,
new AccEvent(nsIAccessibleEvent::EVENT_MENU_END, mCurrentARIAMenubar,
aIsFromUserInput, AccEvent::eAllowDupes);
if (menuEndEvent) {
FireDelayedAccessibleEvent(menuEndEvent);
focusDocument->FireDelayedAccessibleEvent(menuEndEvent);
}
mCurrentARIAMenubar = nsnull;
}
@ -395,9 +398,10 @@ nsRootAccessible::FireAccessibleFocusEvent(nsAccessible* aFocusAccessible,
// Coalesce focus events from the same document, because DOM focus event might
// be fired for the document node and then for the focused DOM element.
FireDelayedAccessibleEvent(nsIAccessibleEvent::EVENT_FOCUS,
focusNode, AccEvent::eCoalesceFromSameDocument,
aIsFromUserInput);
focusDocument->FireDelayedAccessibleEvent(nsIAccessibleEvent::EVENT_FOCUS,
focusNode,
AccEvent::eCoalesceFromSameDocument,
aIsFromUserInput);
}
void
@ -459,6 +463,9 @@ nsRootAccessible::HandleEvent(nsIDOMEvent* aEvent)
if (!accessible)
return NS_OK;
nsDocAccessible* targetDocument = accessible->GetDocAccessible();
NS_ASSERTION(targetDocument, "No document while accessible is in document?!");
nsINode* targetNode = accessible->GetNode();
nsIContent* targetContent = targetNode->IsElement() ?
targetNode->AsElement() : nsnull;
@ -692,8 +699,9 @@ nsRootAccessible::HandleEvent(nsIDOMEvent* aEvent)
FireCurrentFocusEvent();
}
else if (eventType.EqualsLiteral("ValueChange")) {
FireDelayedAccessibleEvent(nsIAccessibleEvent::EVENT_VALUE_CHANGE,
targetNode, AccEvent::eRemoveDupes);
targetDocument->
FireDelayedAccessibleEvent(nsIAccessibleEvent::EVENT_VALUE_CHANGE,
targetNode, AccEvent::eRemoveDupes);
}
#ifdef DEBUG_DRAGDROPSTART
else if (eventType.EqualsLiteral("mouseover")) {

View File

@ -67,12 +67,11 @@
{
document.getElementById(this.ID).style.display = 'block';
document.getElementById(this.ID).focus();
todo(false, "Enable show event handling when bug 422744 is fixed.");
}
this.eventSeq = [
new invokerChecker(EVENT_FOCUS, this.DOMNode),
// new invokerChecker(EVENT_SHOW, this.DOMNode)
new invokerChecker(EVENT_SHOW, this.DOMNode),
new invokerChecker(EVENT_FOCUS, this.DOMNode)
];
this.getID = function showNFocusAlertDialog_getID()

View File

@ -43,7 +43,6 @@
this.invoke = function setCaretOffsetInvoker_invoke()
{
this.target.caretOffset = aOffset;
todo(false, "Enable focus event handling when bug 422744 is fixed.");
}
this.getID = function setCaretOffsetInvoker_getID()
@ -52,7 +51,7 @@
}
this.eventSeq = [
// new invokerChecker(EVENT_FOCUS, this.target),
new invokerChecker(EVENT_FOCUS, this.target),
new caretMovedChecker(this.target, aOffset)
];
}

View File

@ -278,7 +278,7 @@ let gSyncUI = {
doSync: function SUI_doSync() {
if (Weave.Service.isLoggedIn || Weave.Service.login())
Weave.Service.sync();
setTimeout(function() Weave.Service.sync(), 0);
},
handleToolbarButton: function SUI_handleStatusbarButton() {

View File

@ -275,11 +275,10 @@
return;
}
if (aTriggeringEvent && aTriggeringEvent.altKey) {
if (aTriggeringEvent &&
aTriggeringEvent.altKey &&
!isTabEmpty(gBrowser.selectedTab)) {
this.handleRevert();
let prevTab = gBrowser.selectedTab;
if (isTabEmpty(prevTab))
gBrowser.removeTab(prevTab);
content.focus();
gBrowser.loadOneTab(url, {
postData: postData,

View File

@ -1777,10 +1777,6 @@ panel[dimmed="true"] {
-moz-appearance: none;
}
browser[tabmodalPromptShowing] {
filter: url("chrome://browser/skin/effects.svg#blurAndDesaturate");
}
/* Add-on bar close button */
#addonbar-closebutton {
list-style-image: url("moz-icon://stock/gtk-close?size=menu");

View File

@ -1,46 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
# ***** BEGIN LICENSE BLOCK *****
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
#
# The contents of this file are subject to the Mozilla Public License Version
# 1.1 (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
# http://www.mozilla.org/MPL/
#
# Software distributed under the License is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
# for the specific language governing rights and limitations under the
# License.
#
# The Original Code is effects.svg.
#
# The Initial Developer of the Original Code is the Mozilla Foundation.
# Portions created by the Initial Developer are Copyright (C) 2010
# the Initial Developer. All Rights Reserved.
#
# Contributor(s):
# Justin Dolske <dolske@mozilla.com>
#
# Alternatively, the contents of this file may be used under the terms of
# either the GNU General Public License Version 2 or later (the "GPL"), or
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
# in which case the provisions of the GPL or the LGPL are applicable instead
# of those above. If you wish to allow use of your version of this file only
# under the terms of either the GPL or the LGPL, and not to allow others to
# use your version of this file under the terms of the MPL, indicate your
# decision by deleting the provisions above and replace them with the notice
# and other provisions required by the GPL or the LGPL. If you do not delete
# the provisions above, a recipient may use your version of this file under
# the terms of any one of the MPL, the GPL or the LGPL.
#
# ***** END LICENSE BLOCK *****
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="0">
<filter id="blurAndDesaturate">
<feGaussianBlur stdDeviation="2"/>
<feColorMatrix type="saturate" values="0.7"/>
</filter>
</svg>

View File

@ -12,7 +12,6 @@ browser.jar:
#endif
skin/classic/browser/actionicon-tab.png
* skin/classic/browser/browser.css (browser.css)
* skin/classic/browser/effects.svg (effects.svg)
* skin/classic/browser/engineManager.css (engineManager.css)
skin/classic/browser/fullscreen-video.css
skin/classic/browser/inspector.css

View File

@ -2284,7 +2284,3 @@ panel[dimmed="true"] {
#addonbar-closebutton:hover:active {
list-style-image: url("chrome://global/skin/icons/closetab-active.png");
}
browser[tabmodalPromptShowing] {
filter: url("chrome://browser/skin/effects.svg#blurAndDesaturate");
}

View File

@ -1,46 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
# ***** BEGIN LICENSE BLOCK *****
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
#
# The contents of this file are subject to the Mozilla Public License Version
# 1.1 (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
# http://www.mozilla.org/MPL/
#
# Software distributed under the License is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
# for the specific language governing rights and limitations under the
# License.
#
# The Original Code is effects.svg.
#
# The Initial Developer of the Original Code is the Mozilla Foundation.
# Portions created by the Initial Developer are Copyright (C) 2010
# the Initial Developer. All Rights Reserved.
#
# Contributor(s):
# Justin Dolske <dolske@mozilla.com>
#
# Alternatively, the contents of this file may be used under the terms of
# either the GNU General Public License Version 2 or later (the "GPL"), or
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
# in which case the provisions of the GPL or the LGPL are applicable instead
# of those above. If you wish to allow use of your version of this file only
# under the terms of either the GPL or the LGPL, and not to allow others to
# use your version of this file under the terms of the MPL, indicate your
# decision by deleting the provisions above and replace them with the notice
# and other provisions required by the GPL or the LGPL. If you do not delete
# the provisions above, a recipient may use your version of this file under
# the terms of any one of the MPL, the GPL or the LGPL.
#
# ***** END LICENSE BLOCK *****
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="0">
<filter id="blurAndDesaturate">
<feGaussianBlur stdDeviation="2"/>
<feColorMatrix type="saturate" values="0.7"/>
</filter>
</svg>

View File

@ -11,7 +11,6 @@ browser.jar:
#endif
skin/classic/browser/actionicon-tab.png
* skin/classic/browser/browser.css (browser.css)
* skin/classic/browser/effects.svg (effects.svg)
* skin/classic/browser/engineManager.css (engineManager.css)
skin/classic/browser/fullscreen-video.css
skin/classic/browser/Geolocation-16.png

View File

@ -2127,10 +2127,6 @@ panel[dimmed="true"] {
-moz-appearance: none;
}
browser[tabmodalPromptShowing] {
filter: url("chrome://browser/skin/effects.svg#blurAndDesaturate");
}
/* Add-on bar close button */
#addonbar-closebutton {
border: none;

View File

@ -1,46 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
# ***** BEGIN LICENSE BLOCK *****
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
#
# The contents of this file are subject to the Mozilla Public License Version
# 1.1 (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
# http://www.mozilla.org/MPL/
#
# Software distributed under the License is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
# for the specific language governing rights and limitations under the
# License.
#
# The Original Code is effects.svg.
#
# The Initial Developer of the Original Code is the Mozilla Foundation.
# Portions created by the Initial Developer are Copyright (C) 2010
# the Initial Developer. All Rights Reserved.
#
# Contributor(s):
# Justin Dolske <dolske@mozilla.com>
#
# Alternatively, the contents of this file may be used under the terms of
# either the GNU General Public License Version 2 or later (the "GPL"), or
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
# in which case the provisions of the GPL or the LGPL are applicable instead
# of those above. If you wish to allow use of your version of this file only
# under the terms of either the GPL or the LGPL, and not to allow others to
# use your version of this file under the terms of the MPL, indicate your
# decision by deleting the provisions above and replace them with the notice
# and other provisions required by the GPL or the LGPL. If you do not delete
# the provisions above, a recipient may use your version of this file under
# the terms of any one of the MPL, the GPL or the LGPL.
#
# ***** END LICENSE BLOCK *****
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="0">
<filter id="blurAndDesaturate">
<feGaussianBlur stdDeviation="2"/>
<feColorMatrix type="saturate" values="0.7"/>
</filter>
</svg>

View File

@ -16,7 +16,6 @@ browser.jar:
skin/classic/browser/appmenu-icons.png
skin/classic/browser/appmenu-dropmarker.png
* skin/classic/browser/browser.css (browser.css)
* skin/classic/browser/effects.svg (effects.svg)
* skin/classic/browser/engineManager.css (engineManager.css)
skin/classic/browser/fullscreen-video.css
skin/classic/browser/Geolocation-16.png
@ -129,7 +128,6 @@ browser.jar:
skin/classic/aero/browser/appmenu-dropmarker.png
skin/classic/aero/browser/appmenu-icons.png
* skin/classic/aero/browser/browser.css (browser-aero.css)
* skin/classic/aero/browser/effects.svg (effects.svg)
* skin/classic/aero/browser/engineManager.css (engineManager.css)
skin/classic/aero/browser/fullscreen-video.css
skin/classic/aero/browser/Geolocation-16.png

View File

@ -101,16 +101,6 @@ libs:: $(_LEAKTEST_FILES)
$(INSTALL) $^ $(_LEAKTEST_DIR)
ifdef ENABLE_TESTS
# Install bloaturls.txt file for tinderbox bloat test.
libs:: bloaturls.txt
$(INSTALL) $< $(DIST)/bin
# Install bloatcycle.html into dist/bin/res, for auto-cycling
# of bloaturls.txt. This is for browsers that can't do -f
# autocycling of URLs.
libs:: bloatcycle.html
$(INSTALL) $< $(DIST)/bin/res
libs:: $(topsrcdir)/tools/rb/fix_stack_using_bpsyms.py
$(INSTALL) $< $(DIST)/bin

View File

@ -1,3 +1,40 @@
# ***** BEGIN LICENSE BLOCK *****
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
#
# The contents of this file are subject to the Mozilla Public License Version
# 1.1 (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
# http://www.mozilla.org/MPL/
#
# Software distributed under the License is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
# for the specific language governing rights and limitations under the
# License.
#
# The Original Code is mozilla.org code.
#
# The Initial Developer of the Original Code is
# Mozilla.org.
# Portions created by the Initial Developer are Copyright (C) 2010
# the Initial Developer. All Rights Reserved.
#
# Contributor(s):
# Jeff Hammel <jhammel@mozilla.com> (Original author)
#
# Alternatively, the contents of this file may be used under the terms of
# either of the GNU General Public License Version 2 or later (the "GPL"),
# or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
# in which case the provisions of the GPL or the LGPL are applicable instead
# of those above. If you wish to allow use of your version of this file only
# under the terms of either the GPL or the LGPL, and not to allow others to
# use your version of this file under the terms of the MPL, indicate your
# decision by deleting the provisions above and replace them with the notice
# and other provisions required by the GPL or the LGPL. If you do not delete
# the provisions above, a recipient may use your version of this file under
# the terms of any one of the MPL, the GPL or the LGPL.
#
# ***** END LICENSE BLOCK *****
# finds the location of the browser and puts it in the variable $(browser_path)
ifneq (,$(filter OS2 WINCE WINNT,$(OS_ARCH)))

View File

@ -1,7 +0,0 @@
http://www.mozilla.org
ftp://ftp.mozilla.org
http://www.mozilla.org
http://www.mozilla.org/newlayout/samples/test2.html
http://www.mozilla.org/newlayout/samples/test8.html
http://www.mozilla.org/newlayout/samples/test6.html
http://www.mozilla.org/newlayout/samples/test8.html

View File

@ -40,13 +40,11 @@
[scriptable, uuid(4BDAFB64-15E2-49C1-A090-4315A7884A56)]
interface nsIDOMFileError : nsISupports
{
//File error codes
const unsigned short NOT_FOUND_ERR = 8;
const unsigned short NOT_READABLE_ERR = 24;
const unsigned short SECURITY_ERR = 18;
const unsigned short ABORT_ERR = 20;
const unsigned short ENCODING_ERR = 26;
const unsigned short NOT_FOUND_ERR = 1;
const unsigned short SECURITY_ERR = 2;
const unsigned short ABORT_ERR = 3;
const unsigned short NOT_READABLE_ERR = 4;
const unsigned short ENCODING_ERR = 5;
readonly attribute unsigned short code;
};

View File

@ -40,8 +40,11 @@
[scriptable, uuid(b52356e1-45c5-4d61-b61a-fb9bd91690e1)]
interface nsIDOMFileException : nsISupports
{
const unsigned short NOT_FOUND_ERR = 0;
const unsigned short NOT_READABLE_ERR = 1;
const unsigned short NOT_FOUND_ERR = 1;
const unsigned short SECURITY_ERR = 2;
const unsigned short ABORT_ERR = 3;
const unsigned short NOT_READABLE_ERR = 4;
const unsigned short ENCODING_ERR = 5;
readonly attribute unsigned short code;
};

View File

@ -30,7 +30,7 @@ function logEvent(evt) {
while ((currentEvents.length != i) &&
currentEvents[i].optional &&
((currentEvents[i].type != evt.type) ||
(!evt.target instanceof currentEvents[i].target))) {
!(evt.target instanceof currentEvents[i].target))) {
++i;
}
ok(i != currentEvents.length, "Extra or wrong event?");

View File

@ -710,14 +710,14 @@ NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN(WebGLContext)
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NSCOMPTR(mCanvasElement)
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END
DOMCI_DATA(CanvasRenderingContextWebGL, WebGLContext)
DOMCI_DATA(WebGLRenderingContext, WebGLContext)
NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(WebGLContext)
NS_INTERFACE_MAP_ENTRY(nsIDOMWebGLRenderingContext)
NS_INTERFACE_MAP_ENTRY(nsICanvasRenderingContextInternal)
NS_INTERFACE_MAP_ENTRY(nsISupportsWeakReference)
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsIDOMWebGLRenderingContext)
NS_DOM_INTERFACE_MAP_ENTRY_CLASSINFO(CanvasRenderingContextWebGL)
NS_DOM_INTERFACE_MAP_ENTRY_CLASSINFO(WebGLRenderingContext)
NS_INTERFACE_MAP_END
NS_IMPL_ADDREF(WebGLBuffer)

View File

@ -0,0 +1,16 @@
<svg xmlns="http://www.w3.org/2000/svg" class="reftest-wait">
<script>
function boom()
{
var a = document.getElementById("a");
a.removeAttribute('dur');
document.documentElement.appendChild(a);
// Force a sample
document.documentElement.setCurrentTime(0);
document.documentElement.removeAttribute("class");
}
window.addEventListener("load", boom, false);
</script>
<animate begin="-2s" dur="2s" id="a"/>
</svg>

After

Width:  |  Height:  |  Size: 424 B

View File

@ -32,3 +32,4 @@ load 606101-1.svg
load 608549-1.svg
load 608295-1.html
load 611927-1.svg
load 615002-1.svg

View File

@ -501,9 +501,19 @@ nsSMILTimedElement::DoSampleAt(nsSMILTime aContainerTime, PRBool aEndOnly)
if (GetTimeContainer()->IsPausedByType(nsSMILTimeContainer::PAUSE_BEGIN))
return;
NS_ABORT_IF_FALSE(mElementState != STATE_STARTUP || aEndOnly,
"Got a regular sample during startup state, expected an end sample"
" instead");
// We use an end-sample to start animation since an end-sample lets us
// tentatively create an interval without committing to it (by transitioning
// to the ACTIVE state) and this is necessary because we might have
// dependencies on other animations that are yet to start. After these
// other animations start, it may be necessary to revise our initial interval.
//
// However, sometimes instead of an end-sample we can get a regular sample
// during STARTUP state. This can happen, for example, if we register
// a milestone before time t=0 and are then re-bound to the tree (which sends
// us back to the STARTUP state). In such a case we should just ignore the
// sample and wait for our real initial sample which will be an end-sample.
if (mElementState == STATE_STARTUP && !aEndOnly)
return;
PRBool finishedSeek = PR_FALSE;
if (GetTimeContainer()->IsSeeking() && mSeekState == SEEK_NOT_SEEKING) {

View File

@ -0,0 +1,22 @@
<!DOCTYPE html>
<script>
try {
var docType = document.implementation.createDocumentType(undefined, '', '');
var doc = document.implementation.createDocument('', '', null);
var xp = new XSLTProcessor;
xp.importStylesheet(doc);
xp.transformToDocument(docType);
}
catch (ex) {}
try {
docType = document.implementation.createDocumentType(undefined, '', '');
doc = document.implementation.createDocument('', '', null);
xp = new XSLTProcessor;
xp.importStylesheet(doc);
xp.transformToFragment(docType, document);
}
catch (ex) {}
</script>

View File

@ -11,3 +11,4 @@ load 528488.xml
load 528963.xml
load 545927.html
load 601543.html
load 602115.html

View File

@ -90,9 +90,6 @@ txExecutionState::txExecutionState(txStylesheet* aStylesheet,
mNextInstruction(nsnull),
mLocalVariables(nsnull),
mRecursionDepth(0),
mTemplateRules(nsnull),
mTemplateRulesBufferSize(0),
mTemplateRuleCount(0),
mEvalContext(nsnull),
mInitialEvalContext(nsnull),
mGlobalParams(nsnull),
@ -109,12 +106,6 @@ txExecutionState::~txExecutionState()
delete mResultHandler;
delete mLocalVariables;
delete mEvalContext;
PRInt32 i;
for (i = 0; i < mTemplateRuleCount; ++i) {
NS_IF_RELEASE(mTemplateRules[i].mModeLocalName);
}
delete [] mTemplateRules;
txStackIterator varsIter(&mLocalVarsStack);
while (varsIter.hasNext()) {
@ -195,8 +186,7 @@ txExecutionState::init(const txXPathNode& aNode,
txExpandedName nullName;
txInstruction* templ = mStylesheet->findTemplate(aNode, nullName,
this, nsnull, &frame);
rv = pushTemplateRule(frame, nullName, nsnull);
NS_ENSURE_SUCCESS(rv, rv);
pushTemplateRule(frame, nullName, nsnull);
return runTemplate(templ);
}
@ -204,7 +194,11 @@ txExecutionState::init(const txXPathNode& aNode,
nsresult
txExecutionState::end(nsresult aResult)
{
popTemplateRule();
NS_ASSERTION(NS_FAILED(aResult) || mTemplateRules.Length() == 1,
"Didn't clean up template rules properly");
if (NS_SUCCEEDED(aResult)) {
popTemplateRule();
}
return mOutputHandler->endDocument(aResult);
}
@ -293,9 +287,7 @@ txExecutionState::getVariable(PRInt32 aNamespace, nsIAtom* aLName,
rv = runTemplate(var->mFirstInstruction);
NS_ENSURE_SUCCESS(rv, rv);
rv = pushTemplateRule(nsnull, txExpandedName(), nsnull);
NS_ENSURE_SUCCESS(rv, rv);
pushTemplateRule(nsnull, txExpandedName(), nsnull);
rv = txXSLTProcessor::execute(*this);
NS_ENSURE_SUCCESS(rv, rv);
@ -403,40 +395,23 @@ txExecutionState::popResultHandler()
return oldHandler;
}
nsresult
void
txExecutionState::pushTemplateRule(txStylesheet::ImportFrame* aFrame,
const txExpandedName& aMode,
txVariableMap* aParams)
{
if (mTemplateRuleCount == mTemplateRulesBufferSize) {
PRInt32 newSize =
mTemplateRulesBufferSize ? mTemplateRulesBufferSize * 2 : 10;
TemplateRule* newRules = new TemplateRule[newSize];
NS_ENSURE_TRUE(newRules, NS_ERROR_OUT_OF_MEMORY);
memcpy(newRules, mTemplateRules,
mTemplateRuleCount * sizeof(TemplateRule));
delete [] mTemplateRules;
mTemplateRules = newRules;
mTemplateRulesBufferSize = newSize;
}
mTemplateRules[mTemplateRuleCount].mFrame = aFrame;
mTemplateRules[mTemplateRuleCount].mModeNsId = aMode.mNamespaceID;
mTemplateRules[mTemplateRuleCount].mModeLocalName = aMode.mLocalName;
mTemplateRules[mTemplateRuleCount].mParams = aParams;
NS_IF_ADDREF(mTemplateRules[mTemplateRuleCount].mModeLocalName);
++mTemplateRuleCount;
return NS_OK;
TemplateRule* rule = mTemplateRules.AppendElement();
rule->mFrame = aFrame;
rule->mModeNsId = aMode.mNamespaceID;
rule->mModeLocalName = aMode.mLocalName;
rule->mParams = aParams;
}
void
txExecutionState::popTemplateRule()
{
// decrement outside of RELEASE, that would decrement twice
--mTemplateRuleCount;
NS_IF_RELEASE(mTemplateRules[mTemplateRuleCount].mModeLocalName);
NS_PRECONDITION(!mTemplateRules.IsEmpty(), "No rules to pop");
mTemplateRules.RemoveElementAt(mTemplateRules.Length() - 1);
}
txIEvalContext*
@ -497,7 +472,8 @@ txExecutionState::getKeyNodes(const txExpandedName& aKeyName,
txExecutionState::TemplateRule*
txExecutionState::getCurrentTemplateRule()
{
return mTemplateRules + mTemplateRuleCount - 1;
NS_PRECONDITION(!mTemplateRules.IsEmpty(), "No current rule!");
return &mTemplateRules[mTemplateRules.Length() - 1];
}
txInstruction*

View File

@ -112,10 +112,11 @@ public:
/**
* Struct holding information about a current template rule
*/
struct TemplateRule {
class TemplateRule {
public:
txStylesheet::ImportFrame* mFrame;
PRInt32 mModeNsId;
nsIAtom* mModeLocalName;
nsCOMPtr<nsIAtom> mModeLocalName;
txVariableMap* mParams;
};
@ -126,9 +127,9 @@ public:
PRBool popBool();
nsresult pushResultHandler(txAXMLEventHandler* aHandler);
txAXMLEventHandler* popResultHandler();
nsresult pushTemplateRule(txStylesheet::ImportFrame* aFrame,
const txExpandedName& aMode,
txVariableMap* aParams);
void pushTemplateRule(txStylesheet::ImportFrame* aFrame,
const txExpandedName& aMode,
txVariableMap* aParams);
void popTemplateRule();
nsresult pushParamMap(txVariableMap* aParams);
txVariableMap* popParamMap();
@ -181,9 +182,7 @@ private:
nsRefPtr<txAExprResult> mGlobalVarPlaceholderValue;
PRInt32 mRecursionDepth;
TemplateRule* mTemplateRules;
PRInt32 mTemplateRulesBufferSize;
PRInt32 mTemplateRuleCount;
AutoInfallibleTArray<TemplateRule, 10> mTemplateRules;
txIEvalContext* mEvalContext;
txIEvalContext* mInitialEvalContext;

View File

@ -61,8 +61,7 @@ txApplyDefaultElementTemplate::execute(txExecutionState& aEs)
aEs.mStylesheet->findTemplate(aEs.getEvalContext()->getContextNode(),
mode, &aEs, nsnull, &frame);
nsresult rv = aEs.pushTemplateRule(frame, mode, aEs.mTemplateParams);
NS_ENSURE_SUCCESS(rv, rv);
aEs.pushTemplateRule(frame, mode, aEs.mTemplateParams);
return aEs.runTemplate(templ);
}
@ -97,8 +96,7 @@ txApplyImportsStart::execute(txExecutionState& aEs)
aEs.mStylesheet->findTemplate(aEs.getEvalContext()->getContextNode(),
mode, &aEs, rule->mFrame, &frame);
rv = aEs.pushTemplateRule(frame, mode, rule->mParams);
NS_ENSURE_SUCCESS(rv, rv);
aEs.pushTemplateRule(frame, mode, rule->mParams);
return aEs.runTemplate(templ);
}
@ -116,8 +114,7 @@ txApplyTemplates::execute(txExecutionState& aEs)
aEs.mStylesheet->findTemplate(aEs.getEvalContext()->getContextNode(),
mMode, &aEs, nsnull, &frame);
nsresult rv = aEs.pushTemplateRule(frame, mMode, aEs.mTemplateParams);
NS_ENSURE_SUCCESS(rv, rv);
aEs.pushTemplateRule(frame, mMode, aEs.mTemplateParams);
return aEs.runTemplate(templ);
}
@ -717,7 +714,8 @@ txPushNewContext::addSort(nsAutoPtr<Expr> aSelectExpr,
nsresult
txPushNullTemplateRule::execute(txExecutionState& aEs)
{
return aEs.pushTemplateRule(nsnull, txExpandedName(), nsnull);
aEs.pushTemplateRule(nsnull, txExpandedName(), nsnull);
return NS_OK;
}
nsresult

View File

@ -682,10 +682,12 @@ txMozillaXSLTProcessor::TransformToDoc(nsIDOMDocument *aOutputDoc,
mObserver);
es.mOutputHandlerFactory = &handlerFactory;
es.init(*sourceNode, &mVariables);
nsresult rv = es.init(*sourceNode, &mVariables);
// Process root of XML source document
nsresult rv = txXSLTProcessor::execute(es);
if (NS_SUCCEEDED(rv)) {
rv = txXSLTProcessor::execute(es);
}
nsresult endRv = es.end(rv);
if (NS_SUCCEEDED(rv)) {
@ -741,10 +743,12 @@ txMozillaXSLTProcessor::TransformToFragment(nsIDOMNode *aSource,
txToFragmentHandlerFactory handlerFactory(*aResult);
es.mOutputHandlerFactory = &handlerFactory;
es.init(*sourceNode, &mVariables);
rv = es.init(*sourceNode, &mVariables);
// Process root of XML source document
rv = txXSLTProcessor::execute(es);
if (NS_SUCCEEDED(rv)) {
rv = txXSLTProcessor::execute(es);
}
// XXX setup exception context, bug 204658
nsresult endRv = es.end(rv);
if (NS_SUCCEEDED(rv)) {

View File

@ -4,7 +4,7 @@ load 403574-1.xhtml
load 430124-1.html
load 430628-1.html
asserts(1-4) load 432114-1.html # bug 570215
asserts(1) load 432114-2.html # bug 570210
asserts(1) load 432114-2.html # bug 570215
load 436900-1.html
asserts(0-2) load 436900-2.html # bug 566159
load 500328-1.html

View File

@ -1403,7 +1403,7 @@ static nsDOMClassInfoData sClassInfoData[] = {
NS_DEFINE_CHROME_ONLY_CLASSINFO_DATA(ChromeWorker, nsDOMGenericSH,
DOM_DEFAULT_SCRIPTABLE_FLAGS)
NS_DEFINE_CLASSINFO_DATA(CanvasRenderingContextWebGL, nsDOMGenericSH,
NS_DEFINE_CLASSINFO_DATA(WebGLRenderingContext, nsDOMGenericSH,
DOM_DEFAULT_SCRIPTABLE_FLAGS)
NS_DEFINE_CLASSINFO_DATA(WebGLBuffer, nsDOMGenericSH,
DOM_DEFAULT_SCRIPTABLE_FLAGS)
@ -3970,7 +3970,7 @@ nsDOMClassInfo::Init()
DOM_CLASSINFO_MAP_ENTRY(nsIDOMEventTarget)
DOM_CLASSINFO_MAP_END
DOM_CLASSINFO_MAP_BEGIN(CanvasRenderingContextWebGL, nsIDOMWebGLRenderingContext)
DOM_CLASSINFO_MAP_BEGIN(WebGLRenderingContext, nsIDOMWebGLRenderingContext)
DOM_CLASSINFO_MAP_ENTRY(nsIDOMWebGLRenderingContext)
DOM_CLASSINFO_MAP_END

View File

@ -462,7 +462,7 @@ DOMCI_CLASS(Worker)
DOMCI_CLASS(ChromeWorker)
// WebGL
DOMCI_CLASS(CanvasRenderingContextWebGL)
DOMCI_CLASS(WebGLRenderingContext)
DOMCI_CLASS(WebGLBuffer)
DOMCI_CLASS(WebGLTexture)
DOMCI_CLASS(WebGLProgram)

View File

@ -68,6 +68,9 @@ public class GeckoEvent {
public static final int ACTIVITY_SHUTDOWN = 10;
public static final int LOAD_URI = 11;
public static final int SURFACE_CREATED = 12;
public static final int SURFACE_DESTROYED = 13;
public static final int IME_COMPOSITION_END = 0;
public static final int IME_COMPOSITION_BEGIN = 1;
public static final int IME_SET_TEXT = 2;

View File

@ -159,12 +159,17 @@ class GeckoSurfaceView
}
public void surfaceCreated(SurfaceHolder holder) {
Log.i("GeckoAppJava", "surface created");
GeckoEvent e = new GeckoEvent(GeckoEvent.SURFACE_CREATED);
GeckoAppShell.sendEventToGecko(e);
}
public void surfaceDestroyed(SurfaceHolder holder) {
Log.i("GeckoAppJava", "surface destroyed");
mSurfaceValid = false;
mSoftwareBuffer = null;
GeckoEvent e = new GeckoEvent(GeckoEvent.SURFACE_DESTROYED);
GeckoAppShell.sendEventToGecko(e);
}
public ByteBuffer getSoftwareDrawBuffer() {

View File

@ -230,7 +230,7 @@ static inline bool apply_lookup (hb_apply_context_t *c,
apply_lookup_func_t apply_func)
{
unsigned int end = MIN (c->buffer->len, c->buffer->i + c->context_length);
if (unlikely (c->buffer->i + count > end))
if (unlikely (count == 0 || c->buffer->i + count > end))
return false;
/* TODO We don't support lookupRecord arrays that are not increasing:

View File

@ -305,22 +305,10 @@ public:
* During the drawing phase, all ThebesLayers in the tree are
* drawn in tree order, exactly once each, except for those layers
* where it is known that the visible region is empty.
*
* If aCallback is null, this is a 'null' transaction.
* There must have been no updates to the layer tree in this transaction.
* A null transaction can fail, in which case EndTransaction returns false,
* and the transaction must be retried with aCallback set to something non-null.
*
* If IsNullTransactionSupported() returns false, then aCallback must be non-null.
*/
virtual bool EndTransaction(DrawThebesLayerCallback aCallback,
virtual void EndTransaction(DrawThebesLayerCallback aCallback,
void* aCallbackData) = 0;
/**
* See EndTransaction description
*/
virtual bool IsNullTransactionSupported() { return false; }
PRBool IsSnappingEffectiveTransforms() { return mSnapEffectiveTransforms; }
/**

View File

@ -502,11 +502,6 @@ BasicThebesLayer::Paint(gfxContext* aContext,
nsIntRegion toDraw = IntersectWithClip(mVisibleRegion, target);
if (!toDraw.IsEmpty()) {
if (!aCallback) {
BasicManager()->SetTransactionIncomplete();
return;
}
target->Save();
gfxUtils::ClipToRegionSnapped(target, toDraw);
if (opacity != 1.0) {
@ -1020,7 +1015,6 @@ BasicLayerManager::BasicLayerManager(nsIWidget* aWidget) :
, mYResolution(1.0)
, mWidget(aWidget)
, mDoubleBuffering(BUFFER_NONE), mUsingDefaultTarget(PR_FALSE)
, mTransactionIncomplete(false)
{
MOZ_COUNT_CTOR(BasicLayerManager);
NS_ASSERTION(aWidget, "Must provide a widget");
@ -1191,7 +1185,7 @@ MarkLeafLayersCoveredByOpaque(Layer* aLayer, const nsIntRect& aClipRect,
}
}
bool
void
BasicLayerManager::EndTransaction(DrawThebesLayerCallback aCallback,
void* aCallbackData)
{
@ -1200,8 +1194,6 @@ BasicLayerManager::EndTransaction(DrawThebesLayerCallback aCallback,
Log();
#endif
mTransactionIncomplete = false;
NS_ASSERTION(InConstruction(), "Should be in construction phase");
#ifdef DEBUG
mPhase = PHASE_DRAWING;
@ -1234,12 +1226,6 @@ BasicLayerManager::EndTransaction(DrawThebesLayerCallback aCallback,
mRoot->GetEffectiveVisibleRegion().GetBounds(),
region);
PaintLayer(mRoot, aCallback, aCallbackData);
if (mTransactionIncomplete) {
#ifdef DEBUG
mPhase = PHASE_NONE;
#endif
return false;
}
if (useDoubleBuffering) {
finalTarget->SetOperator(gfxContext::OPERATOR_SOURCE);
@ -1258,7 +1244,6 @@ BasicLayerManager::EndTransaction(DrawThebesLayerCallback aCallback,
mPhase = PHASE_NONE;
#endif
mUsingDefaultTarget = PR_FALSE;
return true;
}
void
@ -1324,16 +1309,10 @@ BasicLayerManager::PaintLayer(Layer* aLayer,
#endif
if (!data->IsCoveredByOpaque()) {
data->Paint(mTarget, aCallback, aCallbackData);
if (mTransactionIncomplete) {
return;
}
}
} else {
for (; child; child = child->GetNextSibling()) {
PaintLayer(child, aCallback, aCallbackData);
if (mTransactionIncomplete) {
return;
}
}
}
@ -1658,11 +1637,6 @@ BasicShadowableThebesLayer::PaintBuffer(gfxContext* aContext,
LayerManager::DrawThebesLayerCallback aCallback,
void* aCallbackData)
{
if (!aCallback) {
BasicManager()->SetTransactionIncomplete();
mIsNewBuffer = false;
return;
}
Base::PaintBuffer(aContext, aRegionToDraw, aRegionToInvalidate,
aCallback, aCallbackData);
if (!HasShadow()) {
@ -2557,21 +2531,11 @@ BasicShadowLayerManager::BeginTransactionWithTarget(gfxContext* aTarget)
BasicLayerManager::BeginTransactionWithTarget(aTarget);
}
bool
void
BasicShadowLayerManager::EndTransaction(DrawThebesLayerCallback aCallback,
void* aCallbackData)
{
if (!BasicLayerManager::EndTransaction(aCallback, aCallbackData)) {
NS_WARNING("Failed to finish transaction, clear mKeepAlive");
if (HasShadowManager())
ShadowLayerForwarder::EndTransaction(nsnull);
mKeepAlive.Clear();
#ifdef DEBUG
mPhase = PHASE_NONE;
#endif
return false;
}
BasicLayerManager::EndTransaction(aCallback, aCallbackData);
#ifdef DEBUG
mPhase = PHASE_FORWARD;
#endif
@ -2628,7 +2592,6 @@ BasicShadowLayerManager::EndTransaction(DrawThebesLayerCallback aCallback,
// this may result in Layers being deleted, which results in
// PLayer::Send__delete__() and DeallocShmem()
mKeepAlive.Clear();
return true;
}
ShadowableLayer*

View File

@ -140,7 +140,7 @@ public:
virtual void BeginTransaction();
virtual void BeginTransactionWithTarget(gfxContext* aTarget);
virtual bool EndTransaction(DrawThebesLayerCallback aCallback,
virtual void EndTransaction(DrawThebesLayerCallback aCallback,
void* aCallbackData);
virtual void SetRoot(Layer* aLayer);
@ -181,10 +181,6 @@ public:
// Clear the cached contents of this layer.
void ClearCachedResources();
bool IsNullTransactionSupported() { return mRoot ? true : false; }
void SetTransactionIncomplete() { mTransactionIncomplete = true; }
protected:
#ifdef DEBUG
enum TransactionPhase {
@ -225,7 +221,6 @@ private:
BufferMode mDoubleBuffering;
PRPackedBool mUsingDefaultTarget;
bool mTransactionIncomplete;
};
@ -240,7 +235,7 @@ public:
virtual ~BasicShadowLayerManager();
virtual void BeginTransactionWithTarget(gfxContext* aTarget);
virtual bool EndTransaction(DrawThebesLayerCallback aCallback,
virtual void EndTransaction(DrawThebesLayerCallback aCallback,
void* aCallbackData);
virtual void SetRoot(Layer* aLayer);

View File

@ -230,7 +230,7 @@ LayerManagerD3D10::BeginTransactionWithTarget(gfxContext* aTarget)
mTarget = aTarget;
}
bool
void
LayerManagerD3D10::EndTransaction(DrawThebesLayerCallback aCallback,
void* aCallbackData)
{
@ -245,7 +245,6 @@ LayerManagerD3D10::EndTransaction(DrawThebesLayerCallback aCallback,
mCurrentCallbackInfo.Callback = nsnull;
mCurrentCallbackInfo.CallbackData = nsnull;
mTarget = nsnull;
return true;
}
already_AddRefed<ThebesLayer>

View File

@ -104,7 +104,7 @@ public:
void *CallbackData;
};
bool EndTransaction(DrawThebesLayerCallback aCallback,
void EndTransaction(DrawThebesLayerCallback aCallback,
void* aCallbackData);
const CallbackInfo &GetCallbackInfo() { return mCurrentCallbackInfo; }

View File

@ -149,7 +149,7 @@ LayerManagerD3D9::EndConstruction()
{
}
bool
void
LayerManagerD3D9::EndTransaction(DrawThebesLayerCallback aCallback,
void* aCallbackData)
{
@ -166,7 +166,6 @@ LayerManagerD3D9::EndTransaction(DrawThebesLayerCallback aCallback,
mCurrentCallbackInfo.CallbackData = NULL;
// Clear mTarget, next transaction could have no target
mTarget = NULL;
return true;
}
void

View File

@ -132,7 +132,7 @@ public:
void *CallbackData;
};
bool EndTransaction(DrawThebesLayerCallback aCallback,
void EndTransaction(DrawThebesLayerCallback aCallback,
void* aCallbackData);
const CallbackInfo &GetCallbackInfo() { return mCurrentCallbackInfo; }

View File

@ -392,7 +392,7 @@ LayerManagerOGL::BeginTransactionWithTarget(gfxContext *aTarget)
mTarget = aTarget;
}
bool
void
LayerManagerOGL::EndTransaction(DrawThebesLayerCallback aCallback,
void* aCallbackData)
{
@ -403,7 +403,7 @@ LayerManagerOGL::EndTransaction(DrawThebesLayerCallback aCallback,
if (mDestroyed) {
NS_WARNING("Call on destroyed layer manager");
return false;
return;
}
// The results of our drawing always go directly into a pixel buffer,
@ -427,7 +427,6 @@ LayerManagerOGL::EndTransaction(DrawThebesLayerCallback aCallback,
Log();
MOZ_LAYERS_LOG(("]----- EndTransaction"));
#endif
return true;
}
already_AddRefed<ThebesLayer>

View File

@ -133,7 +133,7 @@ public:
void EndConstruction();
virtual bool EndTransaction(DrawThebesLayerCallback aCallback,
virtual void EndTransaction(DrawThebesLayerCallback aCallback,
void* aCallbackData);
virtual void SetRoot(Layer* aLayer) { mRoot = aLayer; }

View File

@ -633,6 +633,8 @@ public:
return PR_FALSE;
}
virtual PRBool RenewSurface() { return PR_FALSE; }
/**`
* Return a valid, allocated TextureImage of |aSize| with
* |aContentType|. The TextureImage's texture is configured to

View File

@ -171,6 +171,11 @@ typedef void *GLeglImageOES;
#define EGL_DISPLAY() sEGLLibrary.Display()
EGLSurface
CreateSurfaceForWindow(nsIWidget *aWidget, EGLConfig config);
EGLConfig
CreateConfig();
static int
next_power_of_two(int v)
{
@ -672,6 +677,26 @@ public:
return succeeded;
}
#ifdef MOZ_WIDGET_QT
virtual PRBool
RenewSurface() {
/* We don't support renewing on QT because we don't create the surface ourselves */
return PR_FALSE;
}
#else
virtual PRBool
RenewSurface() {
sEGLLibrary.fDestroySurface(EGL_DISPLAY(), mSurface);
EGLConfig config = CreateConfig();
mSurface = CreateSurfaceForWindow(NULL, config);
return sEGLLibrary.fMakeCurrent(EGL_DISPLAY(),
mSurface, mSurface,
mContext);
}
#endif
PRBool SetupLookupFunction()
{
mLookupFunc = (PlatformLookupFunction)sEGLLibrary.fGetProcAddress;
@ -1387,6 +1412,7 @@ DepthToGLFormat(int aDepth)
}
#ifdef MOZ_WIDGET_QT
already_AddRefed<GLContext>
GLContextProviderEGL::CreateForWindow(nsIWidget *aWidget)
{
@ -1394,8 +1420,6 @@ GLContextProviderEGL::CreateForWindow(nsIWidget *aWidget)
return nsnull;
}
#ifdef MOZ_WIDGET_QT
QWidget *viewport = static_cast<QWidget*>(aWidget->GetNativeData(NS_NATIVE_SHELLWIDGET));
if (!viewport)
return nsnull;
@ -1422,13 +1446,14 @@ GLContextProviderEGL::CreateForWindow(nsIWidget *aWidget)
// Switch to software rendering here
return nsnull;
}
#else
EGLConfig
CreateConfig()
{
EGLConfig config;
EGLSurface surface;
EGLContext context;
EGLint attribs[] = {
LOCAL_EGL_SURFACE_TYPE, LOCAL_EGL_WINDOW_BIT,
LOCAL_EGL_RENDERABLE_TYPE, LOCAL_EGL_OPENGL_ES2_BIT,
@ -1479,10 +1504,14 @@ GLContextProviderEGL::CreateForWindow(nsIWidget *aWidget)
#endif
}
if (!config) {
printf_stderr("Failed to create EGL config!\n");
return nsnull;
}
return config;
}
EGLSurface
CreateSurfaceForWindow(nsIWidget *aWidget, EGLConfig config)
{
EGLSurface surface;
#ifdef DEBUG
sEGLLibrary.DumpEGLConfig(config);
@ -1503,6 +1532,28 @@ GLContextProviderEGL::CreateForWindow(nsIWidget *aWidget)
surface = sEGLLibrary.fCreateWindowSurface(EGL_DISPLAY(), config, GET_NATIVE_WINDOW(aWidget), 0);
#endif
return surface;
}
already_AddRefed<GLContext>
GLContextProviderEGL::CreateForWindow(nsIWidget *aWidget)
{
EGLContext context;
EGLConfig config;
if (!sEGLLibrary.EnsureInitialized()) {
return nsnull;
}
config = CreateConfig();
if (!config) {
printf_stderr("Failed to create EGL config!\n");
return nsnull;
}
EGLSurface surface = CreateSurfaceForWindow(aWidget, config);
if (!surface) {
return nsnull;
}
@ -1548,8 +1599,8 @@ TRY_AGAIN_NO_SHARING:
#endif
return glContext.forget();
#endif
}
#endif
already_AddRefed<GLContextEGL>
GLContextEGL::CreateEGLPBufferOffscreenContext(const gfxIntSize& aSize,

View File

@ -2389,8 +2389,7 @@ nsRootPresContext::nsRootPresContext(nsIDocument* aDocument,
: nsPresContext(aDocument, aType),
mUpdatePluginGeometryForFrame(nsnull),
mDOMGeneration(0),
mNeedsToUpdatePluginGeometry(PR_FALSE),
mUpdateLayerTree(false)
mNeedsToUpdatePluginGeometry(PR_FALSE)
{
mRegisteredPlugins.Init();
}

View File

@ -1275,9 +1275,6 @@ public:
*/
PRUint32 GetDOMGeneration() { return mDOMGeneration; }
void SetNeedToUpdateLayerTree(bool aUpdate) { mUpdateLayerTree = aUpdate; }
bool NeedToUpdateLayerTree() { return mUpdateLayerTree; }
private:
nsTHashtable<nsPtrHashKey<nsObjectFrame> > mRegisteredPlugins;
// if mNeedsToUpdatePluginGeometry is set, then this is the frame to
@ -1286,7 +1283,6 @@ private:
nsIFrame* mUpdatePluginGeometryForFrame;
PRUint32 mDOMGeneration;
PRPackedBool mNeedsToUpdatePluginGeometry;
bool mUpdateLayerTree;
};
inline void

View File

@ -6073,19 +6073,6 @@ PresShell::Paint(nsIView* aDisplayRoot,
NS_ASSERTION(aViewToPaint, "null view");
NS_ASSERTION(aWidgetToPaint, "Can't paint without a widget");
nsRootPresContext* rootPC = presContext->GetRootPresContext();
if (!rootPC->NeedToUpdateLayerTree() && aWidgetToPaint) {
LayerManager* layerManager = aWidgetToPaint->GetLayerManager();
NS_ASSERTION(layerManager, "Must be in paint event");
if (layerManager->IsNullTransactionSupported()) {
layerManager->BeginTransaction();
if (layerManager->EndTransaction(nsnull, nsnull)) {
return NS_OK;
}
}
}
rootPC->SetNeedToUpdateLayerTree(false);
nscolor bgcolor = ComputeBackstopColor(aDisplayRoot);
nsIFrame* frame = aPaintDefaultBackground

View File

@ -3950,14 +3950,7 @@ nsIFrame::InvalidateLayer(const nsRect& aDamageRect, PRUint32 aDisplayItemKey)
return;
}
nsRootPresContext* rootPC = PresContext()->GetRootPresContext();
PRUint32 flags = INVALIDATE_NO_THEBES_LAYERS;
if (aDisplayItemKey == nsDisplayItem::TYPE_VIDEO ||
aDisplayItemKey == nsDisplayItem::TYPE_PLUGIN) {
flags = INVALIDATE_NO_UPDATE_LAYER_TREE;
}
InvalidateWithFlags(aDamageRect, flags);
InvalidateWithFlags(aDamageRect, INVALIDATE_NO_THEBES_LAYERS);
}
class LayerActivity {
@ -4051,18 +4044,12 @@ nsIFrame::InvalidateWithFlags(const nsRect& aDamageRect, PRUint32 aFlags)
// Don't allow invalidates to do anything when
// painting is suppressed.
nsPresContext* context = PresContext();
nsIPresShell *shell = context->GetPresShell();
nsIPresShell *shell = PresContext()->GetPresShell();
if (shell) {
if (shell->IsPaintingSuppressed())
return;
}
if (!(aFlags & INVALIDATE_NO_UPDATE_LAYER_TREE)) {
nsRootPresContext* rootPC = context->GetRootPresContext();
rootPC->SetNeedToUpdateLayerTree(true);
}
InvalidateInternal(aDamageRect, 0, 0, nsnull, aFlags);
}

View File

@ -2038,8 +2038,6 @@ public:
* This flag is useful when, during painting, FrameLayerBuilder discovers that
* a region of the window needs to be drawn differently, and that region
* may or may not be contained in the currently painted region.
* @param aFlags INVALIDATE_NO_UPDATE_LAYER_TREE: invalidate only in the Non-Thebes Layers
* Video, Plugin.
*/
enum {
INVALIDATE_IMMEDIATE = 0x01,
@ -2050,8 +2048,7 @@ public:
INVALIDATE_REASON_SCROLL_REPAINT,
INVALIDATE_NO_THEBES_LAYERS = 0x10,
INVALIDATE_ONLY_THEBES_LAYERS = 0x20,
INVALIDATE_EXCLUDE_CURRENT_PAINT = 0x40,
INVALIDATE_NO_UPDATE_LAYER_TREE = 0x80
INVALIDATE_EXCLUDE_CURRENT_PAINT = 0x40
};
virtual void InvalidateInternal(const nsRect& aDamageRect,
nscoord aOffsetX, nscoord aOffsetY,

View File

@ -508,7 +508,6 @@ SyncKeyBundle.prototype = {
this._hmac = null;
this._hmacObj = null;
this._encrypt = null;
this.generateEntry();
},
/*

View File

@ -52,7 +52,17 @@ function run_test() {
do_check_eq(Status.sync, CREDENTIALS_CHANGED);
do_check_eq(Status.login, LOGIN_FAILED_INVALID_PASSPHRASE);
Weave.Service.login("johndoe", "ilovejane", "abcdeabcdeabcdeabcdeabcdea");
_("Log in with an old secret phrase, is upgraded to Sync Key.");
Weave.Service.login("johndoe", "ilovejane", "my old secret phrase!!1!");
do_check_true(Weave.Service.isLoggedIn);
do_check_true(Utils.isPassphrase(Weave.Service.passphrase));
do_check_true(Utils.isPassphrase(Weave.Service.syncKeyBundle.keyStr));
let syncKey = Weave.Service.passphrase;
Weave.Service.startOver();
Weave.Service.serverURL = "http://localhost:8080/";
Weave.Service.clusterURL = "http://localhost:8080/";
Weave.Service.login("johndoe", "ilovejane", syncKey);
do_check_true(Weave.Service.isLoggedIn);
_("Checking that remoteSetup returns true when credentials have changed.");

View File

@ -1,11 +1,5 @@
function run_test()
{
var isOSX = ("nsILocalFileMac" in Components.interfaces);
if (isOSX) {
dump("INFO | test_crashreporter.js | Skipping test on mac, bug 599475")
return;
}
if (!("@mozilla.org/toolkit/crash-reporter;1" in Components.classes)) {
dump("INFO | test_crashreporter.js | Can't test crashreporter in a non-libxul build.\n");
return;

View File

@ -1,11 +1,5 @@
function run_test()
{
var isOSX = ("nsILocalFileMac" in Components.interfaces);
if (isOSX) {
dump("INFO | test_crashreporter_crash_profile_lock.js | Skipping test on mac, bug 599475")
return;
}
if (!("@mozilla.org/toolkit/crash-reporter;1" in Components.classes)) {
dump("INFO | test_crashreporter.js | Can't test crashreporter in a non-libxul build.\n");
return;

View File

@ -389,7 +389,6 @@ NO_PKG_FILES += \
nsinstall \
viewer \
TestGtkEmbed \
bloaturls.txt \
codesighs* \
elf-dynstr-gc \
mangle* \

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

View File

@ -113,6 +113,7 @@ toolkit.jar:
skin/classic/global/icons/search-textbox.png (icons/search-textbox.png)
skin/classic/global/icons/searchfield-regular-cancel.png (icons/searchfield-regular-cancel.png)
skin/classic/global/icons/searchfield-small-cancel.png (icons/searchfield-small-cancel.png)
skin/classic/global/icons/tabprompts-bgtexture.png (icons/tabprompts-bgtexture.png)
skin/classic/global/icons/warning-16.png (icons/warning-16.png)
skin/classic/global/icons/warning-24.png (icons/warning-24.png)
skin/classic/global/icons/warning-32.png (icons/warning-32.png)

View File

@ -1,18 +1,19 @@
/* Tab Modal Prompt boxes */
tabmodalprompt {
background-color: hsla(0,0%,97%,.15);
background-image: -moz-radial-gradient(center 40%, circle closest-side, hsla(0,0%,90%,.5), hsla(0,0%,90%,0));
background-image: url(chrome://global/skin/icons/tabprompts-bgtexture.png),
-moz-radial-gradient(center 40%, circle farthest-side, hsla(0,0%,10%,.1), hsla(0,0%,0%,.5));
}
.mainContainer {
padding: 20px;
color: black;
background-image: -moz-linear-gradient(hsla(0,0%,97%,.9), hsla(0,0%,87%,.9));
border-radius: 8px;
box-shadow: 0 0 0 1px hsla(0,0%,0%,.25) inset,
background-image: -moz-linear-gradient(hsla(0,0%,89%,.97), hsla(0,0%,96%,.97));
border-radius: 6px;
box-shadow: 0 0 1px 1px hsla(0,0%,0%,.6) inset,
0 1px 1px hsla(0,0%,0%,.2) inset,
0 1px 2px hsla(0,0%,0%,.1) inset,
0 1px 0 hsla(0,0%,100%,.4);
0 2px 5px hsla(0,0%,0%,.2) inset,
0 0 0 1px hsla(0,0%,100%,.3),
0 1px 0 hsla(0,0%,100%,.1);
}
.buttonContainer {

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@ -136,6 +136,7 @@ toolkit.jar:
skin/classic/global/icons/Search-close.png (icons/Search-close.png)
skin/classic/global/icons/Search-glass.png (icons/Search-glass.png)
skin/classic/global/icons/sslWarning.png (icons/sslWarning.png)
skin/classic/global/icons/tabprompts-bgtexture.png (icons/tabprompts-bgtexture.png)
skin/classic/global/icons/Warning.png (icons/Warning.png)
skin/classic/global/icons/warning-large.png (icons/warning-large.png)
skin/classic/global/icons/warning-16.png (icons/warning-16.png)
@ -312,6 +313,7 @@ toolkit.jar:
skin/classic/aero/global/icons/Search-close.png (icons/Search-close-aero.png)
skin/classic/aero/global/icons/Search-glass.png (icons/Search-glass-aero.png)
skin/classic/aero/global/icons/sslWarning.png (icons/sslWarning-aero.png)
skin/classic/aero/global/icons/tabprompts-bgtexture.png (icons/tabprompts-bgtexture.png)
skin/classic/aero/global/icons/Warning.png (icons/Warning-aero.png)
skin/classic/aero/global/icons/warning-large.png (icons/warning-large-aero.png)
skin/classic/aero/global/icons/warning-16.png (icons/warning-16-aero.png)

View File

@ -1,18 +1,19 @@
/* Tab Modal Prompt boxes */
tabmodalprompt {
background-color: hsla(0,0%,97%,.15);
background-image: -moz-radial-gradient(center 40%, circle closest-side, hsla(0,0%,90%,.5), hsla(0,0%,90%,0));
background-image: url(chrome://global/skin/icons/tabprompts-bgtexture.png),
-moz-radial-gradient(center 40%, circle farthest-side, hsla(0,0%,10%,.1), hsla(0,0%,0%,.5));
}
.mainContainer {
padding: 20px;
color: black;
background-image: -moz-linear-gradient(hsla(0,0%,97%,.9), hsla(0,0%,87%,.9));
border-radius: 8px;
box-shadow: 0 0 0 1px hsla(0,0%,0%,.25) inset,
background-image: -moz-linear-gradient(hsla(0,0%,89%,.97), hsla(0,0%,96%,.97));
border-radius: 6px;
box-shadow: 0 0 1px 1px hsla(0,0%,0%,.6) inset,
0 1px 1px hsla(0,0%,0%,.2) inset,
0 1px 2px hsla(0,0%,0%,.1) inset,
0 1px 0 hsla(0,0%,100%,.4);
0 2px 5px hsla(0,0%,0%,.2) inset,
0 0 0 1px hsla(0,0%,100%,.3),
0 1px 0 hsla(0,0%,100%,.1);
}
.buttonContainer {

View File

@ -451,6 +451,8 @@ public:
ACTIVITY_PAUSING = 9,
ACTIVITY_SHUTDOWN = 10,
LOAD_URI = 11,
SURFACE_CREATED = 12,
SURFACE_DESTROYED = 13,
dummy_java_enum_list_end
};

View File

@ -135,6 +135,7 @@ static nsWindow* gFocusedWindow = nsnull;
static nsRefPtr<gl::GLContext> sGLContext;
static bool sFailedToCreateGLContext = false;
static bool sValidSurface;
// Multitouch swipe thresholds in inches
static const double SWIPE_MAX_PINCH_DELTA_INCHES = 0.4;
@ -697,6 +698,7 @@ nsWindow::GetLayerManager(LayerManagerPersistence, bool* aAllowRetaining)
if (layerManager && layerManager->Initialize(sGLContext))
mLayerManager = layerManager;
sValidSurface = true;
}
if (!sGLContext || !mLayerManager) {
@ -820,6 +822,13 @@ nsWindow::OnGlobalAndroidEvent(AndroidGeckoEvent *ae)
}
break;
case AndroidGeckoEvent::SURFACE_CREATED:
break;
case AndroidGeckoEvent::SURFACE_DESTROYED:
sValidSurface = false;
break;
default:
break;
}
@ -990,6 +999,12 @@ nsWindow::OnDraw(AndroidGeckoEvent *ae)
return;
}
if (!sValidSurface) {
sGLContext->RenewSurface();
sValidSurface = true;
}
NS_ASSERTION(sGLContext, "Drawing with GLES without a GL context?");
DrawTo(nsnull);