mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-12-28 11:28:38 +00:00
Bug 549491 - "The root node is never visible" exception when details of the root node are modified. r=mak
This commit is contained in:
parent
c4a79d838d
commit
c0d6725ddb
@ -787,6 +787,10 @@ PlacesTreeView.prototype = {
|
||||
if (!this._tree || !this._result)
|
||||
return;
|
||||
|
||||
// Nothing to do for the root node.
|
||||
if (aNode == this._rootNode)
|
||||
return;
|
||||
|
||||
let row = this._getRowForNode(aNode);
|
||||
if (row == -1)
|
||||
return;
|
||||
|
@ -50,6 +50,7 @@ _CHROME_TEST_FILES = \
|
||||
test_0_multiple_left_pane.xul \
|
||||
test_0_bug510634.xul \
|
||||
test_bug549192.xul \
|
||||
test_bug549491.xul \
|
||||
$(NULL)
|
||||
|
||||
libs:: $(_CHROME_TEST_FILES)
|
||||
|
82
browser/components/places/tests/chrome/test_bug549491.xul
Normal file
82
browser/components/places/tests/chrome/test_bug549491.xul
Normal file
@ -0,0 +1,82 @@
|
||||
<?xml version="1.0"?>
|
||||
|
||||
<!--
|
||||
Any copyright is dedicated to the Public Domain.
|
||||
http://creativecommons.org/licenses/publicdomain/
|
||||
-->
|
||||
|
||||
<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
|
||||
<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css"
|
||||
type="text/css"?>
|
||||
|
||||
<?xml-stylesheet href="chrome://browser/content/places/places.css"?>
|
||||
<?xml-stylesheet href="chrome://browser/skin/places/places.css"?>
|
||||
<?xul-overlay href="chrome://browser/content/places/placesOverlay.xul"?>
|
||||
|
||||
<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
title="549491: 'The root node is never visible' exception when details of the root node are modified "
|
||||
onload="runTest();">
|
||||
|
||||
<script type="application/javascript"
|
||||
src="chrome://mochikit/content/MochiKit/packed.js" />
|
||||
<script type="application/javascript"
|
||||
src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js" />
|
||||
|
||||
<body xmlns="http://www.w3.org/1999/xhtml" />
|
||||
|
||||
<tree id="tree"
|
||||
type="places"
|
||||
flatList="true"
|
||||
flex="1">
|
||||
<treecols>
|
||||
<treecol label="Title" id="title" anonid="title" primary="true" ordinal="1" flex="1"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol label="Date" anonid="date" flex="1"/>
|
||||
</treecols>
|
||||
<treechildren flex="1"/>
|
||||
</tree>
|
||||
|
||||
<script type="application/javascript"><![CDATA[
|
||||
/**
|
||||
* Bug 549491
|
||||
* https://bugzilla.mozilla.org/show_bug.cgi?id=549491
|
||||
*
|
||||
* Ensures that changing the details of places tree's root-node doesn't
|
||||
* throw.
|
||||
*/
|
||||
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
|
||||
function runTest() {
|
||||
const Cc = Components.classes;
|
||||
const Ci = Components.interfaces;
|
||||
Components.utils.import("resource://gre/modules/Services.jsm");
|
||||
|
||||
PlacesUtils.bhistory.removeAllPages();
|
||||
PlacesUtils.history
|
||||
.addVisit(Services.io.newURI("http://example.tld/", null, null),
|
||||
Date.now() * 1000, null, PlacesUtils.history.TRANSITION_TYPED, false, 0);
|
||||
|
||||
// Make a history query.
|
||||
let query = PlacesUtils.history.getNewQuery();
|
||||
let opts = PlacesUtils.history.getNewQueryOptions();
|
||||
let queryURI = PlacesUtils.history.queriesToQueryString([query], 1, opts);
|
||||
|
||||
// Setup the places tree contents.
|
||||
let tree = document.getElementById("tree");
|
||||
tree.place = queryURI;
|
||||
|
||||
let rootNode = tree.result.root;
|
||||
let obs = tree.view.QueryInterface(Ci.nsINavHistoryResultObserver);
|
||||
obs.nodeHistoryDetailsChanged(rootNode, rootNode.time, rootNode.accessCount);
|
||||
obs.nodeTitleChanged(rootNode, rootNode.title);
|
||||
ok(true, "No exceptions thrown");
|
||||
|
||||
// Cleanup.
|
||||
PlacesUtils.bhistory.removeAllPages();
|
||||
|
||||
SimpleTest.finish();
|
||||
}
|
||||
|
||||
]]></script>
|
||||
</window>
|
Loading…
Reference in New Issue
Block a user