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

Unified Diff: components/password_manager/core/browser/log_router.h

Issue 1415533013: Fix password manager internals renderer reporting (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: All comments addressed Created 5 years, 1 month 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/core/browser/log_router.h
diff --git a/components/password_manager/core/browser/log_router.h b/components/password_manager/core/browser/log_router.h
index f959dbad20e0e1e5ef2a568b5c83a8f1d2a7a5a2..9044f2ad07e8fbad968252ca929ae27bec04db33 100644
--- a/components/password_manager/core/browser/log_router.h
+++ b/components/password_manager/core/browser/log_router.h
@@ -8,22 +8,24 @@
#include <set>
#include <string>
+#include "base/compiler_specific.h"
#include "base/macros.h"
#include "base/observer_list.h"
namespace password_manager {
+class LogManager;
class LogReceiver;
-class PasswordManagerClient;
-// The router stands between PasswordManagerClient instances and log receivers.
-// During the process of saving a password, the password manager code generates
-// the log strings, and passes them to the router. The router distributes the
-// logs to the receivers for displaying.
+// The router stands between LogManager and LogReceiver instances. Both managers
+// and receivers need to register (and unregister) with the router. After that,
+// the following communication is enabled:
+// * LogManagers are notified when logging starts or stops being possible
+// * LogReceivers are sent logs routed through LogRouter
class LogRouter {
public:
LogRouter();
- virtual ~LogRouter();
+ ~LogRouter();
// Passes logs to the router. Only call when there are receivers registered.
void ProcessLog(const std::string& text);
@@ -32,26 +34,26 @@ class LogRouter {
// constructor of the registered object, because they do not call that object,
// and the router only runs on a single thread.
- // The clients must register to be notified about whether there are some
- // receivers or not. RegisterClient adds |client| to the right observer list
+ // The managers must register to be notified about whether there are some
+ // receivers or not. RegisterManager adds |manager| to the right observer list
// and returns true iff there are some receivers registered.
- bool RegisterClient(PasswordManagerClient* client);
- // Remove |client| from the observers list.
- void UnregisterClient(PasswordManagerClient* client);
+ bool RegisterManager(LogManager* manager);
+ // Remove |manager| from the observers list.
+ void UnregisterManager(LogManager* manager);
// The receivers must register to get updates with new logs in the future.
// RegisterReceiver adds |receiver| to the right observer list, and returns
// the logs accumulated so far. (It returns by value, not const ref, to
// provide a snapshot as opposed to a link to |accumulated_logs_|.)
- std::string RegisterReceiver(LogReceiver* receiver);
+ std::string RegisterReceiver(LogReceiver* receiver) WARN_UNUSED_RESULT;
// Remove |receiver| from the observers list.
void UnregisterReceiver(LogReceiver* receiver);
private:
- // Observer lists for clients and receivers. The |true| in the template
+ // Observer lists for managers and receivers. The |true| in the template
// specialisation means that they will check that all observers were removed
// on destruction.
- base::ObserverList<PasswordManagerClient, true> clients_;
+ base::ObserverList<LogManager, true> managers_;
base::ObserverList<LogReceiver, true> receivers_;
// Logs accumulated since the first receiver was registered.

Powered by Google App Engine
This is Rietveld 408576698