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

Side by Side Diff: remoting/client/plugin/chromoting_instance.cc

Issue 10262019: Add notifyClientDimensions API to the Chromoting Client plugin. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 7 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « remoting/client/plugin/chromoting_instance.h ('k') | remoting/protocol/connection_to_host.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "remoting/client/plugin/chromoting_instance.h" 5 #include "remoting/client/plugin/chromoting_instance.h"
6 6
7 #include <string> 7 #include <string>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
95 static bool g_logging_to_plugin = false; 95 static bool g_logging_to_plugin = false;
96 static bool g_has_logging_instance = false; 96 static bool g_has_logging_instance = false;
97 static ChromotingInstance* g_logging_instance = NULL; 97 static ChromotingInstance* g_logging_instance = NULL;
98 static logging::LogMessageHandlerFunction g_logging_old_handler = NULL; 98 static logging::LogMessageHandlerFunction g_logging_old_handler = NULL;
99 99
100 static base::LazyInstance<base::Lock>::Leaky 100 static base::LazyInstance<base::Lock>::Leaky
101 g_logging_lock = LAZY_INSTANCE_INITIALIZER; 101 g_logging_lock = LAZY_INSTANCE_INITIALIZER;
102 102
103 // String sent in the "hello" message to the plugin to describe features. 103 // String sent in the "hello" message to the plugin to describe features.
104 const char ChromotingInstance::kApiFeatures[] = 104 const char ChromotingInstance::kApiFeatures[] =
105 "highQualityScaling injectKeyEvent sendClipboardItem remapKey trapKey"; 105 "highQualityScaling injectKeyEvent sendClipboardItem remapKey trapKey"
Do not use (sergeyu) 2012/05/01 00:48:39 I think you are missing a space here.
106 "notifyClientDimensions";
106 107
107 bool ChromotingInstance::ParseAuthMethods(const std::string& auth_methods_str, 108 bool ChromotingInstance::ParseAuthMethods(const std::string& auth_methods_str,
108 ClientConfig* config) { 109 ClientConfig* config) {
109 if (auth_methods_str == "v1_token") { 110 if (auth_methods_str == "v1_token") {
110 config->use_v1_authenticator = true; 111 config->use_v1_authenticator = true;
111 } else { 112 } else {
112 config->use_v1_authenticator = false; 113 config->use_v1_authenticator = false;
113 114
114 std::vector<std::string> auth_methods; 115 std::vector<std::string> auth_methods;
115 base::SplitString(auth_methods_str, ',', &auth_methods); 116 base::SplitString(auth_methods_str, ',', &auth_methods);
(...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after
292 TrapKey(keycode, trap); 293 TrapKey(keycode, trap);
293 } else if (method == "sendClipboardItem") { 294 } else if (method == "sendClipboardItem") {
294 std::string mime_type; 295 std::string mime_type;
295 std::string item; 296 std::string item;
296 if (!data->GetString("mimeType", &mime_type) || 297 if (!data->GetString("mimeType", &mime_type) ||
297 !data->GetString("item", &item)) { 298 !data->GetString("item", &item)) {
298 LOG(ERROR) << "Invalid sendClipboardItem() data."; 299 LOG(ERROR) << "Invalid sendClipboardItem() data.";
299 return; 300 return;
300 } 301 }
301 SendClipboardItem(mime_type, item); 302 SendClipboardItem(mime_type, item);
303 } else if (method == "notifyClientDimensions") {
304 int width = 0;
305 int height = 0;
306 if (!data->GetInteger("width", &width) ||
307 !data->GetInteger("height", &height)) {
308 LOG(ERROR) << "Invalid notifyClientDimensions.";
309 return;
310 }
311 NotifyClientDimensions(width, height);
302 } 312 }
303 } 313 }
304 314
305 void ChromotingInstance::DidChangeView(const pp::Rect& position, 315 void ChromotingInstance::DidChangeView(const pp::Rect& position,
306 const pp::Rect& clip) { 316 const pp::Rect& clip) {
307 DCHECK(plugin_message_loop_->BelongsToCurrentThread()); 317 DCHECK(plugin_message_loop_->BelongsToCurrentThread());
308 318
309 SkISize new_size = SkISize::Make(position.width(), position.height()); 319 SkISize new_size = SkISize::Make(position.width(), position.height());
310 SkIRect new_clip = 320 SkIRect new_clip =
311 SkIRect::MakeXYWH(clip.x(), clip.y(), clip.width(), clip.height()); 321 SkIRect::MakeXYWH(clip.x(), clip.y(), clip.width(), clip.height());
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after
465 const std::string& item) { 475 const std::string& item) {
466 if (!host_connection_.get()) { 476 if (!host_connection_.get()) {
467 return; 477 return;
468 } 478 }
469 protocol::ClipboardEvent event; 479 protocol::ClipboardEvent event;
470 event.set_mime_type(mime_type); 480 event.set_mime_type(mime_type);
471 event.set_data(item); 481 event.set_data(item);
472 host_connection_->clipboard_stub()->InjectClipboardEvent(event); 482 host_connection_->clipboard_stub()->InjectClipboardEvent(event);
473 } 483 }
474 484
485 void ChromotingInstance::NotifyClientDimensions(int width, int height) {
486 if (!host_connection_.get()) {
487 return;
488 }
489 protocol::ClientDimensions client_dimensions;
490 client_dimensions.set_width(width);
491 client_dimensions.set_height(height);
492 host_connection_->host_stub()->NotifyClientDimensions(client_dimensions);
493 }
494
475 ChromotingStats* ChromotingInstance::GetStats() { 495 ChromotingStats* ChromotingInstance::GetStats() {
476 if (!client_.get()) 496 if (!client_.get())
477 return NULL; 497 return NULL;
478 return client_->GetStats(); 498 return client_->GetStats();
479 } 499 }
480 500
481 void ChromotingInstance::PostChromotingMessage( 501 void ChromotingInstance::PostChromotingMessage(
482 const std::string& method, 502 const std::string& method,
483 scoped_ptr<base::DictionaryValue> data) { 503 scoped_ptr<base::DictionaryValue> data) {
484 scoped_ptr<base::DictionaryValue> message(new base::DictionaryValue()); 504 scoped_ptr<base::DictionaryValue> message(new base::DictionaryValue());
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after
628 scoped_ptr<base::DictionaryValue> data(new base::DictionaryValue()); 648 scoped_ptr<base::DictionaryValue> data(new base::DictionaryValue());
629 data->SetString("message", message); 649 data->SetString("message", message);
630 PostChromotingMessage("logDebugMessage", data.Pass()); 650 PostChromotingMessage("logDebugMessage", data.Pass());
631 651
632 scriptable_object->LogDebugInfo(message); 652 scriptable_object->LogDebugInfo(message);
633 } 653 }
634 g_logging_to_plugin = false; 654 g_logging_to_plugin = false;
635 } 655 }
636 656
637 } // namespace remoting 657 } // namespace remoting
OLDNEW
« no previous file with comments | « remoting/client/plugin/chromoting_instance.h ('k') | remoting/protocol/connection_to_host.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698