        ]
        #TODO(jrummell) Mac: 'DYLIB_INSTALL_NAME_BASE': '@loader_path',
      } else if (is_posix && !is_mac) {
+diff --git a/third_party/widevine/cdm/stub/manifest.json b/third_party/widevine/cdm/stub/manifest.json
+index d466ccd1e02ed8c158fda545fe2175c135018da5..16ae2a357b21de66b1558939f9333b3c22e9cff2 100644
+--- a/third_party/widevine/cdm/stub/manifest.json
++++ b/third_party/widevine/cdm/stub/manifest.json
+@@ -24,6 +24,11 @@
+       "os": "mac",
+       "arch": "x64",
+       "sub_package_path": "_platform_specific/mac_x64/"
++    },
++    {
++      "os": "linux",
++      "arch": "x64",
++      "sub_package_path": "_platform_specific/linux_x64/"
+     }
+   ]
+ }

   }
 
   bool ShouldSelectReplacement() const {
diff --git a/third_party/WebKit/Source/core/html/HTMLMediaElement.cpp b/third_party/WebKit/Source/core/html/HTMLMediaElement.cpp
index 76a36536f92ca5cc361e35cb8e27de1bbcc88327..004e678da6e383cfb97fbd7022d9faca35ec6581 100644
--- a/third_party/WebKit/Source/core/html/HTMLMediaElement.cpp

 @property(readonly) NSTimeInterval timestamp;
 
 @end
diff --git a/content/browser/renderer_host/render_widget_host_view_aura.cc b/content/browser/renderer_host/render_widget_host_view_aura.cc
index dda1da688eb7ae7ad62b677e31720a5b266df97f..78cfa7d499bac245d16362a04923db222040d4d7 100644
--- a/content/browser/renderer_host/render_widget_host_view_aura.cc
+++ b/content/browser/renderer_host/render_widget_host_view_aura.cc
@@ -1648,8 +1648,23 @@ viz::FrameSinkId RenderWidgetHostViewAura::FrameSinkIdAtPoint(
       gfx::ConvertPointToPixel(device_scale_factor_, point);
   viz::SurfaceId id = delegated_frame_host_->SurfaceIdAtPoint(
       delegate, point_in_pixels, transformed_point);
-  *transformed_point =
-      gfx::ConvertPointToDIP(device_scale_factor_, *transformed_point);
+
+  // MUON(bbondy): When the point hasn't changed, avoid the double floor
+  // convert from pixels to DIP, which can change the input point from a
+  // couple of pixels. This can cause problems for other parts in the code
+  // like SelectionController which does an exact point comparison.  The
+  // double conversion causes a problem in particular when the DPI is not a
+  // multiple of 100.
+  // For example at 175% DPI 21 * 1.75 = 36.75, floored gives 36.
+  // Then the second DIP convert: 36 / 1.75 = 20.57, floored gives 20.
+  // Same point but we lost a pixel in that case.
+  // See: https://github.com/brave/browser-laptop/issues/8472
+  if (point_in_pixels == *transformed_point) {
+    *transformed_point = point;
+  } else {
+    *transformed_point =
+        gfx::ConvertPointToDIP(device_scale_factor_, *transformed_point);
+  }
 
   // It is possible that the renderer has not yet produced a surface, in which
   // case we return our current namespace.
diff --git a/content/browser/renderer_host/render_widget_host_view_mac.mm b/content/browser/renderer_host/render_widget_host_view_mac.mm
index 84897ae416fa61fddac742ab804d1f914636e064..8c28e44da23933cb1c62e11cff9966b778163834 100644
--- a/content/browser/renderer_host/render_widget_host_view_mac.mm
