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

Unified Diff: components/translate/content/browser/browser_cld_data_provider.h

Issue 461633002: Refactor language detection logic to allow non-static CLD data sources. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Make some of the harness factory methods private Created 6 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/translate/content/browser/browser_cld_data_provider.h
diff --git a/components/translate/content/browser/browser_cld_data_provider.h b/components/translate/content/browser/browser_cld_data_provider.h
index da99c062d167964e2ddf3fc4143d5f5bb2ee895e..918912a141d1ba6e20d8ef056688b564b2cfe2c1 100644
--- a/components/translate/content/browser/browser_cld_data_provider.h
+++ b/components/translate/content/browser/browser_cld_data_provider.h
@@ -7,30 +7,31 @@
#include <string>
-#include "base/files/file_path.h"
+#include "base/compiler_specific.h"
+#include "base/macros.h"
#include "ipc/ipc_listener.h"
namespace IPC {
class Message;
}
-namespace content {
-class WebContents;
-}
-
namespace translate {
// Browser-side interface responsible for providing CLD data.
// The implementation must be paired with a renderer-side implementation of
// the RendererCldDataProvider class:
+// ../renderer/renderer_cld_data_provider.h
//
-// components/translate/content/renderer/renderer_cld_data_provider.h
+// The glue between them is typically a pair of request/response IPC messages
+// using the "CldDataProviderMsgStart" IPCMessageStart enumerated constant from
+// ipc_message_start.h
//
-// ... and the glue between them is typically a pair of request/response IPC
-// messages using the CldDataProviderMsgStart IPCMessageStart enumerated
-// constant from ipc_message_start.h
+// In general, instances of this class should be obtained by using the
+// BrowserCldDataProviderFactory::CreateBrowserCldProvider(...). For more
+// information, see browser_cld_data_provider_factory.h.
class BrowserCldDataProvider : public IPC::Listener {
public:
+ BrowserCldDataProvider() {}
~BrowserCldDataProvider() override {}
// IPC::Listener implementation:
@@ -38,44 +39,29 @@ class BrowserCldDataProvider : public IPC::Listener {
// OnCldDataRequest() and returns true. In all other cases, this method does
// nothing. This method is defined as virtual in order to force the
// implementation to define the specific IPC message(s) that it handles.
- virtual bool OnMessageReceived(const IPC::Message&) override = 0;
+ // The default implementation does nothing and returns false.
+ bool OnMessageReceived(const IPC::Message&) override;
// Called when the browser process receives an appropriate message in
// OnMessageReceived, above. The implementation should attempt to locate
// the CLD data, cache any metadata required for accessing that data, and
// ultimately trigger a response by invoking SendCldDataResponse.
- //
// The renderer process may poll for data, in which case this method may be
// repeatedly invoked. The implementation must be safe to call any number
// of times.
- virtual void OnCldDataRequest() = 0;
+ // The default implementation does nothing.
+ virtual void OnCldDataRequest() {}
// Invoked when OnCldDataRequest, above, results in a successful lookup or
// the data is already cached and ready to respond to. The implementation
// should take whatever action is appropriate for responding to the paired
// RendererCldDataProvider, typically by sending an IPC response.
- virtual void SendCldDataResponse() = 0;
-};
-
-// Static factory function defined by the implementation that produces a new
-// provider for the specified WebContents.
-BrowserCldDataProvider* CreateBrowserCldDataProviderFor(
- content::WebContents*);
+ // The default implementation does nothing.
+ virtual void SendCldDataResponse() {}
-// For data sources that support a separate CLD data file, configures the path
-// of that data file.
-//
-// The 'component' and 'standalone' data sources need this method to be called
-// in order to locate the CLD data on disk.
-// If the data source doesn't need or doesn't support such configuration, this
-// function should do nothing. This is the case for, e.g., the static data
-// source.
-void SetCldDataFilePath(const base::FilePath& path);
-
-// Returns the path most recently set by SetCldDataFilePath. The initial value
-// prior to any such call is the empty path. If the data source doesn't support
-// a data file, returns the empty path.
-base::FilePath GetCldDataFilePath();
+ private:
+ DISALLOW_COPY_AND_ASSIGN(BrowserCldDataProvider);
+};
} // namespace translate
« no previous file with comments | « components/translate/content/browser/BUILD.gn ('k') | components/translate/content/browser/browser_cld_data_provider.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698