| Index: chrome/browser/speech/speech_recognition_bubble_controller.cc
|
| diff --git a/chrome/browser/speech/speech_recognition_bubble_controller.cc b/chrome/browser/speech/speech_recognition_bubble_controller.cc
|
| deleted file mode 100644
|
| index ede3858ae69f7d96d6a6b0fcf49ea793df70c0ae..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/speech/speech_recognition_bubble_controller.cc
|
| +++ /dev/null
|
| @@ -1,218 +0,0 @@
|
| -// Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#include "chrome/browser/speech/speech_recognition_bubble_controller.h"
|
| -
|
| -#include "base/bind.h"
|
| -#include "chrome/browser/tab_contents/tab_util.h"
|
| -#include "content/public/browser/browser_thread.h"
|
| -#include "content/public/browser/notification_registrar.h"
|
| -#include "content/public/browser/notification_source.h"
|
| -#include "content/public/browser/notification_types.h"
|
| -#include "content/public/browser/render_process_host.h"
|
| -#include "content/public/browser/render_view_host.h"
|
| -#include "content/public/browser/web_contents.h"
|
| -
|
| -using content::BrowserThread;
|
| -using content::WebContents;
|
| -
|
| -namespace {
|
| -const int kInvalidSessionId = 0;
|
| -}
|
| -
|
| -namespace speech {
|
| -
|
| -SpeechRecognitionBubbleController::SpeechRecognitionBubbleController(
|
| - Delegate* delegate)
|
| - : delegate_(delegate),
|
| - last_request_issued_(REQUEST_CLOSE),
|
| - current_bubble_session_id_(kInvalidSessionId),
|
| - current_bubble_render_process_id_(0),
|
| - current_bubble_render_view_id_(0) {
|
| -}
|
| -
|
| -SpeechRecognitionBubbleController::~SpeechRecognitionBubbleController() {
|
| - DCHECK_EQ(kInvalidSessionId, current_bubble_session_id_);
|
| -}
|
| -
|
| -void SpeechRecognitionBubbleController::CreateBubble(
|
| - int session_id,
|
| - int render_process_id,
|
| - int render_view_id,
|
| - const gfx::Rect& element_rect) {
|
| - {
|
| - base::AutoLock auto_lock(lock_);
|
| - current_bubble_session_id_ = session_id;
|
| - current_bubble_render_process_id_ = render_process_id;
|
| - current_bubble_render_view_id_ = render_view_id;
|
| - }
|
| -
|
| - UIRequest request(REQUEST_CREATE);
|
| - request.render_process_id = render_process_id;
|
| - request.render_view_id = render_view_id;
|
| - request.element_rect = element_rect;
|
| - ProcessRequestInUiThread(request);
|
| -}
|
| -
|
| -void SpeechRecognitionBubbleController::SetBubbleRecordingMode() {
|
| - ProcessRequestInUiThread(UIRequest(REQUEST_SET_RECORDING_MODE));
|
| -}
|
| -
|
| -void SpeechRecognitionBubbleController::SetBubbleRecognizingMode() {
|
| - ProcessRequestInUiThread(UIRequest(REQUEST_SET_RECOGNIZING_MODE));
|
| -}
|
| -
|
| -void SpeechRecognitionBubbleController::SetBubbleMessage(
|
| - const base::string16& text) {
|
| - UIRequest request(REQUEST_SET_MESSAGE);
|
| - request.message = text;
|
| - ProcessRequestInUiThread(request);
|
| -}
|
| -
|
| -bool SpeechRecognitionBubbleController::IsShowingMessage() const {
|
| - return last_request_issued_ == REQUEST_SET_MESSAGE;
|
| -}
|
| -
|
| -void SpeechRecognitionBubbleController::SetBubbleInputVolume(
|
| - float volume,
|
| - float noise_volume) {
|
| - UIRequest request(REQUEST_SET_INPUT_VOLUME);
|
| - request.volume = volume;
|
| - request.noise_volume = noise_volume;
|
| - ProcessRequestInUiThread(request);
|
| -}
|
| -
|
| -void SpeechRecognitionBubbleController::CloseBubble() {
|
| - {
|
| - base::AutoLock auto_lock(lock_);
|
| - current_bubble_session_id_ = kInvalidSessionId;
|
| - }
|
| - ProcessRequestInUiThread(UIRequest(REQUEST_CLOSE));
|
| -}
|
| -
|
| -void SpeechRecognitionBubbleController::CloseBubbleForRenderViewOnUIThread(
|
| - int render_process_id, int render_view_id) {
|
| - {
|
| - base::AutoLock auto_lock(lock_);
|
| - if (current_bubble_session_id_ == kInvalidSessionId ||
|
| - current_bubble_render_process_id_ != render_process_id ||
|
| - current_bubble_render_view_id_ != render_view_id) {
|
| - return;
|
| - }
|
| - current_bubble_session_id_ = kInvalidSessionId;
|
| - }
|
| - ProcessRequestInUiThread(UIRequest(REQUEST_CLOSE));
|
| -}
|
| -
|
| -int SpeechRecognitionBubbleController::GetActiveSessionID() {
|
| - base::AutoLock auto_lock(lock_);
|
| - return current_bubble_session_id_;
|
| -}
|
| -
|
| -void SpeechRecognitionBubbleController::InfoBubbleButtonClicked(
|
| - SpeechRecognitionBubble::Button button) {
|
| - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
| - BrowserThread::PostTask(BrowserThread::IO, FROM_HERE,
|
| - base::Bind(
|
| - &SpeechRecognitionBubbleController::InvokeDelegateButtonClicked, this,
|
| - button));
|
| -}
|
| -
|
| -void SpeechRecognitionBubbleController::InfoBubbleFocusChanged() {
|
| - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
| - BrowserThread::PostTask(BrowserThread::IO, FROM_HERE,
|
| - base::Bind(&SpeechRecognitionBubbleController::InvokeDelegateFocusChanged,
|
| - this));
|
| -}
|
| -
|
| -void SpeechRecognitionBubbleController::InvokeDelegateButtonClicked(
|
| - SpeechRecognitionBubble::Button button) {
|
| - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
|
| - {
|
| - base::AutoLock auto_lock(lock_);
|
| - if (kInvalidSessionId == current_bubble_session_id_)
|
| - return;
|
| - }
|
| - delegate_->InfoBubbleButtonClicked(current_bubble_session_id_, button);
|
| -}
|
| -
|
| -void SpeechRecognitionBubbleController::InvokeDelegateFocusChanged() {
|
| - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
|
| - {
|
| - base::AutoLock auto_lock(lock_);
|
| - if (kInvalidSessionId == current_bubble_session_id_)
|
| - return;
|
| - }
|
| - delegate_->InfoBubbleFocusChanged(current_bubble_session_id_);
|
| -}
|
| -
|
| -void SpeechRecognitionBubbleController::ProcessRequestInUiThread(
|
| - const UIRequest& request) {
|
| - if (!BrowserThread::CurrentlyOn(BrowserThread::UI)) {
|
| - last_request_issued_ = request.type;
|
| - BrowserThread::PostTask(BrowserThread::UI, FROM_HERE,
|
| - base::Bind(&SpeechRecognitionBubbleController::ProcessRequestInUiThread,
|
| - this, request));
|
| - return;
|
| - }
|
| -
|
| - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
| -
|
| - // In the case of a tab closed or crashed, the bubble can have been destroyed
|
| - // earlier on the UI thread, while other tasks were being enqueued from the IO
|
| - // to the UI thread. Simply return in such cases.
|
| - if (request.type != REQUEST_CREATE && !bubble_.get())
|
| - return;
|
| -
|
| - switch (request.type) {
|
| - case REQUEST_CREATE:
|
| - bubble_.reset(SpeechRecognitionBubble::Create(
|
| - request.render_process_id, request.render_view_id,
|
| - this, request.element_rect));
|
| -
|
| - if (!bubble_.get()) {
|
| - // Could be null if tab or display rect were invalid.
|
| - // Simulate the cancel button being clicked to inform the delegate.
|
| - BrowserThread::PostTask(BrowserThread::IO, FROM_HERE,
|
| - base::Bind(
|
| - &SpeechRecognitionBubbleController::InvokeDelegateButtonClicked,
|
| - this, SpeechRecognitionBubble::BUTTON_CANCEL));
|
| - return;
|
| - }
|
| - bubble_->Show();
|
| - bubble_->SetWarmUpMode();
|
| - break;
|
| - case REQUEST_SET_RECORDING_MODE:
|
| - bubble_->SetRecordingMode();
|
| - break;
|
| - case REQUEST_SET_RECOGNIZING_MODE:
|
| - bubble_->SetRecognizingMode();
|
| - break;
|
| - case REQUEST_SET_MESSAGE:
|
| - bubble_->SetMessage(request.message);
|
| - break;
|
| - case REQUEST_SET_INPUT_VOLUME:
|
| - bubble_->SetInputVolume(request.volume, request.noise_volume);
|
| - break;
|
| - case REQUEST_CLOSE:
|
| - bubble_.reset();
|
| - break;
|
| - default:
|
| - NOTREACHED();
|
| - break;
|
| - }
|
| -}
|
| -
|
| -SpeechRecognitionBubbleController::UIRequest::UIRequest(RequestType type_value)
|
| - : type(type_value),
|
| - volume(0.0F),
|
| - noise_volume(0.0F),
|
| - render_process_id(0),
|
| - render_view_id(0) {
|
| -}
|
| -
|
| -SpeechRecognitionBubbleController::UIRequest::~UIRequest() {
|
| -}
|
| -
|
| -} // namespace speech
|
|
|