Chromium Code Reviews| OLD | NEW |
|---|---|
| 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/host/client_session.h" | 5 #include "remoting/host/client_session.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "base/message_loop_proxy.h" | 9 #include "base/message_loop_proxy.h" |
| 10 #include "media/video/capture/screen/screen_capturer.h" | 10 #include "media/video/capture/screen/screen_capturer.h" |
| (...skipping 13 matching lines...) Expand all Loading... | |
| 24 #include "remoting/host/screen_resolution.h" | 24 #include "remoting/host/screen_resolution.h" |
| 25 #include "remoting/host/video_scheduler.h" | 25 #include "remoting/host/video_scheduler.h" |
| 26 #include "remoting/proto/control.pb.h" | 26 #include "remoting/proto/control.pb.h" |
| 27 #include "remoting/proto/event.pb.h" | 27 #include "remoting/proto/event.pb.h" |
| 28 #include "remoting/protocol/client_stub.h" | 28 #include "remoting/protocol/client_stub.h" |
| 29 #include "remoting/protocol/clipboard_thread_proxy.h" | 29 #include "remoting/protocol/clipboard_thread_proxy.h" |
| 30 | 30 |
| 31 // Default DPI to assume for old clients that use notifyClientDimensions. | 31 // Default DPI to assume for old clients that use notifyClientDimensions. |
| 32 const int kDefaultDPI = 96; | 32 const int kDefaultDPI = 96; |
| 33 | 33 |
| 34 // All DesktopEnvironment implementations rate-limit desktop resize requests, | |
| 35 // so this Capability is added automatically. | |
| 36 const char kRateLimitResizeRequests[] = "rateLimitResizeRequests"; | |
| 37 | |
| 34 namespace remoting { | 38 namespace remoting { |
| 35 | 39 |
| 36 ClientSession::ClientSession( | 40 ClientSession::ClientSession( |
| 37 EventHandler* event_handler, | 41 EventHandler* event_handler, |
| 38 scoped_refptr<base::SingleThreadTaskRunner> audio_task_runner, | 42 scoped_refptr<base::SingleThreadTaskRunner> audio_task_runner, |
| 39 scoped_refptr<base::SingleThreadTaskRunner> input_task_runner, | 43 scoped_refptr<base::SingleThreadTaskRunner> input_task_runner, |
| 40 scoped_refptr<base::SingleThreadTaskRunner> video_capture_task_runner, | 44 scoped_refptr<base::SingleThreadTaskRunner> video_capture_task_runner, |
| 41 scoped_refptr<base::SingleThreadTaskRunner> video_encode_task_runner, | 45 scoped_refptr<base::SingleThreadTaskRunner> video_encode_task_runner, |
| 42 scoped_refptr<base::SingleThreadTaskRunner> network_task_runner, | 46 scoped_refptr<base::SingleThreadTaskRunner> network_task_runner, |
| 43 scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner, | 47 scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner, |
| (...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 204 // Create the desktop environment. Drop the connection if it could not be | 208 // Create the desktop environment. Drop the connection if it could not be |
| 205 // created for any reason (for instance the curtain could not initialize). | 209 // created for any reason (for instance the curtain could not initialize). |
| 206 desktop_environment_ = | 210 desktop_environment_ = |
| 207 desktop_environment_factory_->Create(control_factory_.GetWeakPtr()); | 211 desktop_environment_factory_->Create(control_factory_.GetWeakPtr()); |
| 208 if (!desktop_environment_) { | 212 if (!desktop_environment_) { |
| 209 DisconnectSession(); | 213 DisconnectSession(); |
| 210 return; | 214 return; |
| 211 } | 215 } |
| 212 | 216 |
| 213 host_capabilities_ = desktop_environment_->GetCapabilities(); | 217 host_capabilities_ = desktop_environment_->GetCapabilities(); |
| 218 host_capabilities_ = host_capabilities_ + " " + kRateLimitResizeRequests; | |
|
Jamie
2013/06/04 01:27:49
Is this an acceptable way of getting the capabilit
alexeypa (please no reviews)
2013/06/04 17:07:37
No, I don't think we should do it this way. I thin
Jamie
2013/06/04 21:18:03
Done. However, see my comments below.
| |
| 214 | 219 |
| 215 // Ignore protocol::Capabilities messages from the client if it does not | 220 // Ignore protocol::Capabilities messages from the client if it does not |
| 216 // support any capabilities. | 221 // support any capabilities. |
| 217 if (!connection_->session()->config().SupportsCapabilities()) { | 222 if (!connection_->session()->config().SupportsCapabilities()) { |
| 218 VLOG(1) << "The client does not support any capabilities."; | 223 VLOG(1) << "The client does not support any capabilities."; |
| 219 | 224 |
| 220 client_capabilities_ = make_scoped_ptr(new std::string()); | 225 client_capabilities_ = make_scoped_ptr(new std::string()); |
| 221 desktop_environment_->SetCapabilities(*client_capabilities_); | 226 desktop_environment_->SetCapabilities(*client_capabilities_); |
| 222 } | 227 } |
| 223 | 228 |
| (...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 416 return scoped_ptr<AudioEncoder>(new AudioEncoderSpeex()); | 421 return scoped_ptr<AudioEncoder>(new AudioEncoderSpeex()); |
| 417 } else if (audio_config.codec == protocol::ChannelConfig::CODEC_OPUS) { | 422 } else if (audio_config.codec == protocol::ChannelConfig::CODEC_OPUS) { |
| 418 return scoped_ptr<AudioEncoder>(new AudioEncoderOpus()); | 423 return scoped_ptr<AudioEncoder>(new AudioEncoderOpus()); |
| 419 } | 424 } |
| 420 | 425 |
| 421 NOTIMPLEMENTED(); | 426 NOTIMPLEMENTED(); |
| 422 return scoped_ptr<AudioEncoder>(NULL); | 427 return scoped_ptr<AudioEncoder>(NULL); |
| 423 } | 428 } |
| 424 | 429 |
| 425 } // namespace remoting | 430 } // namespace remoting |
| OLD | NEW |