From f6022d35385293c95d0bd5ccac5899bce922e199 Mon Sep 17 00:00:00 2001 From: Jan-Ivar Bruaroey Date: Fri, 4 Nov 2016 23:56:48 -0400 Subject: [PATCH] Bug 1311048 - Pick out Firefox windows as scary by pid on Linux. r=jesup MozReview-Commit-ID: CjkfnZWjCTl --HG-- extra : rebase_source : 54efcf2da32fc3a673903765b3e888d49a745c24 --- .../modules/desktop_capture/window_capturer_x11.cc | 14 ++++++++++++++ .../video_capture/linux/device_info_linux.cc | 3 ++- .../video_capture/linux/device_info_linux.h | 3 ++- 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/media/webrtc/trunk/webrtc/modules/desktop_capture/window_capturer_x11.cc b/media/webrtc/trunk/webrtc/modules/desktop_capture/window_capturer_x11.cc index 7806eb9110f2..63f3d7d3f862 100755 --- a/media/webrtc/trunk/webrtc/modules/desktop_capture/window_capturer_x11.cc +++ b/media/webrtc/trunk/webrtc/modules/desktop_capture/window_capturer_x11.cc @@ -66,6 +66,9 @@ class WindowCapturerLinux : public WindowCapturer, // Returns window title for the specified X |window|. bool GetWindowTitle(::Window window, std::string* title); + // Returns the id of the owning process. + int GetWindowProcessID(::Window window); + Callback* callback_; scoped_refptr x_display_; @@ -136,6 +139,9 @@ bool WindowCapturerLinux::GetWindowList(WindowList* windows) { Window w; w.id = app_window; + unsigned int processId = GetWindowProcessID(app_window); + w.pid = (pid_t)processId; + XWindowAttributes window_attr; if(!XGetWindowAttributes(display(),w.id,&window_attr)){ LOG(LS_ERROR)<<"Bad request for attributes for window ID:"< process_id(display(), window, process_atom); + + return process_id.is_valid() ? *process_id.data() : 0; +} + } // namespace // static diff --git a/media/webrtc/trunk/webrtc/modules/video_capture/linux/device_info_linux.cc b/media/webrtc/trunk/webrtc/modules/video_capture/linux/device_info_linux.cc index 5c162e1adf21..d5924399c019 100644 --- a/media/webrtc/trunk/webrtc/modules/video_capture/linux/device_info_linux.cc +++ b/media/webrtc/trunk/webrtc/modules/video_capture/linux/device_info_linux.cc @@ -227,7 +227,8 @@ int32_t DeviceInfoLinux::GetDeviceName( char* deviceUniqueIdUTF8, uint32_t deviceUniqueIdUTF8Length, char* /*productUniqueIdUTF8*/, - uint32_t /*productUniqueIdUTF8Length*/) + uint32_t /*productUniqueIdUTF8Length*/, + pid_t* pid) { WEBRTC_TRACE(webrtc::kTraceApiCall, webrtc::kTraceVideoCapture, _id, "%s", __FUNCTION__); diff --git a/media/webrtc/trunk/webrtc/modules/video_capture/linux/device_info_linux.h b/media/webrtc/trunk/webrtc/modules/video_capture/linux/device_info_linux.h index becb206d94b4..2fb6965b6384 100644 --- a/media/webrtc/trunk/webrtc/modules/video_capture/linux/device_info_linux.h +++ b/media/webrtc/trunk/webrtc/modules/video_capture/linux/device_info_linux.h @@ -36,7 +36,8 @@ public: char* deviceUniqueIdUTF8, uint32_t deviceUniqueIdUTF8Length, char* productUniqueIdUTF8=0, - uint32_t productUniqueIdUTF8Length=0); + uint32_t productUniqueIdUTF8Length=0, + pid_t* pid=0); /* * Fills the membervariable _captureCapabilities with capabilites for the given device name. */