Update BrowserPlugin to use local root RenderWidget.
Previously, BrowserPlugin was going to the main frame RenderWidget. This assumes
that the main frame RenderWidget exists, which in the future will not exist for
remote main frames.
Bug: 995981
Change-Id: I25b76e4ee9f99c7c0ca60a57088ecf95c99fe2c6
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1772485
Commit-Queue: Erik Chen <[email protected]>
Auto-Submit: Erik Chen <[email protected]>
Reviewed-by: Daniel Cheng <[email protected]>
Cr-Commit-Position: refs/heads/master@{#690987}
diff --git a/content/renderer/render_widget.cc b/content/renderer/render_widget.cc
index 410269f..e9c5648 100644
--- a/content/renderer/render_widget.cc
+++ b/content/renderer/render_widget.cc
@@ -55,6 +55,7 @@
#include "content/public/renderer/content_renderer_client.h"
#include "content/public/renderer/render_thread.h"
#include "content/renderer/browser_plugin/browser_plugin.h"
+#include "content/renderer/browser_plugin/browser_plugin_manager.h"
#include "content/renderer/compositor/layer_tree_view.h"
#include "content/renderer/drop_data_builder.h"
#include "content/renderer/external_popup_menu.h"
@@ -1044,8 +1045,9 @@
for (auto& observer : render_frames_)
observer.RenderWidgetSetFocus(enable);
- if (delegate())
- delegate()->DidChangeFocusForWidget();
+ // Notify all BrowserPlugins of the RenderView's focus state.
+ if (BrowserPluginManager::Get())
+ BrowserPluginManager::Get()->UpdateFocusState();
}
///////////////////////////////////////////////////////////////////////////////