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

Unified Diff: chrome/browser/ui/cocoa/speech_recognition_bubble_cocoa.mm

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/ui/cocoa/speech_recognition_bubble_cocoa.mm
diff --git a/chrome/browser/ui/cocoa/speech_recognition_bubble_cocoa.mm b/chrome/browser/ui/cocoa/speech_recognition_bubble_cocoa.mm
deleted file mode 100644
index 8c65daddea6e37f591e368d2591ed834797bb735..0000000000000000000000000000000000000000
--- a/chrome/browser/ui/cocoa/speech_recognition_bubble_cocoa.mm
+++ /dev/null
@@ -1,142 +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.
-
-#import <Cocoa/Cocoa.h>
-
-#include "chrome/browser/speech/speech_recognition_bubble.h"
-
-#import "base/mac/scoped_nsobject.h"
-#include "chrome/browser/ui/browser.h"
-#include "chrome/browser/ui/cocoa/browser_window_cocoa.h"
-#include "chrome/browser/ui/cocoa/browser_window_controller.h"
-#include "chrome/browser/ui/cocoa/location_bar/location_bar_view_mac.h"
-#import "chrome/browser/ui/cocoa/speech_recognition_window_controller.h"
-#include "content/public/browser/web_contents.h"
-#include "content/public/browser/web_contents_view.h"
-#include "ui/gfx/image/image_skia_util_mac.h"
-
-using content::WebContents;
-
-namespace {
-
-// A class to bridge between the speech recognition C++ code and the Objective-C
-// bubble implementation. See chrome/browser/speech/speech_recognition_bubble.h
-// for more information on how this gets used.
-class SpeechRecognitionBubbleImpl : public SpeechRecognitionBubbleBase {
- public:
- SpeechRecognitionBubbleImpl(int render_process_id,
- int render_view_id,
- Delegate* delegate,
- const gfx::Rect& element_rect);
- virtual ~SpeechRecognitionBubbleImpl();
- virtual void Show() OVERRIDE;
- virtual void Hide() OVERRIDE;
- virtual void UpdateLayout() OVERRIDE;
- virtual void UpdateImage() OVERRIDE;
-
- private:
- base::scoped_nsobject<SpeechRecognitionWindowController> window_;
- Delegate* delegate_;
- gfx::Rect element_rect_;
-};
-
-SpeechRecognitionBubbleImpl::SpeechRecognitionBubbleImpl(
- int render_process_id,
- int render_view_id,
- Delegate* delegate,
- const gfx::Rect& element_rect)
- : SpeechRecognitionBubbleBase(render_process_id, render_view_id),
- delegate_(delegate),
- element_rect_(element_rect) {
-}
-
-SpeechRecognitionBubbleImpl::~SpeechRecognitionBubbleImpl() {
- if (window_.get())
- [window_.get() close];
-}
-
-void SpeechRecognitionBubbleImpl::UpdateImage() {
- if (window_.get() && GetWebContents())
- [window_.get() setImage:gfx::NSImageFromImageSkia(icon_image())];
-}
-
-void SpeechRecognitionBubbleImpl::Show() {
- if (!GetWebContents())
- return;
-
- if (window_.get()) {
- [window_.get() show];
- return;
- }
-
- // Find the screen coordinates for the given tab and position the bubble's
- // arrow anchor point inside that to point at the bottom-left of the html
- // input element rect if the position is valid, otherwise point it towards
- // the page icon in the omnibox.
- gfx::NativeView view = GetWebContents()->GetView()->GetNativeView();
- NSWindow* parent_window = [view window];
- NSRect tab_bounds = [view bounds];
- int anchor_x = tab_bounds.origin.x + element_rect_.x() +
- element_rect_.width() - kBubbleTargetOffsetX;
- int anchor_y = tab_bounds.origin.y + tab_bounds.size.height -
- element_rect_.y() - element_rect_.height();
-
- NSPoint anchor = NSMakePoint(anchor_x, anchor_y);
- if (NSPointInRect(anchor, tab_bounds)) {
- // Good, convert to window coordinates.
- anchor = [view convertPoint:anchor toView:nil];
- } else {
- LocationBarViewMac* locationBar =
- [[parent_window windowController] locationBarBridge];
-
- if (locationBar) {
- anchor = locationBar->GetPageInfoBubblePoint();
- } else {
- // This is very rare, but possible. Just use the top-left corner.
- // See http://crbug.com/119237
- anchor = NSMakePoint(NSMinX(tab_bounds), NSMaxY(tab_bounds));
- anchor = [view convertPoint:anchor toView:nil];
- }
- }
-
- anchor = [parent_window convertBaseToScreen:anchor];
-
- window_.reset([[SpeechRecognitionWindowController alloc]
- initWithParentWindow:parent_window
- delegate:delegate_
- anchoredAt:anchor]);
-
- UpdateLayout();
- [window_.get() show];
-}
-
-void SpeechRecognitionBubbleImpl::Hide() {
- if (!window_.get())
- return;
-
- [window_.get() close];
- window_.reset();
-}
-
-void SpeechRecognitionBubbleImpl::UpdateLayout() {
- if (!window_.get() || !GetWebContents())
- return;
-
- [window_.get() updateLayout:display_mode()
- messageText:message_text()
- iconImage:gfx::NSImageFromImageSkia(icon_image())];
-}
-
-} // namespace
-
-SpeechRecognitionBubble* SpeechRecognitionBubble::CreateNativeBubble(
- int render_process_id,
- int render_view_id,
- Delegate* delegate,
- const gfx::Rect& element_rect) {
- return new SpeechRecognitionBubbleImpl(render_process_id,
- render_view_id,
- delegate,
- element_rect);
-}
« no previous file with comments | « chrome/browser/ui/browser_commands.cc ('k') | chrome/browser/ui/cocoa/speech_recognition_window_controller.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698