mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-23 02:05:42 +00:00
Bug 1280582 - Implement browser.history.onTitleChanged. r=bsilverberg,mixedpuppy
MozReview-Commit-ID: jzil9lDYnN --HG-- extra : rebase_source : c7c000a17a1021f46d60ee7bc9d889c11a1bf384
This commit is contained in:
parent
dd5be9dee0
commit
fa1f43e7c6
@ -113,7 +113,9 @@ function getObserver() {
|
||||
},
|
||||
onBeginUpdateBatch: function() {},
|
||||
onEndUpdateBatch: function() {},
|
||||
onTitleChanged: function() {},
|
||||
onTitleChanged: function(uri, title) {
|
||||
this.emit("titleChanged", {url: uri.spec, title: title});
|
||||
},
|
||||
onClearHistory: function() {
|
||||
this.emit("visitRemoved", {allHistory: true, urls: []});
|
||||
},
|
||||
@ -241,6 +243,17 @@ extensions.registerSchemaAPI("history", "addon_parent", context => {
|
||||
getObserver().off("visitRemoved", listener);
|
||||
};
|
||||
}).api(),
|
||||
|
||||
onTitleChanged: new SingletonEventManager(context, "history.onTitleChanged", fire => {
|
||||
let listener = (event, data) => {
|
||||
fire.sync(data);
|
||||
};
|
||||
|
||||
getObserver().on("titleChanged", listener);
|
||||
return () => {
|
||||
getObserver().off("titleChanged", listener);
|
||||
};
|
||||
}).api(),
|
||||
},
|
||||
};
|
||||
});
|
||||
|
@ -310,6 +310,27 @@
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "onTitleChanged",
|
||||
"type": "function",
|
||||
"description": "Fired when the title of a URL is changed in the browser history.",
|
||||
"parameters": [
|
||||
{
|
||||
"name": "changed",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"url": {
|
||||
"type": "string",
|
||||
"description": "The URL for which the title has changed"
|
||||
},
|
||||
"title": {
|
||||
"type": "string",
|
||||
"description": "The new title for the URL."
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
@ -422,6 +422,13 @@ add_task(function* test_on_visited() {
|
||||
{date: new Date(visitDate += 1000)},
|
||||
],
|
||||
},
|
||||
{
|
||||
url: SINGLE_VISIT_URL,
|
||||
title: "Title Changed",
|
||||
visits: [
|
||||
{date: new Date(visitDate)},
|
||||
],
|
||||
},
|
||||
];
|
||||
|
||||
function background() {
|
||||
@ -432,11 +439,16 @@ add_task(function* test_on_visited() {
|
||||
return;
|
||||
}
|
||||
onVisitedData.push(data);
|
||||
if (onVisitedData.length == 3) {
|
||||
if (onVisitedData.length == 4) {
|
||||
browser.test.sendMessage("on-visited-data", onVisitedData);
|
||||
}
|
||||
});
|
||||
|
||||
// Verifying onTitleChange Event along with onVisited event
|
||||
browser.history.onTitleChanged.addListener(data => {
|
||||
browser.test.sendMessage("on-title-changed-data", data);
|
||||
});
|
||||
|
||||
browser.test.sendMessage("ready");
|
||||
}
|
||||
|
||||
@ -483,5 +495,14 @@ add_task(function* test_on_visited() {
|
||||
expected.visitCount = 2;
|
||||
checkOnVisitedData(2, expected);
|
||||
|
||||
expected.url = PAGE_INFOS[2].url;
|
||||
expected.title = PAGE_INFOS[2].title;
|
||||
expected.time = PAGE_INFOS[2].visits[0].date.getTime();
|
||||
expected.visitCount = 2;
|
||||
checkOnVisitedData(3, expected);
|
||||
|
||||
let onTitleChangedData = yield extension.awaitMessage("on-title-changed-data");
|
||||
equal(onTitleChangedData.title, "Title Changed", "ontitleChanged received the expected title.");
|
||||
|
||||
yield extension.unload();
|
||||
});
|
||||
|
Loading…
Reference in New Issue
Block a user