Enable clang style plugin in webrtc/modules/desktop_capture

Enabled the plugin and cleaned up all issues it found, mainly virtual
destructors not being marked as override.

BUG=webrtc:163

Review-Url: https://codereview.webrtc.org/2436503004
Cr-Commit-Position: refs/heads/master@{#14793}
diff --git a/webrtc/modules/desktop_capture/BUILD.gn b/webrtc/modules/desktop_capture/BUILD.gn
index 7b8638a..19bc237 100644
--- a/webrtc/modules/desktop_capture/BUILD.gn
+++ b/webrtc/modules/desktop_capture/BUILD.gn
@@ -150,11 +150,6 @@
     ]
   }
 
-  if (!build_with_chromium && is_clang) {
-    # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
-    suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
-  }
-
   deps = [
     ":primitives",
     "../../base:rtc_base",  # TODO(kjellander): Cleanup in bugs.webrtc.org/3806.
diff --git a/webrtc/modules/desktop_capture/cropping_window_capturer.h b/webrtc/modules/desktop_capture/cropping_window_capturer.h
index d24d770..768e1ee 100644
--- a/webrtc/modules/desktop_capture/cropping_window_capturer.h
+++ b/webrtc/modules/desktop_capture/cropping_window_capturer.h
@@ -26,7 +26,7 @@
                                public DesktopCapturer::Callback {
  public:
   static WindowCapturer* Create(const DesktopCaptureOptions& options);
-  virtual ~CroppingWindowCapturer();
+  ~CroppingWindowCapturer() override;
 
   // DesktopCapturer implementation.
   void Start(DesktopCapturer::Callback* callback) override;
diff --git a/webrtc/modules/desktop_capture/desktop_and_cursor_composer.cc b/webrtc/modules/desktop_capture/desktop_and_cursor_composer.cc
index 0ff3373..f5b85e4 100644
--- a/webrtc/modules/desktop_capture/desktop_and_cursor_composer.cc
+++ b/webrtc/modules/desktop_capture/desktop_and_cursor_composer.cc
@@ -60,7 +60,7 @@
   DesktopFrameWithCursor(std::unique_ptr<DesktopFrame> frame,
                          const MouseCursor& cursor,
                          const DesktopVector& position);
-  virtual ~DesktopFrameWithCursor();
+  ~DesktopFrameWithCursor() override;
 
  private:
   std::unique_ptr<DesktopFrame> original_frame_;
diff --git a/webrtc/modules/desktop_capture/desktop_and_cursor_composer.h b/webrtc/modules/desktop_capture/desktop_and_cursor_composer.h
index 801d3e3..3e339e8 100644
--- a/webrtc/modules/desktop_capture/desktop_and_cursor_composer.h
+++ b/webrtc/modules/desktop_capture/desktop_and_cursor_composer.h
@@ -31,7 +31,7 @@
   // of both arguments.
   DesktopAndCursorComposer(DesktopCapturer* desktop_capturer,
                       MouseCursorMonitor* mouse_monitor);
-  virtual ~DesktopAndCursorComposer();
+  ~DesktopAndCursorComposer() override;
 
   // DesktopCapturer interface.
   void Start(DesktopCapturer::Callback* callback) override;
diff --git a/webrtc/modules/desktop_capture/desktop_capture_options.cc b/webrtc/modules/desktop_capture/desktop_capture_options.cc
index 8c22376..88986d4 100644
--- a/webrtc/modules/desktop_capture/desktop_capture_options.cc
+++ b/webrtc/modules/desktop_capture/desktop_capture_options.cc
@@ -12,6 +12,18 @@
 
 namespace webrtc {
 
+DesktopCaptureOptions::DesktopCaptureOptions() {}
+DesktopCaptureOptions::DesktopCaptureOptions(
+    const DesktopCaptureOptions& options) = default;
+DesktopCaptureOptions::DesktopCaptureOptions(DesktopCaptureOptions&& options) =
+    default;
+DesktopCaptureOptions::~DesktopCaptureOptions() {}
+
+DesktopCaptureOptions& DesktopCaptureOptions::operator=(
+    const DesktopCaptureOptions& options) = default;
+DesktopCaptureOptions& DesktopCaptureOptions::operator=(
+    DesktopCaptureOptions&& options) = default;
+
 // static
 DesktopCaptureOptions DesktopCaptureOptions::CreateDefault() {
   DesktopCaptureOptions result;
diff --git a/webrtc/modules/desktop_capture/desktop_capture_options.h b/webrtc/modules/desktop_capture/desktop_capture_options.h
index d872d7d..22f3fd5 100644
--- a/webrtc/modules/desktop_capture/desktop_capture_options.h
+++ b/webrtc/modules/desktop_capture/desktop_capture_options.h
@@ -33,6 +33,14 @@
   // X11 connection failed (e.g. DISPLAY isn't set).
   static DesktopCaptureOptions CreateDefault();
 
+  DesktopCaptureOptions();
+  DesktopCaptureOptions(const DesktopCaptureOptions& options);
+  DesktopCaptureOptions(DesktopCaptureOptions&& options);
+  ~DesktopCaptureOptions();
+
+  DesktopCaptureOptions& operator=(const DesktopCaptureOptions& options);
+  DesktopCaptureOptions& operator=(DesktopCaptureOptions&& options);
+
 #if defined(USE_X11)
   SharedXDisplay* x_display() const { return x_display_; }
   void set_x_display(rtc::scoped_refptr<SharedXDisplay> x_display) {
diff --git a/webrtc/modules/desktop_capture/desktop_frame_win.h b/webrtc/modules/desktop_capture/desktop_frame_win.h
index e9a374b..faf3c8d 100644
--- a/webrtc/modules/desktop_capture/desktop_frame_win.h
+++ b/webrtc/modules/desktop_capture/desktop_frame_win.h
@@ -25,7 +25,7 @@
 // Frame data is stored in a GDI bitmap.
 class DesktopFrameWin : public DesktopFrame {
  public:
-  virtual ~DesktopFrameWin();
+  ~DesktopFrameWin() override;
 
   static std::unique_ptr<DesktopFrameWin>
   Create(DesktopSize size, SharedMemoryFactory* shared_memory_factory, HDC hdc);
diff --git a/webrtc/modules/desktop_capture/mac/desktop_configuration.h b/webrtc/modules/desktop_capture/mac/desktop_configuration.h
index 241c5b9..d54d0fb 100644
--- a/webrtc/modules/desktop_capture/mac/desktop_configuration.h
+++ b/webrtc/modules/desktop_capture/mac/desktop_configuration.h
@@ -22,9 +22,15 @@
 // Describes the configuration of a specific display.
 struct MacDisplayConfiguration {
   MacDisplayConfiguration();
+  MacDisplayConfiguration(const MacDisplayConfiguration& other);
+  MacDisplayConfiguration(MacDisplayConfiguration&& other);
+  ~MacDisplayConfiguration();
+
+  MacDisplayConfiguration& operator=(const MacDisplayConfiguration& other);
+  MacDisplayConfiguration& operator=(MacDisplayConfiguration&& other);
 
   // Cocoa identifier for this display.
-  CGDirectDisplayID id;
+  CGDirectDisplayID id = 0;
 
   // Bounds of this display in Density-Independent Pixels (DIPs).
   DesktopRect bounds;
@@ -33,7 +39,7 @@
   DesktopRect pixel_bounds;
 
   // Scale factor from DIPs to physical pixels.
-  float dip_to_pixel_scale;
+  float dip_to_pixel_scale = 1.0f;
 };
 
 typedef std::vector<MacDisplayConfiguration> MacDisplayConfigurations;
@@ -44,8 +50,13 @@
   enum Origin { BottomLeftOrigin, TopLeftOrigin };
 
   MacDesktopConfiguration();
+  MacDesktopConfiguration(const MacDesktopConfiguration& other);
+  MacDesktopConfiguration(MacDesktopConfiguration&& other);
   ~MacDesktopConfiguration();
 
+  MacDesktopConfiguration& operator=(const MacDesktopConfiguration& other);
+  MacDesktopConfiguration& operator=(MacDesktopConfiguration&& other);
+
   // Returns the desktop & display configurations in Cocoa-style "bottom-up"
   // (the origin is the bottom-left of the primary monitor, and coordinates
   // increase as you move up the screen).
@@ -66,7 +77,7 @@
   DesktopRect pixel_bounds;
 
   // Scale factor from DIPs to physical pixels.
-  float dip_to_pixel_scale;
+  float dip_to_pixel_scale = 1.0f;
 
   // Configurations of the displays making up the desktop area.
   MacDisplayConfigurations displays;
diff --git a/webrtc/modules/desktop_capture/mac/desktop_configuration.mm b/webrtc/modules/desktop_capture/mac/desktop_configuration.mm
index 9e483e5..54044c5 100644
--- a/webrtc/modules/desktop_capture/mac/desktop_configuration.mm
+++ b/webrtc/modules/desktop_capture/mac/desktop_configuration.mm
@@ -85,17 +85,29 @@
 
 }  // namespace
 
-MacDisplayConfiguration::MacDisplayConfiguration()
-    : id(0),
-      dip_to_pixel_scale(1.0f) {
-}
+MacDisplayConfiguration::MacDisplayConfiguration() = default;
+MacDisplayConfiguration::MacDisplayConfiguration(
+    const MacDisplayConfiguration& other) = default;
+MacDisplayConfiguration::MacDisplayConfiguration(
+    MacDisplayConfiguration&& other) = default;
+MacDisplayConfiguration::~MacDisplayConfiguration() = default;
 
-MacDesktopConfiguration::MacDesktopConfiguration()
-    : dip_to_pixel_scale(1.0f) {
-}
+MacDisplayConfiguration& MacDisplayConfiguration::operator=(
+    const MacDisplayConfiguration& other) = default;
+MacDisplayConfiguration& MacDisplayConfiguration::operator=(
+    MacDisplayConfiguration&& other) = default;
 
-MacDesktopConfiguration::~MacDesktopConfiguration() {
-}
+MacDesktopConfiguration::MacDesktopConfiguration() = default;
+MacDesktopConfiguration::MacDesktopConfiguration(
+    const MacDesktopConfiguration& other) = default;
+MacDesktopConfiguration::MacDesktopConfiguration(
+    MacDesktopConfiguration&& other) = default;
+MacDesktopConfiguration::~MacDesktopConfiguration() = default;
+
+MacDesktopConfiguration& MacDesktopConfiguration::operator=(
+    const MacDesktopConfiguration& other) = default;
+MacDesktopConfiguration& MacDesktopConfiguration::operator=(
+    MacDesktopConfiguration&& other) = default;
 
 // static
 MacDesktopConfiguration MacDesktopConfiguration::GetCurrent(Origin origin) {
diff --git a/webrtc/modules/desktop_capture/mouse_cursor_monitor_mac.mm b/webrtc/modules/desktop_capture/mouse_cursor_monitor_mac.mm
index 6e079b6..aec8eda 100644
--- a/webrtc/modules/desktop_capture/mouse_cursor_monitor_mac.mm
+++ b/webrtc/modules/desktop_capture/mouse_cursor_monitor_mac.mm
@@ -54,7 +54,7 @@
   MouseCursorMonitorMac(const DesktopCaptureOptions& options,
                         CGWindowID window_id,
                         ScreenId screen_id);
-  virtual ~MouseCursorMonitorMac();
+  ~MouseCursorMonitorMac() override;
 
   void Init(Callback* callback, Mode mode) override;
   void Capture() override;
diff --git a/webrtc/modules/desktop_capture/mouse_cursor_monitor_win.cc b/webrtc/modules/desktop_capture/mouse_cursor_monitor_win.cc
index 479a39a..0a7aff1 100644
--- a/webrtc/modules/desktop_capture/mouse_cursor_monitor_win.cc
+++ b/webrtc/modules/desktop_capture/mouse_cursor_monitor_win.cc
@@ -39,7 +39,7 @@
  public:
   explicit MouseCursorMonitorWin(HWND window);
   explicit MouseCursorMonitorWin(ScreenId screen);
-  virtual ~MouseCursorMonitorWin();
+  ~MouseCursorMonitorWin() override;
 
   void Init(Callback* callback, Mode mode) override;
   void Capture() override;
diff --git a/webrtc/modules/desktop_capture/mouse_cursor_monitor_x11.cc b/webrtc/modules/desktop_capture/mouse_cursor_monitor_x11.cc
index 357c7c2..cb34b3f 100644
--- a/webrtc/modules/desktop_capture/mouse_cursor_monitor_x11.cc
+++ b/webrtc/modules/desktop_capture/mouse_cursor_monitor_x11.cc
@@ -62,7 +62,7 @@
                               public SharedXDisplay::XEventHandler {
  public:
   MouseCursorMonitorX11(const DesktopCaptureOptions& options, Window window);
-  virtual ~MouseCursorMonitorX11();
+  ~MouseCursorMonitorX11() override;
 
   void Init(Callback* callback, Mode mode) override;
   void Capture() override;
diff --git a/webrtc/modules/desktop_capture/screen_capturer.h b/webrtc/modules/desktop_capture/screen_capturer.h
index 48ecc31..5f07ba1 100644
--- a/webrtc/modules/desktop_capture/screen_capturer.h
+++ b/webrtc/modules/desktop_capture/screen_capturer.h
@@ -48,7 +48,7 @@
   };
   typedef std::vector<Screen> ScreenList;
 
-  virtual ~ScreenCapturer() {}
+  ~ScreenCapturer() override {}
 
   // Creates a platform-specific capturer.
   static ScreenCapturer* Create(const DesktopCaptureOptions& options);
diff --git a/webrtc/modules/desktop_capture/screen_capturer_mac.mm b/webrtc/modules/desktop_capture/screen_capturer_mac.mm
index 3251e5a..49910d6 100644
--- a/webrtc/modules/desktop_capture/screen_capturer_mac.mm
+++ b/webrtc/modules/desktop_capture/screen_capturer_mac.mm
@@ -279,7 +279,7 @@
  public:
   explicit ScreenCapturerMac(
       rtc::scoped_refptr<DesktopConfigurationMonitor> desktop_config_monitor);
-  virtual ~ScreenCapturerMac();
+  ~ScreenCapturerMac() override;
 
   bool Init();
 
@@ -374,7 +374,7 @@
     set_capture_time_ms(original_frame_->capture_time_ms());
     mutable_updated_region()->Swap(original_frame_->mutable_updated_region());
   }
-  virtual ~InvertedDesktopFrame() {}
+  ~InvertedDesktopFrame() override {}
 
  private:
   std::unique_ptr<DesktopFrame> original_frame_;
diff --git a/webrtc/modules/desktop_capture/screen_capturer_mock_objects.h b/webrtc/modules/desktop_capture/screen_capturer_mock_objects.h
index 1d45143..74bf7fc 100644
--- a/webrtc/modules/desktop_capture/screen_capturer_mock_objects.h
+++ b/webrtc/modules/desktop_capture/screen_capturer_mock_objects.h
@@ -34,7 +34,7 @@
 class MockScreenCapturerCallback : public ScreenCapturer::Callback {
  public:
   MockScreenCapturerCallback() {}
-  virtual ~MockScreenCapturerCallback() {}
+  ~MockScreenCapturerCallback() override {}
 
   MOCK_METHOD2(OnCaptureResultPtr,
                void(DesktopCapturer::Result result,
diff --git a/webrtc/modules/desktop_capture/screen_capturer_x11.cc b/webrtc/modules/desktop_capture/screen_capturer_x11.cc
index 484d503..34653ec 100644
--- a/webrtc/modules/desktop_capture/screen_capturer_x11.cc
+++ b/webrtc/modules/desktop_capture/screen_capturer_x11.cc
@@ -47,7 +47,7 @@
                             public SharedXDisplay::XEventHandler {
  public:
   ScreenCapturerLinux();
-  virtual ~ScreenCapturerLinux();
+  ~ScreenCapturerLinux() override;
 
   // TODO(ajwong): Do we really want this to be synchronous?
   bool Init(const DesktopCaptureOptions& options);
diff --git a/webrtc/modules/desktop_capture/win/d3d_device.cc b/webrtc/modules/desktop_capture/win/d3d_device.cc
index f7c419f..67d12980 100644
--- a/webrtc/modules/desktop_capture/win/d3d_device.cc
+++ b/webrtc/modules/desktop_capture/win/d3d_device.cc
@@ -19,6 +19,8 @@
 using Microsoft::WRL::ComPtr;
 
 D3dDevice::D3dDevice() = default;
+D3dDevice::D3dDevice(const D3dDevice& other) = default;
+D3dDevice::D3dDevice(D3dDevice&& other) = default;
 D3dDevice::~D3dDevice() = default;
 
 bool D3dDevice::Initialize(const ComPtr<IDXGIAdapter>& adapter) {
diff --git a/webrtc/modules/desktop_capture/win/d3d_device.h b/webrtc/modules/desktop_capture/win/d3d_device.h
index fc1533a..41efa84 100644
--- a/webrtc/modules/desktop_capture/win/d3d_device.h
+++ b/webrtc/modules/desktop_capture/win/d3d_device.h
@@ -24,6 +24,8 @@
 // This class represents one video card in the system.
 class D3dDevice {
  public:
+  D3dDevice(const D3dDevice& other);
+  D3dDevice(D3dDevice&& other);
   ~D3dDevice();
 
   ID3D11Device* d3d_device() const { return d3d_device_.Get(); }
diff --git a/webrtc/modules/desktop_capture/win/dxgi_adapter_duplicator.cc b/webrtc/modules/desktop_capture/win/dxgi_adapter_duplicator.cc
index 46d4e89..443770f 100644
--- a/webrtc/modules/desktop_capture/win/dxgi_adapter_duplicator.cc
+++ b/webrtc/modules/desktop_capture/win/dxgi_adapter_duplicator.cc
@@ -31,10 +31,14 @@
 
 }  // namespace
 
+DxgiAdapterDuplicator::Context::Context() = default;
+DxgiAdapterDuplicator::Context::Context(const Context& other) = default;
+DxgiAdapterDuplicator::Context::~Context() = default;
+
 DxgiAdapterDuplicator::DxgiAdapterDuplicator(const D3dDevice& device)
     : device_(device) {}
-
 DxgiAdapterDuplicator::DxgiAdapterDuplicator(DxgiAdapterDuplicator&&) = default;
+DxgiAdapterDuplicator::~DxgiAdapterDuplicator() = default;
 
 bool DxgiAdapterDuplicator::Initialize() {
   if (DoInitialize()) {
diff --git a/webrtc/modules/desktop_capture/win/dxgi_adapter_duplicator.h b/webrtc/modules/desktop_capture/win/dxgi_adapter_duplicator.h
index a9e6103..0261105 100644
--- a/webrtc/modules/desktop_capture/win/dxgi_adapter_duplicator.h
+++ b/webrtc/modules/desktop_capture/win/dxgi_adapter_duplicator.h
@@ -28,6 +28,10 @@
 class DxgiAdapterDuplicator {
  public:
   struct Context {
+    Context();
+    Context(const Context& other);
+    ~Context();
+
     // Child DxgiOutputDuplicator::Context belongs to this
     // DxgiAdapterDuplicator::Context.
     std::vector<DxgiOutputDuplicator::Context> contexts;
@@ -41,6 +45,8 @@
   // DxgiAdapterDuplicator in std::vector<>.
   DxgiAdapterDuplicator(DxgiAdapterDuplicator&& other);
 
+  ~DxgiAdapterDuplicator();
+
   // Initializes the DxgiAdapterDuplicator from a D3dDevice.
   bool Initialize();
 
diff --git a/webrtc/modules/desktop_capture/win/dxgi_duplicator_controller.cc b/webrtc/modules/desktop_capture/win/dxgi_duplicator_controller.cc
index 0276f6b..03dc15a 100644
--- a/webrtc/modules/desktop_capture/win/dxgi_duplicator_controller.cc
+++ b/webrtc/modules/desktop_capture/win/dxgi_duplicator_controller.cc
@@ -18,6 +18,8 @@
 
 namespace webrtc {
 
+DxgiDuplicatorController::Context::Context() {}
+
 DxgiDuplicatorController::Context::~Context() {
   DxgiDuplicatorController::Instance()->Unregister(this);
 }
diff --git a/webrtc/modules/desktop_capture/win/dxgi_duplicator_controller.h b/webrtc/modules/desktop_capture/win/dxgi_duplicator_controller.h
index fb24b3a..1abfe81 100644
--- a/webrtc/modules/desktop_capture/win/dxgi_duplicator_controller.h
+++ b/webrtc/modules/desktop_capture/win/dxgi_duplicator_controller.h
@@ -40,6 +40,7 @@
   // DxgiDuplicatorController.
   class Context {
    public:
+    Context();
     // Unregister this Context instance from all Dxgi duplicators during
     // destructing.
     ~Context();
diff --git a/webrtc/modules/desktop_capture/win/dxgi_texture.cc b/webrtc/modules/desktop_capture/win/dxgi_texture.cc
index 96c9836..c798631 100644
--- a/webrtc/modules/desktop_capture/win/dxgi_texture.cc
+++ b/webrtc/modules/desktop_capture/win/dxgi_texture.cc
@@ -24,7 +24,7 @@
                      texture.bits(),
                      nullptr) {}
 
-  virtual ~DxgiDesktopFrame() = default;
+  ~DxgiDesktopFrame() override = default;
 };
 
 }  // namespace
@@ -32,6 +32,8 @@
 DxgiTexture::DxgiTexture(const DesktopRect& desktop_rect)
     : desktop_rect_(desktop_rect) {}
 
+DxgiTexture::~DxgiTexture() {}
+
 const DesktopFrame& DxgiTexture::AsDesktopFrame() {
   if (!frame_) {
     frame_.reset(new DxgiDesktopFrame(*this));
diff --git a/webrtc/modules/desktop_capture/win/dxgi_texture.h b/webrtc/modules/desktop_capture/win/dxgi_texture.h
index 6d6976a..9500082 100644
--- a/webrtc/modules/desktop_capture/win/dxgi_texture.h
+++ b/webrtc/modules/desktop_capture/win/dxgi_texture.h
@@ -29,7 +29,7 @@
   // entire screen -- usually a monitor on the system.
   explicit DxgiTexture(const DesktopRect& desktop_rect);
 
-  virtual ~DxgiTexture() = default;
+  virtual ~DxgiTexture();
 
   // Copies selected regions of a frame represented by frame_info and resource.
   // Returns false if anything wrong.
diff --git a/webrtc/modules/desktop_capture/win/screen_capturer_win_directx.h b/webrtc/modules/desktop_capture/win/screen_capturer_win_directx.h
index 561c163..c84aac0 100644
--- a/webrtc/modules/desktop_capture/win/screen_capturer_win_directx.h
+++ b/webrtc/modules/desktop_capture/win/screen_capturer_win_directx.h
@@ -33,7 +33,7 @@
 
   explicit ScreenCapturerWinDirectx(const DesktopCaptureOptions& options);
 
-  virtual ~ScreenCapturerWinDirectx();
+  ~ScreenCapturerWinDirectx() override;
 
   void Start(Callback* callback) override;
   void SetSharedMemoryFactory(
diff --git a/webrtc/modules/desktop_capture/win/screen_capturer_win_gdi.h b/webrtc/modules/desktop_capture/win/screen_capturer_win_gdi.h
index a9e1845..1d08c1c 100644
--- a/webrtc/modules/desktop_capture/win/screen_capturer_win_gdi.h
+++ b/webrtc/modules/desktop_capture/win/screen_capturer_win_gdi.h
@@ -33,7 +33,7 @@
 class ScreenCapturerWinGdi : public ScreenCapturer {
  public:
   explicit ScreenCapturerWinGdi(const DesktopCaptureOptions& options);
-  virtual ~ScreenCapturerWinGdi();
+  ~ScreenCapturerWinGdi() override;
 
   // Overridden from ScreenCapturer:
   void Start(Callback* callback) override;
diff --git a/webrtc/modules/desktop_capture/win/screen_capturer_win_magnifier.h b/webrtc/modules/desktop_capture/win/screen_capturer_win_magnifier.h
index 6c72138..b298149 100644
--- a/webrtc/modules/desktop_capture/win/screen_capturer_win_magnifier.h
+++ b/webrtc/modules/desktop_capture/win/screen_capturer_win_magnifier.h
@@ -45,7 +45,7 @@
   // the magnifier capturer fails (e.g. in Windows8 Metro mode).
   explicit ScreenCapturerWinMagnifier(
       std::unique_ptr<ScreenCapturer> fallback_capturer);
-  virtual ~ScreenCapturerWinMagnifier();
+  ~ScreenCapturerWinMagnifier() override;
 
   // Overridden from ScreenCapturer:
   void Start(Callback* callback) override;
diff --git a/webrtc/modules/desktop_capture/window_capturer.h b/webrtc/modules/desktop_capture/window_capturer.h
index eb9b9fe..682778c 100644
--- a/webrtc/modules/desktop_capture/window_capturer.h
+++ b/webrtc/modules/desktop_capture/window_capturer.h
@@ -38,7 +38,7 @@
 
   static WindowCapturer* Create(const DesktopCaptureOptions& options);
 
-  virtual ~WindowCapturer() {}
+  ~WindowCapturer() override {}
 
   // Get list of windows. Returns false in case of a failure.
   virtual bool GetWindowList(WindowList* windows) = 0;
diff --git a/webrtc/modules/desktop_capture/window_capturer_mac.mm b/webrtc/modules/desktop_capture/window_capturer_mac.mm
index 1e706fa..2272b3f 100644
--- a/webrtc/modules/desktop_capture/window_capturer_mac.mm
+++ b/webrtc/modules/desktop_capture/window_capturer_mac.mm
@@ -46,7 +46,7 @@
  public:
   explicit WindowCapturerMac(rtc::scoped_refptr<FullScreenChromeWindowDetector>
                                  full_screen_chrome_window_detector);
-  virtual ~WindowCapturerMac();
+  ~WindowCapturerMac() override;
 
   // WindowCapturer interface.
   bool GetWindowList(WindowList* windows) override;
diff --git a/webrtc/modules/desktop_capture/window_capturer_null.cc b/webrtc/modules/desktop_capture/window_capturer_null.cc
index 802d74f..78e5bea 100755
--- a/webrtc/modules/desktop_capture/window_capturer_null.cc
+++ b/webrtc/modules/desktop_capture/window_capturer_null.cc
@@ -22,7 +22,7 @@
 class WindowCapturerNull : public WindowCapturer {
  public:
   WindowCapturerNull();
-  virtual ~WindowCapturerNull();
+  ~WindowCapturerNull() override;
 
   // WindowCapturer interface.
   bool GetWindowList(WindowList* windows) override;
diff --git a/webrtc/modules/desktop_capture/window_capturer_win.cc b/webrtc/modules/desktop_capture/window_capturer_win.cc
index 91ccc38..9253b86 100644
--- a/webrtc/modules/desktop_capture/window_capturer_win.cc
+++ b/webrtc/modules/desktop_capture/window_capturer_win.cc
@@ -83,7 +83,7 @@
 class WindowCapturerWin : public WindowCapturer {
  public:
   WindowCapturerWin();
-  virtual ~WindowCapturerWin();
+  ~WindowCapturerWin() override;
 
   // WindowCapturer interface.
   bool GetWindowList(WindowList* windows) override;
diff --git a/webrtc/modules/desktop_capture/window_capturer_x11.cc b/webrtc/modules/desktop_capture/window_capturer_x11.cc
index bae1852..2e2ce9b 100644
--- a/webrtc/modules/desktop_capture/window_capturer_x11.cc
+++ b/webrtc/modules/desktop_capture/window_capturer_x11.cc
@@ -86,7 +86,7 @@
                             public SharedXDisplay::XEventHandler {
  public:
   WindowCapturerLinux(const DesktopCaptureOptions& options);
-  virtual ~WindowCapturerLinux();
+  ~WindowCapturerLinux() override;
 
   // WindowCapturer interface.
   bool GetWindowList(WindowList* windows) override;