mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Merge m-c to m-i.
This commit is contained in:
commit
191bb9812c
@ -190,12 +190,6 @@ Accessible::~Accessible()
|
||||
{
|
||||
}
|
||||
|
||||
void
|
||||
Accessible::SetRoleMapEntry(nsRoleMapEntry* aRoleMapEntry)
|
||||
{
|
||||
mRoleMapEntry = aRoleMapEntry;
|
||||
}
|
||||
|
||||
void
|
||||
Accessible::Init()
|
||||
{
|
||||
|
@ -311,7 +311,8 @@ public:
|
||||
* @param aRoleMapEntry The ARIA nsRoleMapEntry* for the accessible, or
|
||||
* nullptr if none.
|
||||
*/
|
||||
virtual void SetRoleMapEntry(nsRoleMapEntry* aRoleMapEntry);
|
||||
void SetRoleMapEntry(nsRoleMapEntry* aRoleMapEntry)
|
||||
{ mRoleMapEntry = aRoleMapEntry; }
|
||||
|
||||
/**
|
||||
* Update the children cache.
|
||||
|
@ -243,29 +243,6 @@ DocAccessible::NativeRole()
|
||||
return roles::PANE; // Fall back;
|
||||
}
|
||||
|
||||
// Accessible public method
|
||||
void
|
||||
DocAccessible::SetRoleMapEntry(nsRoleMapEntry* aRoleMapEntry)
|
||||
{
|
||||
NS_ASSERTION(mDocument, "No document during initialization!");
|
||||
if (!mDocument)
|
||||
return;
|
||||
|
||||
mRoleMapEntry = aRoleMapEntry;
|
||||
|
||||
nsIDocument *parentDoc = mDocument->GetParentDocument();
|
||||
if (!parentDoc)
|
||||
return; // No parent document for the root document
|
||||
|
||||
// Allow use of ARIA role from outer to override
|
||||
nsIContent *ownerContent = parentDoc->FindContentForSubDocument(mDocument);
|
||||
if (ownerContent) {
|
||||
nsRoleMapEntry* roleMapEntry = aria::GetRoleMap(ownerContent);
|
||||
if (roleMapEntry)
|
||||
mRoleMapEntry = roleMapEntry; // Override
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
DocAccessible::Description(nsString& aDescription)
|
||||
{
|
||||
|
@ -95,8 +95,6 @@ public:
|
||||
virtual void ApplyARIAState(uint64_t* aState) const;
|
||||
virtual already_AddRefed<nsIPersistentProperties> Attributes();
|
||||
|
||||
virtual void SetRoleMapEntry(nsRoleMapEntry* aRoleMapEntry);
|
||||
|
||||
#ifdef A11Y_LOG
|
||||
virtual nsresult HandleAccEvent(AccEvent* aEvent);
|
||||
#endif
|
||||
|
@ -1898,7 +1898,9 @@ HyperTextAccessible::ScrollSubstringToPoint(int32_t aStartIndex,
|
||||
rv = HypertextOffsetsToDOMRange(aStartIndex, aEndIndex, range);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
nsPresContext *presContext = frame->PresContext();
|
||||
nsPresContext* presContext = frame->PresContext();
|
||||
nsPoint coordsInAppUnits =
|
||||
coords.ToAppUnits(presContext->AppUnitsPerDevPixel());
|
||||
|
||||
bool initialScrolled = false;
|
||||
nsIFrame *parentFrame = frame;
|
||||
@ -1908,12 +1910,9 @@ HyperTextAccessible::ScrollSubstringToPoint(int32_t aStartIndex,
|
||||
if (!initialScrolled) {
|
||||
// Scroll substring to the given point. Turn the point into percents
|
||||
// relative scrollable area to use nsCoreUtils::ScrollSubstringTo.
|
||||
nsIntRect frameRect = parentFrame->GetScreenRectExternal();
|
||||
int32_t devOffsetX = coords.x - frameRect.x;
|
||||
int32_t devOffsetY = coords.y - frameRect.y;
|
||||
|
||||
nsPoint offsetPoint(presContext->DevPixelsToAppUnits(devOffsetX),
|
||||
presContext->DevPixelsToAppUnits(devOffsetY));
|
||||
nsRect frameRect = parentFrame->GetScreenRectInAppUnits();
|
||||
nscoord offsetPointX = coordsInAppUnits.x - frameRect.x;
|
||||
nscoord offsetPointY = coordsInAppUnits.y - frameRect.y;
|
||||
|
||||
nsSize size(parentFrame->GetSize());
|
||||
|
||||
@ -1921,8 +1920,8 @@ HyperTextAccessible::ScrollSubstringToPoint(int32_t aStartIndex,
|
||||
size.width = size.width ? size.width : 1;
|
||||
size.height = size.height ? size.height : 1;
|
||||
|
||||
int16_t hPercent = offsetPoint.x * 100 / size.width;
|
||||
int16_t vPercent = offsetPoint.y * 100 / size.height;
|
||||
int16_t hPercent = offsetPointX * 100 / size.width;
|
||||
int16_t vPercent = offsetPointY * 100 / size.height;
|
||||
|
||||
rv = nsCoreUtils::ScrollSubstringTo(frame, range, vPercent, hPercent);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
@ -131,6 +131,24 @@ function testBounds(aID, aRect)
|
||||
is(height, expectedHeight, "Wrong height of " + prettyName(aID));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test text position at the given offset.
|
||||
*/
|
||||
function testTextPos(aID, aOffset, aPoint, aCoordOrigin)
|
||||
{
|
||||
var [expectedX, expectedY] = aPoint;
|
||||
|
||||
var xObj = {}, yObj = {};
|
||||
var hyperText = getAccessible(aID, [nsIAccessibleText]);
|
||||
hyperText.getCharacterExtents(aOffset, xObj, yObj, {}, {}, aCoordOrigin);
|
||||
is(xObj.value, expectedX,
|
||||
"Wrong x coordinate at offset " + aOffset + " for " + prettyName(aID));
|
||||
ok(yObj.value - expectedY < 2 && expectedY - yObj.value < 2,
|
||||
"Wrong y coordinate at offset " + aOffset + " for " + prettyName(aID) +
|
||||
" - got " + yObj.value + ", expected " + expectedY +
|
||||
"The difference doesn't exceed 1.");
|
||||
}
|
||||
|
||||
/**
|
||||
* Test text bounds that is enclosed betwene the given offsets.
|
||||
*/
|
||||
|
@ -12,6 +12,7 @@ relativesrcdir = accessible/scroll
|
||||
include $(DEPTH)/config/autoconf.mk
|
||||
|
||||
MOCHITEST_A11Y_FILES =\
|
||||
test_zoom_text.html \
|
||||
test_zoom.html \
|
||||
$(NULL)
|
||||
|
||||
|
158
accessible/tests/mochitest/scroll/test_zoom_text.html
Normal file
158
accessible/tests/mochitest/scroll/test_zoom_text.html
Normal file
@ -0,0 +1,158 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Test scrollSubstringToPoint when page is zoomed</title>
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="chrome://mochikit/content/tests/SimpleTest/test.css" />
|
||||
|
||||
<script type="application/javascript"
|
||||
src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
|
||||
<script type="application/javascript"
|
||||
src="chrome://mochikit/content/tests/SimpleTest/EventUtils.js"></script>
|
||||
|
||||
<script type="application/javascript"
|
||||
src="../common.js"></script>
|
||||
<script type="application/javascript"
|
||||
src="../role.js"></script>
|
||||
<script type="application/javascript"
|
||||
src="../layout.js"></script>
|
||||
<script type="application/javascript"
|
||||
src="../browser.js"></script>
|
||||
|
||||
<script type="application/javascript">
|
||||
function doTest()
|
||||
{
|
||||
var tabDocument = currentTabDocument();
|
||||
var paragraphNode = tabDocument.getElementById("paragraph");
|
||||
var paragraph = getAccessible(paragraphNode, [nsIAccessibleText]);
|
||||
var offset = 64; // beginning of 4th stanza
|
||||
|
||||
var [x, y] = getPos(paragraph);
|
||||
var [docX, docY] = getPos(tabDocument);
|
||||
|
||||
paragraph.scrollSubstringToPoint(offset, offset,
|
||||
COORDTYPE_SCREEN_RELATIVE, docX, docY);
|
||||
testTextPos(paragraph, offset, [x, docY], COORDTYPE_SCREEN_RELATIVE);
|
||||
|
||||
zoomDocument(tabDocument, 2.0);
|
||||
|
||||
paragraphNode = tabDocument.getElementById("paragraph2");
|
||||
paragraph = getAccessible(paragraphNode, [nsIAccessibleText]);
|
||||
offset = 52; // // beginning of 4th stanza
|
||||
var [x, y] = getPos(paragraph);
|
||||
paragraph.scrollSubstringToPoint(offset, offset,
|
||||
COORDTYPE_SCREEN_RELATIVE, docX, docY);
|
||||
testTextPos(paragraph, offset, [x, docY], COORDTYPE_SCREEN_RELATIVE);
|
||||
|
||||
closeBrowserWindow();
|
||||
SimpleTest.finish();
|
||||
}
|
||||
|
||||
var url = "data:text/html,<html>" +
|
||||
"<meta http-equiv='Content-Type' content='text/html;charset=utf-8' />" +
|
||||
"<body>" +
|
||||
"<br><br><br><br><br><br><br><br><br><br>" +
|
||||
"<br><br><br><br><br><br><br><br><br><br>" +
|
||||
"<br><br><br><br><br><br><br><br><br><br>" +
|
||||
"<br><br><br><br><br><br><br><br><br><br>" +
|
||||
"<br><br><br><br><br><br><br><br><br><br>" +
|
||||
"<br><br><br><br><br><br><br><br><br><br>" +
|
||||
"<br><br><br><br><br><br><br><br><br><br>" +
|
||||
"<br><br><br><br><br><br><br><br><br><br>" +
|
||||
"<br><br><br><br><br><br><br><br><br><br>" +
|
||||
"<br><br><br><br><br><br><br><br><br><br>" +
|
||||
"<br><br><br><br><br><br><br><br><br><br>" +
|
||||
"<br><br><br><br><br><br><br><br><br><br>" +
|
||||
"<br><br><br><br><br><br><br><br><br><br>" +
|
||||
"<br><br><br><br><br><br><br><br><br><br>" +
|
||||
"<br><br><br><br><br><br><br><br><br><br>" +
|
||||
"<br><br><br><br><br><br><br><br><br><br>" +
|
||||
"<br><br><br><br><br><br><br><br><br><br>" +
|
||||
"<br><br><br><br><br><br><br><br><br><br>" +
|
||||
"<br><br><br><br><br><br><br><br><br><br>" +
|
||||
"<br><br><br><br><br><br><br><br><br><br>" +
|
||||
"<br><br><br><br><br><br><br><br><br><br>" +
|
||||
"<br><br><br><br><br><br><br><br><br><br>" +
|
||||
"<br><br><br><br><br><br><br><br><br><br>" +
|
||||
"<br><br><br><br><br><br><br><br><br><br>" +
|
||||
"<br><br><br><br><br><br><br><br><br><br>" +
|
||||
"<br><br><br><br><br><br><br><br><br><br>" +
|
||||
"<br><br><br><br><br><br><br><br><br><br>" +
|
||||
"<br><br><br><br><br><br><br><br><br><br>" +
|
||||
"<br><br><br><br><br><br><br><br><br><br>" +
|
||||
"<br><br><br><br><br><br><br><br><br><br>" +
|
||||
"<br><br><br><br><br><br><br><br><br><br>" +
|
||||
"<br><br><br><br><br><br><br><br><br><br>" +
|
||||
"<br><br><br><br><br><br><br><br><br><br>" +
|
||||
"<br><br><br><br><br><br><br><br><br><br><hr>" +
|
||||
"<p id='paragraph'>" +
|
||||
" Пошел котик на торжок<br>" +
|
||||
" Купил котик пирожок<br>" +
|
||||
" Пошел котик на улочку<br>" +
|
||||
" Купил котик булочку<br>" +
|
||||
"</p>" +
|
||||
"<hr><br><br><br><br><br><br><br><br><br><br>" +
|
||||
"<br><br><br><br><br><br><br><br><br><br>" +
|
||||
"<br><br><br><br><br><br><br><br><br><br>" +
|
||||
"<br><br><br><br><br><br><br><br><br><br>" +
|
||||
"<br><br><br><br><br><br><br><br><br><br>" +
|
||||
"<br><br><br><br><br><br><br><br><br><br><hr>" +
|
||||
"<p id='paragraph2'>" +
|
||||
" Самому ли съесть<br>" +
|
||||
" Либо Сашеньке снесть<br>" +
|
||||
" Я и сам укушу<br>" +
|
||||
" Я и Сашеньке снесу<br>" +
|
||||
"</p>" +
|
||||
"<hr><br><br><br><br><br><br><br><br><br><br>" +
|
||||
"<br><br><br><br><br><br><br><br><br><br>" +
|
||||
"<br><br><br><br><br><br><br><br><br><br>" +
|
||||
"<br><br><br><br><br><br><br><br><br><br>" +
|
||||
"<br><br><br><br><br><br><br><br><br><br>" +
|
||||
"<br><br><br><br><br><br><br><br><br><br>" +
|
||||
"<br><br><br><br><br><br><br><br><br><br>" +
|
||||
"<br><br><br><br><br><br><br><br><br><br>" +
|
||||
"<br><br><br><br><br><br><br><br><br><br>" +
|
||||
"<br><br><br><br><br><br><br><br><br><br>" +
|
||||
"<br><br><br><br><br><br><br><br><br><br>" +
|
||||
"<br><br><br><br><br><br><br><br><br><br>" +
|
||||
"<br><br><br><br><br><br><br><br><br><br>" +
|
||||
"<br><br><br><br><br><br><br><br><br><br>" +
|
||||
"<br><br><br><br><br><br><br><br><br><br>" +
|
||||
"<br><br><br><br><br><br><br><br><br><br>" +
|
||||
"<br><br><br><br><br><br><br><br><br><br>" +
|
||||
"<br><br><br><br><br><br><br><br><br><br>" +
|
||||
"<br><br><br><br><br><br><br><br><br><br>" +
|
||||
"<br><br><br><br><br><br><br><br><br><br>" +
|
||||
"<br><br><br><br><br><br><br><br><br><br>" +
|
||||
"<br><br><br><br><br><br><br><br><br><br>" +
|
||||
"<br><br><br><br><br><br><br><br><br><br>" +
|
||||
"<br><br><br><br><br><br><br><br><br><br>" +
|
||||
"<br><br><br><br><br><br><br><br><br><br>" +
|
||||
"<br><br><br><br><br><br><br><br><br><br>" +
|
||||
"<br><br><br><br><br><br><br><br><br><br>" +
|
||||
"<br><br><br><br><br><br><br><br><br><br>" +
|
||||
"<br><br><br><br><br><br><br><br><br><br>" +
|
||||
"<br><br><br><br><br><br><br><br><br><br>" +
|
||||
"<br><br><br><br><br><br><br><br><br><br>" +
|
||||
"</body></html>";
|
||||
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
openBrowserWindow(doTest,
|
||||
url,
|
||||
{ left: 0, top: 0, width: 600, height: 600 });
|
||||
</script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<a target="_blank"
|
||||
href="https://bugzilla.mozilla.org/show_bug.cgi?id=727942"
|
||||
title="scrollSubstringToPoint is broken when page is zoomed">
|
||||
Mozilla Bug 727942
|
||||
</a>
|
||||
<p id="display"></p>
|
||||
<div id="content" style="display: none"></div>
|
||||
<pre id="test">
|
||||
</pre>
|
||||
</body>
|
||||
</html>
|
@ -3,7 +3,7 @@
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
llvm_revision = "164411"
|
||||
llvm_revision = "166095"
|
||||
moz_version = "moz0"
|
||||
|
||||
##############################################
|
||||
|
@ -28,7 +28,7 @@ void
|
||||
nsWindowMemoryReporter::Init()
|
||||
{
|
||||
// The memory reporter manager will own this object.
|
||||
nsWindowMemoryReporter *windowReporter = new nsWindowMemoryReporter();
|
||||
nsRefPtr<nsWindowMemoryReporter> windowReporter = new nsWindowMemoryReporter();
|
||||
NS_RegisterMemoryMultiReporter(windowReporter);
|
||||
|
||||
nsCOMPtr<nsIObserverService> os = services::GetObserverService();
|
||||
@ -41,11 +41,11 @@ nsWindowMemoryReporter::Init()
|
||||
/* weakRef = */ true);
|
||||
}
|
||||
|
||||
GhostURLsReporter *ghostMultiReporter =
|
||||
nsRefPtr<GhostURLsReporter> ghostMultiReporter =
|
||||
new GhostURLsReporter(windowReporter);
|
||||
NS_RegisterMemoryMultiReporter(ghostMultiReporter);
|
||||
|
||||
NumGhostsReporter *ghostReporter =
|
||||
nsRefPtr<NumGhostsReporter> ghostReporter =
|
||||
new NumGhostsReporter(windowReporter);
|
||||
NS_RegisterMemoryReporter(ghostReporter);
|
||||
}
|
||||
|
@ -123,6 +123,7 @@ function PeerConnection() {
|
||||
|
||||
this._pc = null;
|
||||
this._observer = null;
|
||||
this._closed = false;
|
||||
|
||||
this._onCreateOfferSuccess = null;
|
||||
this._onCreateOfferFailure = null;
|
||||
@ -203,6 +204,9 @@ PeerConnection.prototype = {
|
||||
* call _executeNext, false if it doesn't have a callback.
|
||||
*/
|
||||
_queueOrRun: function(obj) {
|
||||
if (this._closed) {
|
||||
return;
|
||||
}
|
||||
if (!this._pending) {
|
||||
obj.func.apply(this, obj.args);
|
||||
if (obj.wait) {
|
||||
@ -420,6 +424,7 @@ PeerConnection.prototype = {
|
||||
args: [],
|
||||
wait: false
|
||||
});
|
||||
this._closed = true;
|
||||
},
|
||||
|
||||
get localStreams() {
|
||||
|
Loading…
Reference in New Issue
Block a user