Skip to content

Commit

Permalink
Reland: Switch components/password_manager code from IPC messages to …
Browse files Browse the repository at this point in the history
…Mojo.

Original CL was found breaking android gn build after landed.. #strange
Fix BUILD.gn and reland.

The original CL:
https://crrev.com/d20fb918841354a75546fa38b5307aaba117598b

Original CL description follows:

Replace credential_manager_messages.h IPC to Mojo service.

BUG=582391

Review URL: https://codereview.chromium.org/1866643002

Cr-Commit-Position: refs/heads/master@{#386290}
  • Loading branch information
leon.han authored and Commit bot committed Apr 9, 2016
1 parent 578305d commit 4a2f71f
Show file tree
Hide file tree
Showing 42 changed files with 1,049 additions and 902 deletions.
8 changes: 8 additions & 0 deletions chrome/browser/chrome_content_browser_client.cc
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@
#include "chrome/browser/net/spdyproxy/data_reduction_proxy_chrome_settings.h"
#include "chrome/browser/net/spdyproxy/data_reduction_proxy_chrome_settings_factory.h"
#include "chrome/browser/notifications/platform_notification_service_impl.h"
#include "chrome/browser/password_manager/chrome_password_manager_client.h"
#include "chrome/browser/permissions/permission_context_base.h"
#include "chrome/browser/platform_util.h"
#include "chrome/browser/prerender/prerender_final_status.h"
Expand Down Expand Up @@ -2768,6 +2769,13 @@ void ChromeContentBrowserClient::RegisterRenderFrameMojoServices(
base::Bind(&CreateWebUsbChooserService, render_frame_host));
}

// Register mojo CredentialManager service only for main frame.
if (!render_frame_host->GetParent()) {
registry->AddService(
base::Bind(&ChromePasswordManagerClient::BindCredentialManager,
render_frame_host));
}

#if BUILDFLAG(ANDROID_JAVA_UI)
ChromeServiceRegistrarAndroid::RegisterRenderFrameMojoServices(registry);
#endif
Expand Down
17 changes: 15 additions & 2 deletions chrome/browser/password_manager/chrome_password_manager_client.cc
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@
#include "components/browser_sync/browser/profile_sync_service.h"
#include "components/password_manager/content/browser/content_password_manager_driver.h"
#include "components/password_manager/content/browser/password_manager_internals_service_factory.h"
#include "components/password_manager/content/common/credential_manager_messages.h"
#include "components/password_manager/core/browser/browser_save_password_progress_logger.h"
#include "components/password_manager/core/browser/log_manager.h"
#include "components/password_manager/core/browser/log_receiver.h"
Expand Down Expand Up @@ -141,7 +140,7 @@ ChromePasswordManagerClient::ChromePasswordManagerClient(
profile_(Profile::FromBrowserContext(web_contents->GetBrowserContext())),
password_manager_(this),
driver_factory_(nullptr),
credential_manager_dispatcher_(web_contents, this),
credential_manager_impl_(web_contents, this),
observer_(nullptr),
credentials_filter_(this,
base::Bind(&GetSyncService, profile_),
Expand Down Expand Up @@ -611,3 +610,17 @@ const password_manager::LogManager* ChromePasswordManagerClient::GetLogManager()
const {
return log_manager_.get();
}

// static
void ChromePasswordManagerClient::BindCredentialManager(
content::RenderFrameHost* render_frame_host,
password_manager::mojom::CredentialManagerRequest request) {
content::WebContents* web_contents =
content::WebContents::FromRenderFrameHost(render_frame_host);
DCHECK(web_contents);

ChromePasswordManagerClient* instance =
ChromePasswordManagerClient::FromWebContents(web_contents);
DCHECK(instance);
instance->credential_manager_impl_.BindRequest(std::move(request));
}
12 changes: 9 additions & 3 deletions chrome/browser/password_manager/chrome_password_manager_client.h
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
#include "base/macros.h"
#include "base/memory/scoped_vector.h"
#include "components/password_manager/content/browser/content_password_manager_driver_factory.h"
#include "components/password_manager/content/browser/credential_manager_dispatcher.h"
#include "components/password_manager/content/browser/credential_manager_impl.h"
#include "components/password_manager/core/browser/password_manager.h"
#include "components/password_manager/core/browser/password_manager_client.h"
#include "components/password_manager/sync/browser/sync_credentials_filter.h"
Expand Down Expand Up @@ -105,6 +105,10 @@ class ChromePasswordManagerClient
// the sad old Infobar UI.
static bool IsTheHotNewBubbleUIEnabled();

static void BindCredentialManager(
content::RenderFrameHost* render_frame_host,
password_manager::mojom::CredentialManagerRequest request);

protected:
// Callable for tests.
ChromePasswordManagerClient(content::WebContents* web_contents,
Expand Down Expand Up @@ -168,8 +172,10 @@ class ChromePasswordManagerClient

password_manager::ContentPasswordManagerDriverFactory* driver_factory_;

password_manager::CredentialManagerDispatcher
credential_manager_dispatcher_;
// As a mojo service, will be registered into service registry
// of the main frame host by ChromeContentBrowserClient
// once main frame host was created.
password_manager::CredentialManagerImpl credential_manager_impl_;

// Observer for password generation popup.
autofill::PasswordGenerationPopupObserver* observer_;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@
#include "chrome/test/base/testing_profile.h"
#include "components/autofill/content/common/autofill_messages.h"
#include "components/password_manager/content/browser/password_manager_internals_service_factory.h"
#include "components/password_manager/content/common/credential_manager_messages.h"
#include "components/password_manager/core/browser/credentials_filter.h"
#include "components/password_manager/core/browser/log_manager.h"
#include "components/password_manager/core/browser/log_receiver.h"
Expand Down
2 changes: 1 addition & 1 deletion chrome/chrome_common.gypi
Original file line number Diff line number Diff line change
Expand Up @@ -405,8 +405,8 @@
'common_mojo_bindings',
'<(DEPTH)/components/components.gyp:autofill_core_common',
'<(DEPTH)/components/components.gyp:autofill_content_common',
'<(DEPTH)/components/components.gyp:password_manager_content_mojo_bindings',
'<(DEPTH)/components/components.gyp:password_manager_core_common',
'<(DEPTH)/components/components.gyp:password_manager_content_common',
'<(DEPTH)/components/components.gyp:signin_core_common',
'<(DEPTH)/components/components.gyp:translate_content_common',
'<(DEPTH)/components/components.gyp:visitedlink_common',
Expand Down
2 changes: 1 addition & 1 deletion chrome/common/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@ static_library("common") {
"//chrome/common/net",
"//components/autofill/content/common",
"//components/autofill/core/common",
"//components/password_manager/content/common",
"//components/password_manager/content/public/interfaces",
"//components/password_manager/core/common",
"//components/signin/core/common",
"//components/translate/content/common",
Expand Down
1 change: 0 additions & 1 deletion components/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -398,7 +398,6 @@ if (!is_ios) {
"//components/dom_distiller/core",
"//components/dom_distiller/core:test_support",
"//components/password_manager/content/browser",
"//components/password_manager/content/common",
"//components/password_manager/content/renderer",
"//components/strings",
"//components/tracing",
Expand Down
3 changes: 1 addition & 2 deletions components/components_tests.gyp
Original file line number Diff line number Diff line change
Expand Up @@ -457,7 +457,7 @@
],
'password_manager_unittest_sources': [
'password_manager/content/browser/content_password_manager_driver_unittest.cc',
'password_manager/content/browser/credential_manager_dispatcher_unittest.cc',
'password_manager/content/browser/credential_manager_impl_unittest.cc',
'password_manager/core/browser/affiliated_match_helper_unittest.cc',
'password_manager/core/browser/affiliation_backend_unittest.cc',
'password_manager/core/browser/affiliation_database_unittest.cc',
Expand Down Expand Up @@ -1261,7 +1261,6 @@
'components.gyp:page_load_metrics_browser',
'components.gyp:page_load_metrics_renderer',
'components.gyp:password_manager_content_browser',
'components.gyp:password_manager_content_common',
'components.gyp:power',
'components.gyp:precache_content',
'components.gyp:safe_browsing_db',
Expand Down
55 changes: 38 additions & 17 deletions components/password_manager.gypi
Original file line number Diff line number Diff line change
Expand Up @@ -249,26 +249,47 @@
['OS != "ios"', {
'targets': [
{
# GN version: //components/password_manager/content/common
'target_name': 'password_manager_content_common',
# GN version: //components/password_manager/content/public/interfaces
'target_name': 'password_manager_content_mojo_bindings_mojom',
'type': 'none',
'variables': {
'mojom_extra_generator_args': [
'--typemap', '<(DEPTH)/url/mojo/origin.typemap',
],
'mojom_files': [
'password_manager/content/public/interfaces/credential_manager.mojom',
],
},
'include_dirs': [
'..',
],
'includes': [
'../mojo/mojom_bindings_generator_explicit.gypi',
],
},
{
# GN version: //components/password_manager/content/public/cpp
'target_name': 'password_manager_content_mojo_bindings',
'type': 'static_library',
'dependencies': [
'../base/base.gyp:base',
'../content/content.gyp:content_common',
'../ipc/ipc.gyp:ipc',
'../third_party/WebKit/public/blink.gyp:blink_minimal',
'../url/ipc/url_ipc.gyp:url_ipc',
'../mojo/mojo_base.gyp:mojo_common_lib',
'../mojo/mojo_base.gyp:mojo_url_type_converters',
'../mojo/mojo_public.gyp:mojo_cpp_bindings',
'../third_party/WebKit/public/blink.gyp:blink',
'../url/url.gyp:url_mojom',
'password_manager_content_mojo_bindings_mojom',
'password_manager_core_common',
],
'export_dependent_settings': [
'../url/url.gyp:url_mojom',
],
'include_dirs': [
'..',
],
'sources': [
'password_manager/content/common/credential_manager_content_utils.cc',
'password_manager/content/common/credential_manager_content_utils.h',
'password_manager/content/common/credential_manager_message_generator.cc',
'password_manager/content/common/credential_manager_message_generator.h',
'password_manager/content/common/credential_manager_messages.h',
'password_manager/content/public/cpp/type_converters.cc',
'password_manager/content/public/cpp/type_converters.h',
],
},
{
Expand All @@ -278,11 +299,10 @@
'dependencies': [
'../base/base.gyp:base',
'../content/content.gyp:content_common',
'../ipc/ipc.gyp:ipc',
'../mojo/mojo_base.gyp:mojo_url_type_converters',
'../third_party/WebKit/public/blink.gyp:blink',
'../url/ipc/url_ipc.gyp:url_ipc',
'password_manager_content_mojo_bindings',
'password_manager_core_common',
'password_manager_content_common',
],
'include_dirs': [
'..',
Expand All @@ -301,13 +321,14 @@
'../content/content.gyp:content_browser',
'../content/content.gyp:content_common',
'../ipc/ipc.gyp:ipc',
'../mojo/mojo_base.gyp:mojo_url_type_converters',
'../net/net.gyp:net',
'autofill_content_browser',
'autofill_content_common',
'autofill_core_common',
'keyed_service_content',
'password_manager_content_mojo_bindings',
'password_manager_core_browser',
'password_manager_content_common',
],
'include_dirs': [
'..',
Expand All @@ -320,8 +341,8 @@
'password_manager/content/browser/content_password_manager_driver.h',
'password_manager/content/browser/content_password_manager_driver_factory.cc',
'password_manager/content/browser/content_password_manager_driver_factory.h',
'password_manager/content/browser/credential_manager_dispatcher.cc',
'password_manager/content/browser/credential_manager_dispatcher.h',
'password_manager/content/browser/credential_manager_impl.cc',
'password_manager/content/browser/credential_manager_impl.h',
'password_manager/content/browser/password_manager_internals_service_factory.cc',
'password_manager/content/browser/password_manager_internals_service_factory.h',
],
Expand Down
2 changes: 1 addition & 1 deletion components/password_manager/content/DEPS
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@ include_rules = [
"+components/autofill/content/common",
"+components/autofill/core/common",
"+content/public/common",
"+mojo/common",
# Allow inclusion of WebKit API files.
"+third_party/WebKit/public/platform",
"+third_party/WebKit/public/web",
"+ipc",
]

specific_include_rules = {
Expand Down
10 changes: 6 additions & 4 deletions components/password_manager/content/browser/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ source_set("browser") {
"content_password_manager_driver.h",
"content_password_manager_driver_factory.cc",
"content_password_manager_driver_factory.h",
"credential_manager_dispatcher.cc",
"credential_manager_dispatcher.h",
"credential_manager_impl.cc",
"credential_manager_impl.h",
"password_manager_internals_service_factory.cc",
"password_manager_internals_service_factory.h",
]
Expand All @@ -22,13 +22,15 @@ source_set("browser") {
"//components/autofill/content/common",
"//components/autofill/core/common",
"//components/keyed_service/content",
"//components/password_manager/content/common",
"//components/password_manager/content/public/cpp",
"//components/password_manager/content/public/interfaces",
"//components/password_manager/core/browser",
"//components/password_manager/core/common",
"//components/prefs",
"//content/public/browser",
"//content/public/common",
"//ipc",
"//mojo/common:url_type_converters",
"//net",
]
}
Expand All @@ -37,7 +39,7 @@ source_set("unit_tests") {
testonly = true
sources = [
"content_password_manager_driver_unittest.cc",
"credential_manager_dispatcher_unittest.cc",
"credential_manager_impl_unittest.cc",
]
deps = [
":browser",
Expand Down
2 changes: 2 additions & 0 deletions components/password_manager/content/browser/DEPS
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,7 @@ include_rules = [
"+components/autofill/content/browser",
"+components/keyed_service/content",
"+content/public/browser",
"+ipc",
"+mojo/public",
"+net",
]
Loading

0 comments on commit 4a2f71f

Please sign in to comment.