xref: /aosp_15_r20/external/skia/tools/skia-client-search.html (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1*c8dee2aaSAndroid Build Coastguard Worker<!DOCTYPE html>
2*c8dee2aaSAndroid Build Coastguard Worker<html>
3*c8dee2aaSAndroid Build Coastguard Worker
4*c8dee2aaSAndroid Build Coastguard Worker<head>
5*c8dee2aaSAndroid Build Coastguard Worker    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
6*c8dee2aaSAndroid Build Coastguard Worker    <title>Skia Client Code Search</title>
7*c8dee2aaSAndroid Build Coastguard Worker
8*c8dee2aaSAndroid Build Coastguard Worker    <script>
9*c8dee2aaSAndroid Build Coastguard Worker        document.addEventListener('DOMContentLoaded', function () {
10*c8dee2aaSAndroid Build Coastguard Worker            document.getElementById('search-term').oninput =
11*c8dee2aaSAndroid Build Coastguard Worker                event => updateLinks(event.target.value);
12*c8dee2aaSAndroid Build Coastguard Worker            document.getElementById('open-all').onclick = event => {
13*c8dee2aaSAndroid Build Coastguard Worker                rawSearchTerm = document.getElementById('search-term').value;
14*c8dee2aaSAndroid Build Coastguard Worker                updateLinks(rawSearchTerm);
15*c8dee2aaSAndroid Build Coastguard Worker                openLinks();
16*c8dee2aaSAndroid Build Coastguard Worker                document.getElementById('open-all').value = 'Update all';
17*c8dee2aaSAndroid Build Coastguard Worker            };
18*c8dee2aaSAndroid Build Coastguard Worker            document.getElementById('search-term').value = window.location.search.substring(1);
19*c8dee2aaSAndroid Build Coastguard Worker        }, false);
20*c8dee2aaSAndroid Build Coastguard Worker
21*c8dee2aaSAndroid Build Coastguard Worker        function updateLinks(rawSearchTerm) {
22*c8dee2aaSAndroid Build Coastguard Worker            var term = encodeURIComponent(rawSearchTerm);
23*c8dee2aaSAndroid Build Coastguard Worker            document.getElementById('chromium-link').href =
24*c8dee2aaSAndroid Build Coastguard Worker                'https://cs.chromium.org/search/?q=' + term +
25*c8dee2aaSAndroid Build Coastguard Worker                '+-file:third_party/skia&sq=package:chromium&type=cs';
26*c8dee2aaSAndroid Build Coastguard Worker            document.getElementById('android-link').href =
27*c8dee2aaSAndroid Build Coastguard Worker                'http://cs.android.com/search?q=' + term +
28*c8dee2aaSAndroid Build Coastguard Worker                '+(-file:%5Eexternal/skia OR file:%5Eexternal/skia/Android.bp OR file:SkUserConfig)' +
29*c8dee2aaSAndroid Build Coastguard Worker                '+-file:%5Eexternal/skqp';
30*c8dee2aaSAndroid Build Coastguard Worker            document.getElementById('flutter-link').href =
31*c8dee2aaSAndroid Build Coastguard Worker                'https://github.com/search?q=repo%3Aflutter%2Fengine+' + term + '&type=code';
32*c8dee2aaSAndroid Build Coastguard Worker                // We would prefer to use this link (better search controls), but bugs and
33*c8dee2aaSAndroid Build Coastguard Worker                // staffing have caused it to stop indexing. For now, use Github instead.
34*c8dee2aaSAndroid Build Coastguard Worker                // 'https://cs.opensource.google/search?ss=flutter%2Fengine&q=' + term;
35*c8dee2aaSAndroid Build Coastguard Worker                // See also: https://chat.google.com/room/AAAAXsGfCIs/NmPA4hBSwJc
36*c8dee2aaSAndroid Build Coastguard Worker            document.getElementById('mozilla-link').href =
37*c8dee2aaSAndroid Build Coastguard Worker                'https://dxr.mozilla.org/mozilla-central/search?q=' + term;
38*c8dee2aaSAndroid Build Coastguard Worker            document.getElementById('libreoffice-link').href =
39*c8dee2aaSAndroid Build Coastguard Worker                'https://opengrok.libreoffice.org/search?full=' + term +
40*c8dee2aaSAndroid Build Coastguard Worker                '&searchall=true';
41*c8dee2aaSAndroid Build Coastguard Worker        }
42*c8dee2aaSAndroid Build Coastguard Worker
43*c8dee2aaSAndroid Build Coastguard Worker        function openLink(elementId) {
44*c8dee2aaSAndroid Build Coastguard Worker            if (document.getElementById(elementId + '-box').checked) {
45*c8dee2aaSAndroid Build Coastguard Worker                window.open(document.getElementById(elementId + '-link').href,
46*c8dee2aaSAndroid Build Coastguard Worker                    document.getElementById(elementId + '-link').id);
47*c8dee2aaSAndroid Build Coastguard Worker            }
48*c8dee2aaSAndroid Build Coastguard Worker        }
49*c8dee2aaSAndroid Build Coastguard Worker
50*c8dee2aaSAndroid Build Coastguard Worker        function openLinks() {
51*c8dee2aaSAndroid Build Coastguard Worker            openLink('chromium');
52*c8dee2aaSAndroid Build Coastguard Worker            openLink('android');
53*c8dee2aaSAndroid Build Coastguard Worker            openLink('flutter');
54*c8dee2aaSAndroid Build Coastguard Worker            openLink('mozilla');
55*c8dee2aaSAndroid Build Coastguard Worker            openLink('libreoffice');
56*c8dee2aaSAndroid Build Coastguard Worker        }
57*c8dee2aaSAndroid Build Coastguard Worker    </script>
58*c8dee2aaSAndroid Build Coastguard Worker</head>
59*c8dee2aaSAndroid Build Coastguard Worker
60*c8dee2aaSAndroid Build Coastguard Worker<body>
61*c8dee2aaSAndroid Build Coastguard Worker    <p>Note: Due to different querying capabilities, you may need to adjust your query after opening
62*c8dee2aaSAndroid Build Coastguard Worker        the links below.</p>
63*c8dee2aaSAndroid Build Coastguard Worker    <label for="search-term">Search term: </label>
64*c8dee2aaSAndroid Build Coastguard Worker    <input type="text" name="search-term" id="search-term">
65*c8dee2aaSAndroid Build Coastguard Worker    <input type="submit" value="Update all" id="open-all">
66*c8dee2aaSAndroid Build Coastguard Worker    <p>Links to Skia clients code search:</p>
67*c8dee2aaSAndroid Build Coastguard Worker    <ul>
68*c8dee2aaSAndroid Build Coastguard Worker        <li><input type="checkbox" id="chromium-box" checked="true"><a id="chromium-link">Chromium</a></li>
69*c8dee2aaSAndroid Build Coastguard Worker        <li><input type="checkbox" id="android-box" checked="true"><a id="android-link">Android (public)</a></li>
70*c8dee2aaSAndroid Build Coastguard Worker        <li><input type="checkbox" id="flutter-box" checked="true"><a id="flutter-link">Flutter</a></li>
71*c8dee2aaSAndroid Build Coastguard Worker        <li><input type="checkbox" id="mozilla-box" checked="true"><a id="mozilla-link">Mozilla</a>*</li>
72*c8dee2aaSAndroid Build Coastguard Worker        <!-- Less commonly used repos are not checked by default: -->
73*c8dee2aaSAndroid Build Coastguard Worker        <li><input type="checkbox" id="libreoffice-box"><a id="libreoffice-link">LibreOffice</a></li>
74*c8dee2aaSAndroid Build Coastguard Worker    </ul>
75*c8dee2aaSAndroid Build Coastguard Worker    <p>*: Mozilla results include Skia source code (searchfox.org doesn't support excluding paths). Most usage is in
76*c8dee2aaSAndroid Build Coastguard Worker        <b>gfx/2d</b>, but there is some usage elsewhere. Scoping your search to gfx/2d with the "Path filter" is
77*c8dee2aaSAndroid Build Coastguard Worker        helpful.
78*c8dee2aaSAndroid Build Coastguard Worker    </p>
79*c8dee2aaSAndroid Build Coastguard Worker    <p><a href="go/skia-client-search">Internal version</a></p>
80*c8dee2aaSAndroid Build Coastguard Worker</body>
81*c8dee2aaSAndroid Build Coastguard Worker
82*c8dee2aaSAndroid Build Coastguard Worker</html>