Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(425)

Unified Diff: components/password_manager/content/browser/content_password_manager_driver_factory.cc

Issue 2216463002: [Autofill] Migrate ContentPasswordManagerDriver<-->Password{Autofill,Generation}Agent IPCs to mojo. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address nit from Vaclav Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: components/password_manager/content/browser/content_password_manager_driver_factory.cc
diff --git a/components/password_manager/content/browser/content_password_manager_driver_factory.cc b/components/password_manager/content/browser/content_password_manager_driver_factory.cc
index ad8d203fc7c4a20beef60871a9b264ecccf1f240..922d325f7294135dd9f1fabac94e30e4ae220716 100644
--- a/components/password_manager/content/browser/content_password_manager_driver_factory.cc
+++ b/components/password_manager/content/browser/content_password_manager_driver_factory.cc
@@ -11,7 +11,6 @@
#include "base/stl_util.h"
#include "components/autofill/content/browser/content_autofill_driver.h"
#include "components/autofill/content/browser/content_autofill_driver_factory.h"
-#include "components/autofill/content/common/autofill_messages.h"
#include "components/autofill/core/common/form_data.h"
#include "components/autofill/core/common/password_form.h"
#include "components/password_manager/content/browser/content_password_manager_driver.h"
@@ -23,7 +22,6 @@
#include "content/public/browser/render_view_host.h"
#include "content/public/browser/web_contents.h"
#include "content/public/common/ssl_status.h"
-#include "ipc/ipc_message_macros.h"
#include "net/cert/cert_status_flags.h"
namespace password_manager {
@@ -75,6 +73,30 @@ ContentPasswordManagerDriverFactory::FromWebContents(
kContentPasswordManagerDriverFactoryWebContentsUserDataKey));
}
+// static
+void ContentPasswordManagerDriverFactory::BindPasswordManagerDriver(
+ content::RenderFrameHost* render_frame_host,
+ autofill::mojom::PasswordManagerDriverRequest request) {
+ content::WebContents* web_contents =
+ content::WebContents::FromRenderFrameHost(render_frame_host);
+ if (!web_contents)
+ return;
+
+ ContentPasswordManagerDriverFactory* factory =
+ ContentPasswordManagerDriverFactory::FromWebContents(web_contents);
+ // We try to bind to the driver, but if driver is not ready for now or totally
+ // not available for this render frame host, the request will be just dropped.
+ // This would cause the message pipe to be closed, which will raise a
+ // connection error on the peer side.
+ if (!factory)
+ return;
+
+ ContentPasswordManagerDriver* driver =
+ factory->GetDriverForFrame(render_frame_host);
+ if (driver)
+ driver->BindRequest(std::move(request));
+}
+
ContentPasswordManagerDriver*
ContentPasswordManagerDriverFactory::GetDriverForFrame(
content::RenderFrameHost* render_frame_host) {
@@ -99,13 +121,6 @@ void ContentPasswordManagerDriverFactory::RenderFrameDeleted(
frame_driver_map_.erase(render_frame_host);
}
-bool ContentPasswordManagerDriverFactory::OnMessageReceived(
- const IPC::Message& message,
- content::RenderFrameHost* render_frame_host) {
- return frame_driver_map_.find(render_frame_host)
- ->second->HandleMessage(message);
-}
-
void ContentPasswordManagerDriverFactory::DidNavigateAnyFrame(
content::RenderFrameHost* render_frame_host,
const content::LoadCommittedDetails& details,
@@ -114,12 +129,6 @@ void ContentPasswordManagerDriverFactory::DidNavigateAnyFrame(
->second->DidNavigateFrame(details, params);
}
-void ContentPasswordManagerDriverFactory::TestingSetDriverForFrame(
- content::RenderFrameHost* render_frame_host,
- std::unique_ptr<ContentPasswordManagerDriver> driver) {
- frame_driver_map_[render_frame_host] = std::move(driver);
-}
-
void ContentPasswordManagerDriverFactory::RequestSendLoggingAvailability() {
for (const auto& key_val_iterator : frame_driver_map_) {
key_val_iterator.second->SendLoggingAvailability();

Powered by Google App Engine
This is Rietveld 408576698