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

Unified Diff: chrome/browser/speech/speech_recognition_bubble.h

Issue 260903010: Start removing support for the experimental x-webkit-speech API (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Don't touch histograms.xml Created 6 years, 8 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
Index: chrome/browser/speech/speech_recognition_bubble.h
diff --git a/chrome/browser/speech/speech_recognition_bubble.h b/chrome/browser/speech/speech_recognition_bubble.h
deleted file mode 100644
index 96a805e1540588b01dd251d913de265a327d86fc..0000000000000000000000000000000000000000
--- a/chrome/browser/speech/speech_recognition_bubble.h
+++ /dev/null
@@ -1,205 +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.
-
-#ifndef CHROME_BROWSER_SPEECH_SPEECH_RECOGNITION_BUBBLE_H_
-#define CHROME_BROWSER_SPEECH_SPEECH_RECOGNITION_BUBBLE_H_
-
-#include <vector>
-
-#include "base/memory/scoped_ptr.h"
-#include "base/memory/weak_ptr.h"
-#include "base/strings/string16.h"
-#include "ui/base/layout.h"
-#include "ui/gfx/image/image_skia.h"
-
-class SkBitmap;
-class SkCanvas;
-
-namespace content {
-class WebContents;
-}
-
-namespace gfx {
-class Canvas;
-class Rect;
-}
-
-// SpeechRecognitionBubble displays a popup info bubble during speech
-// recognition, points to the html element which requested speech recognition
-// and shows progress events. The popup is closed by the user clicking anywhere
-// outside the popup window, or by the caller destroying this object.
-class SpeechRecognitionBubble {
- public:
- // The various buttons which may be part of the bubble.
- enum Button {
- BUTTON_TRY_AGAIN,
- BUTTON_CANCEL
- };
-
- // Informs listeners of user actions in the bubble.
- class Delegate {
- public:
- // Invoked when the user selects a button in the info bubble. The InfoBubble
- // is still active and the caller should close it if necessary.
- virtual void InfoBubbleButtonClicked(Button button) = 0;
-
- // Invoked when the user clicks outside the InfoBubble causing it to close.
- // The InfoBubble window is no longer visible on screen and the caller can
- // free the InfoBubble instance. This callback is not issued if the bubble
- // got closed because the object was destroyed by the caller.
- virtual void InfoBubbleFocusChanged() = 0;
-
- protected:
- virtual ~Delegate() {
- }
- };
-
- // Factory method to create new instances.
- // Creates the bubble, call |Show| to display it on screen.
- // |render_process_id| and |render_view_id| is used to extract the
- // correct WebContents.
- // |element_rect| is the display bounds of the html element requesting speech
- // recognition (in page coordinates).
- static SpeechRecognitionBubble* Create(
- int render_process_id,
- int render_view_id,
- Delegate* delegate,
- const gfx::Rect& element_rect);
-
- // This is implemented by platform specific code to create the underlying
- // bubble window. Not to be called directly by users of this class.
- static SpeechRecognitionBubble* CreateNativeBubble(
- int render_process_id,
- int render_view_id,
- Delegate* delegate,
- const gfx::Rect& element_rect);
-
- // |Create| uses the currently registered FactoryMethod to create the
- // SpeechRecognitionBubble instances. FactoryMethod is intended for testing.
- typedef SpeechRecognitionBubble* (*FactoryMethod)(content::WebContents*,
- Delegate*,
- const gfx::Rect&);
- // Sets the factory used by the static method Create. SpeechRecognitionBubble
- // does not take ownership of |factory|. A value of NULL results in a
- // SpeechRecognitionBubble being created directly.
-#if defined(UNIT_TEST)
- static void set_factory(FactoryMethod factory) { factory_ = factory; }
-#endif
-
- virtual ~SpeechRecognitionBubble() {}
-
- // Indicates to the user that audio hardware is initializing. If the bubble is
- // hidden, |Show| must be called to make it appear on screen.
- virtual void SetWarmUpMode() = 0;
-
- // Indicates to the user that audio recording is in progress. If the bubble is
- // hidden, |Show| must be called to make it appear on screen.
- virtual void SetRecordingMode() = 0;
-
- // Indicates to the user that recognition is in progress. If the bubble is
- // hidden, |Show| must be called to make it appear on screen.
- virtual void SetRecognizingMode() = 0;
-
- // Displays the given string with the 'Try again' and 'Cancel' buttons. If the
- // bubble is hidden, |Show| must be called to make it appear on screen.
- virtual void SetMessage(const base::string16& text) = 0;
-
- // Brings up the bubble on screen.
- virtual void Show() = 0;
-
- // Hides the info bubble, resulting in a call to
- // |Delegate::InfoBubbleFocusChanged| as well.
- virtual void Hide() = 0;
-
- // Updates and draws the current captured audio volume displayed on screen.
- virtual void SetInputVolume(float volume, float noise_volume) = 0;
-
- // Returns the WebContents for which this bubble gets displayed.
- virtual content::WebContents* GetWebContents() = 0;
-
- // The horizontal distance between the start of the html widget and the speech
- // bubble's arrow.
- static const int kBubbleTargetOffsetX;
-
- private:
- static FactoryMethod factory_;
-};
-
-// Base class for the platform specific bubble implementations, this contains
-// the platform independent code for SpeechRecognitionBubble.
-class SpeechRecognitionBubbleBase : public SpeechRecognitionBubble {
- public:
- // The current display mode of the bubble, useful only for the platform
- // specific implementation.
- enum DisplayMode {
- DISPLAY_MODE_WARM_UP,
- DISPLAY_MODE_RECORDING,
- DISPLAY_MODE_RECOGNIZING,
- DISPLAY_MODE_MESSAGE
- };
-
- SpeechRecognitionBubbleBase(int render_process_id, int render_view_id);
- virtual ~SpeechRecognitionBubbleBase();
-
- // SpeechRecognitionBubble methods
- virtual void SetWarmUpMode() OVERRIDE;
- virtual void SetRecordingMode() OVERRIDE;
- virtual void SetRecognizingMode() OVERRIDE;
- virtual void SetMessage(const base::string16& text) OVERRIDE;
- virtual void SetInputVolume(float volume, float noise_volume) OVERRIDE;
- virtual content::WebContents* GetWebContents() OVERRIDE;
-
- protected:
- // Updates the platform specific UI layout for the current display mode.
- virtual void UpdateLayout() = 0;
-
- // Overridden by subclasses to copy |icon_image()| to the screen.
- virtual void UpdateImage() = 0;
-
- DisplayMode display_mode() const { return display_mode_; }
-
- const base::string16& message_text() const { return message_text_; }
-
- gfx::ImageSkia icon_image();
-
- private:
- void DoRecognizingAnimationStep();
- void DoWarmingUpAnimationStep();
- void SetImage(const gfx::ImageSkia& image);
-
- void DrawVolumeOverlay(SkCanvas* canvas,
- const gfx::ImageSkia& image_skia,
- float volume);
-
- // Task factory used for animation timer.
- base::WeakPtrFactory<SpeechRecognitionBubbleBase> weak_factory_;
- int animation_step_; // Current index/step of the animation.
-
- DisplayMode display_mode_;
- base::string16 message_text_; // Text displayed in DISPLAY_MODE_MESSAGE
-
- // The current microphone image with volume level indication.
- scoped_ptr<SkBitmap> mic_image_;
- // A temporary buffer image used in creating the above mic image.
- scoped_ptr<SkBitmap> buffer_image_;
-
- // Content in which this bubble gets displayed.
- int render_process_id_;
- int render_view_id_;
-
- // The current image displayed in the bubble's icon widget.
- gfx::ImageSkia icon_image_;
- // The scale factor used for the web-contents.
- float scale_;
-
- DISALLOW_COPY_AND_ASSIGN(SpeechRecognitionBubbleBase);
-};
-
-// This typedef is to workaround the issue with certain versions of
-// Visual Studio where it gets confused between multiple Delegate
-// classes and gives a C2500 error. (I saw this error on the try bots -
-// the workaround was not needed for my machine).
-typedef SpeechRecognitionBubble::Delegate SpeechRecognitionBubbleDelegate;
-
-#endif // CHROME_BROWSER_SPEECH_SPEECH_RECOGNITION_BUBBLE_H_

Powered by Google App Engine
This is Rietveld 408576698