fune/browser/base/content/test/newtab/browser_newtab_bug765628.js
Aryeh Gregor 76862dadad Bug 1299453 - Stop using createEvent("DragEvents"/"KeyEvents") internally; r=smaug
They are non-standard aliases for "DragEvent" and "KeyboardEvent" that
are not supported by any other UA, and we would like to drop support.
So first let's stop using them ourselves, so we can use telemetry to see
if any sites are using them.

MozReview-Commit-ID: ICC33ORa2st
2016-08-31 20:38:50 +03:00

32 lines
1.1 KiB
JavaScript

/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
add_task(function* () {
yield setLinks("0,1,2,3,4,5,6,7,8");
setPinnedLinks("");
yield* addNewTabPageTab();
yield checkGrid("0,1,2,3,4,5,6,7,8");
yield ContentTask.spawn(gBrowser.selectedBrowser, {}, function*() {
const BAD_DRAG_DATA = "javascript:alert('h4ck0rz');\nbad stuff";
const GOOD_DRAG_DATA = "http://example99.com/\nsite 99";
function sendDropEvent(aCellIndex, aDragData) {
let dataTransfer = new content.DataTransfer("dragstart", false);
dataTransfer.mozSetDataAt("text/x-moz-url", aDragData, 0);
let event = content.document.createEvent("DragEvent");
event.initDragEvent("drop", true, true, content, 0, 0, 0, 0, 0,
false, false, false, false, 0, null, dataTransfer);
let target = content.gGrid.cells[aCellIndex].node;
target.dispatchEvent(event);
}
sendDropEvent(0, BAD_DRAG_DATA);
sendDropEvent(1, GOOD_DRAG_DATA);
});
yield whenPagesUpdated();
yield* checkGrid("0,99p,1,2,3,4,5,6,7");
});