• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1--
2-- Copyright 2021 The Android Open Source Project
3--
4-- Licensed under the Apache License, Version 2.0 (the "License");
5-- you may not use this file except in compliance with the License.
6-- You may obtain a copy of the License at
7--
8--     https://www.apache.org/licenses/LICENSE-2.0
9--
10-- Unless required by applicable law or agreed to in writing, software
11-- distributed under the License is distributed on an "AS IS" BASIS,
12-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13-- See the License for the specific language governing permissions and
14-- limitations under the License.
15--
16-- Get all chrome processes and threads tables set up.
17SELECT RUN_METRIC('chrome/chrome_processes.sql');
18
19-- When working on InputLatency events we need to ensure we have all the events
20-- from the browser, renderer, and GPU processes. This query isn't quite
21-- perfect. In system tracing we could have 3 browser processes all in the
22-- background and this would match, but for now its the best we can do (renderer
23-- and GPU names on android are quite complicated, but this should filter 99%
24-- (citation needed) of what we want.
25--
26-- See b/151077536 for historical context.
27DROP VIEW IF EXISTS sufficient_chrome_processes;
28CREATE VIEW sufficient_chrome_processes AS
29  SELECT
30    CASE WHEN (
31      SELECT COUNT(*) FROM chrome_process) = 0
32    THEN
33      FALSE
34    ELSE (
35      SELECT COUNT(*) >= 3 FROM (
36        SELECT name FROM chrome_process
37        WHERE
38          name GLOB "Browser" OR
39          name GLOB "Renderer" OR
40          name GLOB "Gpu" OR
41          name GLOB 'com.android.chrome*' OR
42          name GLOB 'com.chrome.beta*' OR
43          name GLOB 'com.chrome.dev*' OR
44          name GLOB 'com.chrome.canary*' OR
45          name GLOB 'com.google.android.apps.chrome*' OR
46          name GLOB 'org.chromium.chrome*'
47        GROUP BY name
48    )) END AS have_enough_chrome_processes;