1<?xml version="1.0" encoding="UTF-8"?>
2<!--
3  Copyright (c) 2012 The Chromium Authors. All rights reserved.
4  Use of this source code is governed by a BSD-style license that can be
5  found in the LICENSE file.
6-->
7
8<!--
9Documentation: http://findbugs.sourceforge.net/manual/filter.html
10In particular, ~ at the start of a string means it's a regex.
11-->
12<FindBugsFilter>
13  <!-- Skip the generated resource classes (including nested classes). -->
14  <Match>
15    <Class name="~org\.chromium\..*\.R(\$\w+)?" />
16  </Match>
17  <Match>
18    <Class name="~org\.chromium\..*\.Manifest(\$\w+)?" />
19  </Match>
20  <!-- Ignore bugs in NativeLibraries.java (the auto-generation confuses findbugs). -->
21  <Match>
22    <Class name="~org\.chromium\.base\..*\.NativeLibraries.*?" />
23  </Match>
24  <!--
25  Ignore bugs in CleanupReferenceTest.java (redundant null check)
26  TODO(joth): Group all GC related tests and filter them out, since the null
27  check is necessary to make sure the nullification is flushed to memory.
28  -->
29  <Match>
30    <Class name="~org\.chromium\.content\..*\.CleanupReferenceTest.*?" />
31  </Match>
32  <!-- Ignore errors in JavaBridge due to reflection. -->
33  <Match>
34    <Class name="~.*\.JavaBridge.*"/>
35    <Bug code="UuF,UrF,UMAC" />
36  </Match>
37  <!-- "Struct" like classes expect to have unused public data members -->
38  <Match>
39    <Class name="~.*android_webview.*FileChooserParams"/>
40    <Bug code="UrF" />
41  </Match>
42  <!-- Ignore "reliance on default String encoding" warnings, as we're not multi-platform -->
43  <Bug pattern="DM_DEFAULT_ENCODING" />
44  <!-- Ignore bugs that are often false-positives in test code -->
45  <Match>
46    <Class name="~org\.chromium\..*Test(\$\w+)?" />
47    <Or>
48      <Bug code="DLS,UrF" />
49      <Bug pattern="DM_GC" />
50    </Or>
51  </Match>
52  <!--
53  Ignore calls to System.exit() following errors during loading the native library.
54  There is no way to recover from such errors without restarting the application,
55  so System.exit() is the best solution.
56  -->
57  <Match>
58    <Class name="~org\.chromium\.chrome\..*\.ChromiumSyncAdapter.*" />
59    <Method name="run" />
60    <Bug code="Dm" />
61  </Match>
62  <Match>
63    <Class name="~org\.chromium\.chrome\..*\.ChromiumSyncAdapter" />
64    <Method name="startBrowserProcessesSync" />
65    <Bug code="Dm" />
66  </Match>
67  <Match>
68    <Class name="~org\.chromium\.chrome\..*\.ChromeShellActivity" />
69    <Method name="onCreate" />
70    <Bug code="Dm" />
71  </Match>
72  <Match>
73    <Class name="~org\.chromium\.chrome\..*\.AccountsChangedReceiver.*" />
74    <Method name="run" />
75    <Bug code="Dm" />
76  </Match>
77  <Match>
78    <Class name="~org\.chromium\.content\..*\.ChildProcessService.*" />
79    <Method name="run" />
80    <Bug code="Dm" />
81  </Match>
82  <Match>
83    <Class name="~org\.chromium\..*ContentBrowserTestsActivity" />
84    <Method name="onCreate" />
85    <Bug code="Dm" />
86  </Match>
87  <Match>
88    <Class name="~org\.chromium\..*ContentShellActivity" />
89    <Method name="onCreate" />
90    <Bug code="Dm" />
91  </Match>
92  <Match>
93    <Class name="~org\.chromium\.components\.gcm_driver\..*\.GCMDriver" />
94    <Method name="launchNativeThen" />
95    <Bug code="Dm" />
96  </Match>
97  <!--
98  Ignore write to static field in GCMDriver, as it's the cleanest way to mark
99  the singleton as null when the native counterpart is destroyed.
100  -->
101  <Match>
102    <Class name="~org\.chromium\.components\.gcm_driver\..*\.GCMDriver" />
103    <Method name="destroy" />
104    <Bug code="ST" />
105  </Match>
106</FindBugsFilter>
107