1# This Source Code Form is subject to the terms of the Mozilla Public
2# License, v. 2.0. If a copy of the MPL was not distributed with this
3# file, You can obtain one at http://mozilla.org/MPL/2.0/.
4---
5forbid-mscom-init:
6    description: >-
7        New calls to CoInitialize, CoInitializeEx, OleInitialize, RoInitialize,
8        CoUninitialize, OleUninitialize, or RoUninitialize are forbidden. If you
9        have questions, please consult a peer of the IPC: MSCOM module.
10    level: error
11    include: ['.']
12    type: regex
13    payload: ([CR]o|Ole)(Uni|I)nitialize(Ex)?
14    ignore-case: false
15    extensions:
16        - h
17        - c
18        - cc
19        - cpp
20    exclude:
21        # These files are the only allowable locations
22        - ipc/mscom/ApartmentRegion.h
23        - ipc/mscom/COMWrappers.cpp
24        - ipc/mscom/COMWrappers.h
25        - ipc/mscom/ProcessRuntime.cpp
26        - ipc/mscom/EnsureMTA.cpp
27        # These files are existing locations that must eventually be fixed.
28        - browser/components/migration/nsIEHistoryEnumerator.cpp
29        - browser/components/migration/tests/unit/insertIEHistory/InsertIEHistory.cpp
30        - browser/components/shell/nsWindowsShellService.cpp
31        - gfx/thebes/gfxWindowsPlatform.cpp
32        - image/DecodePool.cpp
33        - intl/locale/windows/OSPreferences_win.cpp
34        - ipc/glue/BrowserProcessSubThread.cpp
35        - netwerk/system/win32/nsNotifyAddrListener.cpp
36        - toolkit/components/parentalcontrols/nsParentalControlsServiceWin.cpp
37        - toolkit/crashreporter/google-breakpad/src/common/windows/pdb_source_line_writer.cc
38        - toolkit/mozapps/defaultagent/main.cpp
39        - uriloader/exthandler/win/nsOSHelperAppService.cpp
40        - widget/windows/AudioSession.cpp
41        - widget/windows/InkCollector.cpp
42        - widget/windows/TaskbarPreview.cpp
43        - widget/windows/WinTaskbar.cpp
44        - widget/windows/nsAppShell.cpp
45        - widget/windows/nsWindow.cpp
46        - widget/windows/nsWindow.h
47        - widget/windows/tests/TestUriValidation.cpp
48        - xpcom/io/nsLocalFileWin.cpp
49