gecko-dev/tools/lint/mscom-init.yml

75 lines
3.0 KiB
YAML

# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
---
forbid-mscom-init:
description: >-
New calls to CoInitialize, CoInitializeEx, OleInitialize, RoInitialize,
CoUninitialize, OleUninitialize, or RoUninitialize are forbidden. If you
have questions, please consult a peer of the IPC: MSCOM module.
level: error
include: ['.']
type: regex
payload: ([CR]o|Ole)(Uni|I)nitialize(Ex)?
ignore-case: false
extensions:
- h
- c
- cc
- cpp
- rs
exclude:
# These files contain utilities for using COM more safely.
- ipc/mscom/ApartmentRegion.h
- ipc/mscom/COMWrappers.cpp
- ipc/mscom/COMWrappers.h
- ipc/mscom/EnsureMTA.cpp
# These files have been reviewed by MSCOM peers, and the use of
# CoInitialize within them has been confirmed to be necessary and
# proper.
- ipc/mscom/ProcessRuntime.cpp
# These files are existing legacy uses of CoInitialize (and so forth)
# that must eventually be fixed -- probably by converting them to use
# ApartmentRegion and moving them to _that_ lint's exception-list.
- browser/components/migration/nsIEHistoryEnumerator.cpp
- browser/components/migration/tests/unit/insertIEHistory/InsertIEHistory.cpp
- browser/components/shell/nsWindowsShellService.cpp
- gfx/thebes/gfxWindowsPlatform.cpp
- image/DecodePool.cpp
- ipc/glue/BrowserProcessSubThread.cpp
- netwerk/system/win32/nsNotifyAddrListener.cpp
- toolkit/components/bitsdownload/bits_client/bits/src/lib.rs
- toolkit/components/parentalcontrols/nsParentalControlsServiceWin.cpp
- toolkit/crashreporter/google-breakpad/src/common/windows/pdb_source_line_writer.cc
- toolkit/mozapps/defaultagent/proxy/main.cpp
- uriloader/exthandler/win/nsOSHelperAppService.cpp
- widget/windows/TaskbarPreview.cpp
- widget/windows/WinTaskbar.cpp
- widget/windows/nsAppShell.cpp
- widget/windows/nsWindow.cpp
- widget/windows/nsWindow.h
- widget/windows/tests/TestUriValidation.cpp
- xpcom/io/nsLocalFileWin.cpp
forbid-apartment-region:
description: >-
New uses of ApartmentRegion, ApartmentRegionT, MTARegion, or STARegion
require approval by a peer of the IPC: MSCOM module.
level: error
include: ['.']
type: regex
payload: ApartmentRegion(T)?|[MS]TARegion
ignore-case: false
extensions:
- h
- c
- cc
- cpp
exclude:
# ApartmentRegion's definition.
- ipc/mscom/ApartmentRegion.h
# These files have been reviewed and approved by MSCOM peers.
- ipc/mscom/ProcessRuntime.cpp
- ipc/mscom/ProcessRuntime.h
- widget/windows/filedialog/WinFileDialogCommands.cpp