summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoravayvod@chromium.org <avayvod@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-10-18 17:40:48 +0000
committeravayvod@chromium.org <avayvod@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-10-18 17:40:48 +0000
commit0c832befd5ae7ed4c9dbbbc01ca59d6c22fa2253 (patch)
treec21e1c02d40e292d138e1b9af3e352e4f9dfb414
parentc3a7bceb912a3c934724a31871a84991cdcf74c3 (diff)
downloadchromium_src-0c832befd5ae7ed4c9dbbbc01ca59d6c22fa2253.zip
chromium_src-0c832befd5ae7ed4c9dbbbc01ca59d6c22fa2253.tar.gz
chromium_src-0c832befd5ae7ed4c9dbbbc01ca59d6c22fa2253.tar.bz2
Increased timeout for select() call.
Removed handling of capture failure to avoid image flickering. BUG=chromiumos:7612 TEST=Login with new user, verify that camera image doesn't flicker changing from actual image to broken camera image and back in any circumstances. Review URL: http://codereview.chromium.org/3799008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@62946 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/browser/chromeos/login/camera.cc7
-rw-r--r--chrome/browser/chromeos/login/user_image_screen.cc7
2 files changed, 9 insertions, 5 deletions
diff --git a/chrome/browser/chromeos/login/camera.cc b/chrome/browser/chromeos/login/camera.cc
index dd4c9b5..6de6075 100644
--- a/chrome/browser/chromeos/login/camera.cc
+++ b/chrome/browser/chromeos/login/camera.cc
@@ -22,6 +22,7 @@
#include "base/logging.h"
#include "base/string_util.h"
#include "base/stringprintf.h"
+#include "base/time.h"
#include "chrome/browser/browser_thread.h"
#include "gfx/size.h"
#include "skia/ext/image_operations.h"
@@ -119,7 +120,7 @@ const int kFrameHeight = 480;
// Number of buffers to request from the device.
const int kRequestBuffersCount = 4;
// Timeout for select() call in microseconds.
-const long kSelectTimeout = 10000;
+const long kSelectTimeout = 1 * base::Time::kMicrosecondsPerSecond;
} // namespace
@@ -421,8 +422,8 @@ void Camera::OnCapture() {
FD_SET(device_descriptor_, &fds);
timeval tv = {};
- tv.tv_sec = 0;
- tv.tv_usec = kSelectTimeout;
+ tv.tv_sec = kSelectTimeout / base::Time::kMicrosecondsPerSecond;
+ tv.tv_usec = kSelectTimeout % base::Time::kMicrosecondsPerSecond;
int result = select(device_descriptor_ + 1, &fds, NULL, NULL, &tv);
if (result == -1) {
diff --git a/chrome/browser/chromeos/login/user_image_screen.cc b/chrome/browser/chromeos/login/user_image_screen.cc
index 7f1a6a4..b54c47d 100644
--- a/chrome/browser/chromeos/login/user_image_screen.cc
+++ b/chrome/browser/chromeos/login/user_image_screen.cc
@@ -85,8 +85,11 @@ void UserImageScreen::OnCaptureSuccess(const SkBitmap& frame) {
}
void UserImageScreen::OnCaptureFailure() {
- if (view())
- view()->ShowCameraError();
+ // If camera failed to provide a picture we don't want to show broken
+ // camera image since it may lead to flicker if capturing fails and then
+ // works again.
+ // TODO(avayvod): Find a better way to handle such cases.
+ VLOG(1) << "Capturing image failed.";
}
void UserImageScreen::OnOK(const SkBitmap& image) {