This file is indexed.

/usr/share/unity-webapps/userscripts/common/validate.js is in unity-webapps-common 2.4.17+14.04.20140416-0ubuntu1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
function validatedNodes(nodeInfo) {
    var resultSet = document.evaluate(nodeInfo.query,
                                      document,
                                      null,
                                      XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,
                                      null);
    if (resultSet.snapshotLength === 0) {
        reportTestState("REPORT: ERROR: Failed to find any nodes for " + nodeInfo.name);
        return [];
    }

    var i, arrayized = [];
    for (i = 0; i < resultSet.snapshotLength; i++) {
        arrayized.push(resultSet.snapshotItem(i));
    }

    if (nodeInfo.validator === undefined) {
        return arrayized;
    }

    if (!nodeInfo.validator(arrayized)) {
        if (nodeInfo.fragment === undefined) {
            reportTestState("REPORT: ERROR: Failed to validate node " + nodeInfo.name);
            return null;
        }

        var testNode = document.createElement("div");
        testNode.innerHTML = nodeInfo.fragment;
        resultSet = document.evaluate(nodeInfo.query, testNode, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
        var fragmentOk = resultSet.snapshotLength > 0 && nodeInfo.validator(resultSet.snapshotItem(0));
        reportTestState("REPORT: ERROR: Failed to validate node " + nodeInfo.name + " fragment check " + (fragmentOk ? "OK" : "failed"));
        return null;
    }

    return arrayized;
}

function validatedNode(nodeInfo) {
    var resultSet = document.evaluate(nodeInfo.query,
                                      document,
                                      null,
                                      XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,
                                      null);
    if (resultSet.snapshotLength === 0) {
        reportTestState("REPORT: ERROR: Failed to find any nodes for " + nodeInfo.name);
        return null;
    }

    var item = resultSet.snapshotItem(0);

    if (nodeInfo.validator === undefined) {
        return item;
    }

    if (!nodeInfo.validator(resultSet.snapshotItem(0))) {
        // Validation failed, check the fragment
        if (nodeInfo.fragment === undefined) {
            reportTestState("REPORT: ERROR: Failed to validate node " + nodeInfo.name);
            return null;
        }

        var testNode = document.createElement("div");
        testNode.innerHTML = nodeInfo.fragment;
        resultSet = document.evaluate(nodeInfo.query, testNode, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
        var fragmentOk = resultSet.snapshotLength > 0 && nodeInfo.validator(resultSet.snapshotItem(0));
        reportTestState("REPORT: ERROR: Failed to validate node " + nodeInfo.name + " fragment check " + (fragmentOk ? "OK" : "failed"));
        return null;
    }

    return item;
}

function validatedNodeValue(nodeInfo, node) {
    if (nodeInfo.value === undefined) {
        throw new Error("Attempt to retrieve node value without a value probing function");
    }
    return nodeInfo.value(node === undefined ? validatedNode(nodeInfo) : node);
}