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

Unified Diff: remoting/client/plugin/chromoting_plugin.h

Issue 2858037: Integrating back into using the external ppapi/cpp wrappers. (Closed) Base URL: git://codf21.jail.google.com/chromium.git
Patch Set: fin Created 10 years, 5 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
« no previous file with comments | « remoting/client/chromoting_client.cc ('k') | remoting/client/plugin/chromoting_plugin.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: remoting/client/plugin/chromoting_plugin.h
diff --git a/remoting/client/plugin/chromoting_plugin.h b/remoting/client/plugin/chromoting_plugin.h
index 757e038c3bfa4199766faa9e9f043a429b3ba900..0aac0511496f6387197eaf525f61e58719fbafdd 100644
--- a/remoting/client/plugin/chromoting_plugin.h
+++ b/remoting/client/plugin/chromoting_plugin.h
@@ -2,6 +2,9 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
+// TODO(ajwong): We need to come up with a better description of the
+// responsibilities for each thread.
+
#ifndef REMOTING_CLIENT_PLUGIN_CHROMOTING_PLUGIN_H_
#define REMOTING_CLIENT_PLUGIN_CHROMOTING_PLUGIN_H_
@@ -15,12 +18,19 @@
#include "third_party/ppapi/c/pp_instance.h"
#include "third_party/ppapi/c/pp_rect.h"
#include "third_party/ppapi/c/pp_resource.h"
-#include "third_party/ppapi/c/ppb_instance.h"
+#include "third_party/ppapi/cpp/instance.h"
+#include "third_party/ppapi/cpp/device_context_2d.h"
+
+class MessageLoop;
namespace base {
class Thread;
} // namespace base
+namespace pp {
+class Module;
+} // namespace pp
+
namespace remoting {
class ChromotingClient;
@@ -28,23 +38,20 @@ class HostConnection;
class JingleThread;
class PepperView;
-class ChromotingClient;
-
-class ChromotingPlugin {
+class ChromotingPlugin : public pp::Instance {
public:
// The mimetype for which this plugin is registered.
- //
- // TODO(ajwong): Mimetype doesn't really make sense for us as the trigger
- // point. I think we should handle a special protocol (eg., chromotocol://)
static const char *kMimeType;
- ChromotingPlugin(PP_Instance instance, const PPB_Instance* instance_funcs);
+ ChromotingPlugin(PP_Instance instance);
virtual ~ChromotingPlugin();
virtual bool Init(uint32_t argc, const char* argn[], const char* argv[]);
virtual bool HandleEvent(const PP_Event& event);
virtual void ViewChanged(const PP_Rect& position, const PP_Rect& clip);
+ virtual bool CurrentlyOnPluginThread() const;
+
private:
FRIEND_TEST(ChromotingPluginTest, ParseUrl);
FRIEND_TEST(ChromotingPluginTest, TestCaseSetup);
@@ -54,14 +61,13 @@ class ChromotingPlugin {
std::string* auth_token,
std::string* host_jid);
- // Size of the plugin window.
- int width_;
- int height_;
-
- PP_Resource drawing_context_;
-
- PP_Instance pp_instance_;
- const PPB_Instance* ppb_instance_funcs_;
+ // Since we're an internal plugin, we can just grab the message loop during
+ // init to figure out which thread we're on. This should only be used to
+ // sanity check which thread we're executing on. Do not post task here!
+ // Instead, use PPB_Core:CallOnMainThread() in the pepper api.
+ //
+ // TODO(ajwong): Think if there is a better way to safeguard this.
+ MessageLoop* pepper_main_loop_dont_post_to_me_;
scoped_ptr<base::Thread> main_thread_;
scoped_ptr<JingleThread> network_thread_;
« no previous file with comments | « remoting/client/chromoting_client.cc ('k') | remoting/client/plugin/chromoting_plugin.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698