mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-25 22:01:30 +00:00
Merge mozilla-central to Places
This commit is contained in:
commit
a5c05b1e08
@ -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")) {
|
||||
|
@ -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()
|
||||
|
@ -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)
|
||||
];
|
||||
}
|
||||
|
@ -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() {
|
||||
|
@ -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,
|
||||
|
@ -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");
|
||||
|
@ -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>
|
@ -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
|
||||
|
@ -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");
|
||||
}
|
||||
|
@ -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>
|
@ -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
|
||||
|
@ -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;
|
||||
|
@ -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>
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
@ -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)))
|
||||
|
@ -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
|
@ -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;
|
||||
};
|
||||
|
||||
|
@ -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;
|
||||
};
|
||||
|
@ -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?");
|
||||
|
@ -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)
|
||||
|
16
content/smil/crashtests/615002-1.svg
Normal file
16
content/smil/crashtests/615002-1.svg
Normal 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 |
@ -32,3 +32,4 @@ load 606101-1.svg
|
||||
load 608549-1.svg
|
||||
load 608295-1.html
|
||||
load 611927-1.svg
|
||||
load 615002-1.svg
|
||||
|
@ -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) {
|
||||
|
22
content/xslt/crashtests/602115.html
Normal file
22
content/xslt/crashtests/602115.html
Normal 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>
|
@ -11,3 +11,4 @@ load 528488.xml
|
||||
load 528963.xml
|
||||
load 545927.html
|
||||
load 601543.html
|
||||
load 602115.html
|
||||
|
@ -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*
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
|
@ -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)) {
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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;
|
||||
|
@ -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() {
|
||||
|
@ -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:
|
||||
|
@ -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; }
|
||||
|
||||
/**
|
||||
|
@ -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*
|
||||
|
@ -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);
|
||||
|
@ -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>
|
||||
|
@ -104,7 +104,7 @@ public:
|
||||
void *CallbackData;
|
||||
};
|
||||
|
||||
bool EndTransaction(DrawThebesLayerCallback aCallback,
|
||||
void EndTransaction(DrawThebesLayerCallback aCallback,
|
||||
void* aCallbackData);
|
||||
|
||||
const CallbackInfo &GetCallbackInfo() { return mCurrentCallbackInfo; }
|
||||
|
@ -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
|
||||
|
@ -132,7 +132,7 @@ public:
|
||||
void *CallbackData;
|
||||
};
|
||||
|
||||
bool EndTransaction(DrawThebesLayerCallback aCallback,
|
||||
void EndTransaction(DrawThebesLayerCallback aCallback,
|
||||
void* aCallbackData);
|
||||
|
||||
const CallbackInfo &GetCallbackInfo() { return mCurrentCallbackInfo; }
|
||||
|
@ -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>
|
||||
|
@ -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; }
|
||||
|
@ -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
|
||||
|
@ -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,
|
||||
|
@ -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();
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
@ -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,
|
||||
|
@ -508,7 +508,6 @@ SyncKeyBundle.prototype = {
|
||||
this._hmac = null;
|
||||
this._hmacObj = null;
|
||||
this._encrypt = null;
|
||||
this.generateEntry();
|
||||
},
|
||||
|
||||
/*
|
||||
|
@ -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.");
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -389,7 +389,6 @@ NO_PKG_FILES += \
|
||||
nsinstall \
|
||||
viewer \
|
||||
TestGtkEmbed \
|
||||
bloaturls.txt \
|
||||
codesighs* \
|
||||
elf-dynstr-gc \
|
||||
mangle* \
|
||||
|
BIN
toolkit/themes/pinstripe/global/icons/tabprompts-bgtexture.png
Normal file
BIN
toolkit/themes/pinstripe/global/icons/tabprompts-bgtexture.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 5.8 KiB |
@ -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)
|
||||
|
@ -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 {
|
||||
|
BIN
toolkit/themes/winstripe/global/icons/tabprompts-bgtexture.png
Normal file
BIN
toolkit/themes/winstripe/global/icons/tabprompts-bgtexture.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.7 KiB |
@ -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)
|
||||
|
@ -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 {
|
||||
|
@ -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
|
||||
};
|
||||
|
||||
|
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user