# 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 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/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 # These files are existing uses that must eventually be fixed. - widget/windows/LegacyJumpListBuilder.cpp