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

Side by Side Diff: content/browser/renderer_host/render_widget_host_view_mac.h

Issue 2164483006: [MacViews] Implemented text context menu (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Added test suite for TextServicesContextMenu Created 3 years, 10 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 unified diff | Download patch
OLDNEW
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 #ifndef CONTENT_BROWSER_RENDERER_HOST_RENDER_WIDGET_HOST_VIEW_MAC_H_ 5 #ifndef CONTENT_BROWSER_RENDERER_HOST_RENDER_WIDGET_HOST_VIEW_MAC_H_
6 #define CONTENT_BROWSER_RENDERER_HOST_RENDER_WIDGET_HOST_VIEW_MAC_H_ 6 #define CONTENT_BROWSER_RENDERER_HOST_RENDER_WIDGET_HOST_VIEW_MAC_H_
7 7
8 #import <Cocoa/Cocoa.h> 8 #import <Cocoa/Cocoa.h>
9 #include <IOSurface/IOSurface.h> 9 #include <IOSurface/IOSurface.h>
10 #include <stddef.h> 10 #include <stddef.h>
(...skipping 249 matching lines...) Expand 10 before | Expand all | Expand 10 after
260 bool IsSurfaceAvailableForCopy() const override; 260 bool IsSurfaceAvailableForCopy() const override;
261 void Show() override; 261 void Show() override;
262 void Hide() override; 262 void Hide() override;
263 bool IsShowing() override; 263 bool IsShowing() override;
264 void WasUnOccluded() override; 264 void WasUnOccluded() override;
265 void WasOccluded() override; 265 void WasOccluded() override;
266 gfx::Rect GetViewBounds() const override; 266 gfx::Rect GetViewBounds() const override;
267 void SetShowingContextMenu(bool showing) override; 267 void SetShowingContextMenu(bool showing) override;
268 void SetActive(bool active) override; 268 void SetActive(bool active) override;
269 void ShowDefinitionForSelection() override; 269 void ShowDefinitionForSelection() override;
270 bool SupportsSpeech() const override;
271 void SpeakSelection() override; 270 void SpeakSelection() override;
272 bool IsSpeaking() const override;
273 void StopSpeaking() override;
274 void SetBackgroundColor(SkColor color) override; 271 void SetBackgroundColor(SkColor color) override;
275 void SetNeedsBeginFrames(bool needs_begin_frames) override; 272 void SetNeedsBeginFrames(bool needs_begin_frames) override;
276 273
277 // Implementation of RenderWidgetHostViewBase. 274 // Implementation of RenderWidgetHostViewBase.
278 void InitAsPopup(RenderWidgetHostView* parent_host_view, 275 void InitAsPopup(RenderWidgetHostView* parent_host_view,
279 const gfx::Rect& pos) override; 276 const gfx::Rect& pos) override;
280 void InitAsFullscreen(RenderWidgetHostView* reference_host_view) override; 277 void InitAsFullscreen(RenderWidgetHostView* reference_host_view) override;
281 void Focus() override; 278 void Focus() override;
282 void UpdateCursor(const WebCursor& cursor) override; 279 void UpdateCursor(const WebCursor& cursor) override;
283 void SetIsLoading(bool is_loading) override; 280 void SetIsLoading(bool is_loading) override;
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
367 void OnDisplayMetricsChanged(const display::Display& display, 364 void OnDisplayMetricsChanged(const display::Display& display,
368 uint32_t metrics) override; 365 uint32_t metrics) override;
369 366
370 // Forwards the mouse event to the renderer. 367 // Forwards the mouse event to the renderer.
371 void ForwardMouseEvent(const blink::WebMouseEvent& event); 368 void ForwardMouseEvent(const blink::WebMouseEvent& event);
372 369
373 void KillSelf(); 370 void KillSelf();
374 371
375 void SetTextInputActive(bool active); 372 void SetTextInputActive(bool active);
376 373
377 const std::string& selected_text() const { return selected_text_; } 374 const base::string16& selected_text() const { return selected_text_; }
378 const gfx::Range& composition_range() const { return composition_range_; } 375 const gfx::Range& composition_range() const { return composition_range_; }
379 const base::string16& selection_text() const { return selection_text_; } 376 const base::string16& selection_text() const { return selection_text_; }
380 size_t selection_text_offset() const { return selection_text_offset_; } 377 size_t selection_text_offset() const { return selection_text_offset_; }
381 378
382 // Returns true and stores first rectangle for character range if the 379 // Returns true and stores first rectangle for character range if the
383 // requested |range| is already cached, otherwise returns false. 380 // requested |range| is already cached, otherwise returns false.
384 // Exposed for testing. 381 // Exposed for testing.
385 CONTENT_EXPORT bool GetCachedFirstRectForCharacterRange( 382 CONTENT_EXPORT bool GetCachedFirstRectForCharacterRange(
386 NSRange range, NSRect* rect, NSRange* actual_range); 383 NSRange range, NSRect* rect, NSRange* actual_range);
387 384
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
478 friend class RenderWidgetHostViewMacTest; 475 friend class RenderWidgetHostViewMacTest;
479 476
480 // Returns whether this render view is a popup (autocomplete window). 477 // Returns whether this render view is a popup (autocomplete window).
481 bool IsPopup() const; 478 bool IsPopup() const;
482 479
483 // Shuts down the render_widget_host_. This is a separate function so we can 480 // Shuts down the render_widget_host_. This is a separate function so we can
484 // invoke it from the message loop. 481 // invoke it from the message loop.
485 void ShutdownHost(); 482 void ShutdownHost();
486 483
487 // IPC message handlers. 484 // IPC message handlers.
485 // TODO(spqchan): Change |text| to be the type string16.
Alexei Svitkine (slow) 2017/02/03 15:43:30 Nit: Still my previous comment of giving more cont
spqchan 2017/02/03 23:32:10 Done.
488 void OnGetRenderedTextCompleted(const std::string& text); 486 void OnGetRenderedTextCompleted(const std::string& text);
489 487
490 // Send updated vsync parameters to the top level display. 488 // Send updated vsync parameters to the top level display.
491 void UpdateDisplayVSyncParameters(); 489 void UpdateDisplayVSyncParameters();
492 490
493 // Dispatches a TTS session.
494 void SpeakText(const std::string& text);
495
496 // Get the focused view that should be used for retrieving the text selection. 491 // Get the focused view that should be used for retrieving the text selection.
497 RenderWidgetHostViewBase* GetFocusedViewForTextSelection(); 492 RenderWidgetHostViewBase* GetFocusedViewForTextSelection();
498 493
499 // Adds/Removes frame observer based on state. 494 // Adds/Removes frame observer based on state.
500 void UpdateNeedsBeginFramesInternal(); 495 void UpdateNeedsBeginFramesInternal();
501 496
502 // The associated view. This is weak and is inserted into the view hierarchy 497 // The associated view. This is weak and is inserted into the view hierarchy
503 // to own this RenderWidgetHostViewMac object. Set to nil at the start of the 498 // to own this RenderWidgetHostViewMac object. Set to nil at the start of the
504 // destructor. 499 // destructor.
505 RenderWidgetHostViewCocoa* cocoa_view_; 500 RenderWidgetHostViewCocoa* cocoa_view_;
506 501
507 // Indicates if the page is loading. 502 // Indicates if the page is loading.
508 bool is_loading_; 503 bool is_loading_;
509 504
510 // Whether it's allowed to pause waiting for a new frame. 505 // Whether it's allowed to pause waiting for a new frame.
511 bool allow_pause_for_resize_or_repaint_; 506 bool allow_pause_for_resize_or_repaint_;
512 507
513 // The last scroll offset of the view. 508 // The last scroll offset of the view.
514 gfx::Vector2dF last_scroll_offset_; 509 gfx::Vector2dF last_scroll_offset_;
515 510
516 // The text to be shown in the tooltip, supplied by the renderer. 511 // The text to be shown in the tooltip, supplied by the renderer.
517 base::string16 tooltip_text_; 512 base::string16 tooltip_text_;
518 513
519 // True when this view acts as a platform view hack for a 514 // True when this view acts as a platform view hack for a
520 // RenderWidgetHostViewGuest. 515 // RenderWidgetHostViewGuest.
521 bool is_guest_view_hack_; 516 bool is_guest_view_hack_;
522 517
523 // selected text on the renderer. 518 // selected text on the renderer.
tapted 2017/02/03 10:14:51 nit (while you're here) selected -> Selected
spqchan 2017/02/03 23:32:10 Done.
524 std::string selected_text_; 519 base::string16 selected_text_;
525 520
526 // The window used for popup widgets. 521 // The window used for popup widgets.
527 base::scoped_nsobject<NSWindow> popup_window_; 522 base::scoped_nsobject<NSWindow> popup_window_;
528 523
529 // The fullscreen window used for pepper flash. 524 // The fullscreen window used for pepper flash.
530 base::scoped_nsobject<NSWindow> pepper_fullscreen_window_; 525 base::scoped_nsobject<NSWindow> pepper_fullscreen_window_;
531 base::scoped_nsobject<FullscreenWindowManager> fullscreen_window_manager_; 526 base::scoped_nsobject<FullscreenWindowManager> fullscreen_window_manager_;
532 // Our parent host view, if this is fullscreen. NULL otherwise. 527 // Our parent host view, if this is fullscreen. NULL otherwise.
533 RenderWidgetHostViewMac* fullscreen_parent_host_view_; 528 RenderWidgetHostViewMac* fullscreen_parent_host_view_;
534 529
(...skipping 11 matching lines...) Expand all
546 541
547 // Whether a request for begin frames has been issued. 542 // Whether a request for begin frames has been issued.
548 bool needs_begin_frames_; 543 bool needs_begin_frames_;
549 544
550 // Whether a request to flush input has been issued. 545 // Whether a request to flush input has been issued.
551 bool needs_flush_input_; 546 bool needs_flush_input_;
552 547
553 // TODO(ekaramad): Remove the following locals and get the selection 548 // TODO(ekaramad): Remove the following locals and get the selection
554 // information directly from TextInputManager. 549 // information directly from TextInputManager.
555 // A buffer containing the text inside and around the current selection range. 550 // A buffer containing the text inside and around the current selection range.
556 base::string16 selection_text_; 551 base::string16 selection_text_;
tapted 2017/02/03 10:14:51 huh - this is new. A little confusing having |sele
spqchan 2017/02/03 23:32:10 Added a comment for it
557 552
558 // The offset of the text stored in |selection_text_| relative to the start of 553 // The offset of the text stored in |selection_text_| relative to the start of
559 // the web page. 554 // the web page.
560 size_t selection_text_offset_; 555 size_t selection_text_offset_;
561 556
562 // The current selection range relative to the start of the web page. 557 // The current selection range relative to the start of the web page.
563 gfx::Range selection_range_; 558 gfx::Range selection_range_;
564 559
565 // Factory used to safely scope delayed calls to ShutdownHost(). 560 // Factory used to safely scope delayed calls to ShutdownHost().
566 base::WeakPtrFactory<RenderWidgetHostViewMac> weak_factory_; 561 base::WeakPtrFactory<RenderWidgetHostViewMac> weak_factory_;
567 562
568 DISALLOW_COPY_AND_ASSIGN(RenderWidgetHostViewMac); 563 DISALLOW_COPY_AND_ASSIGN(RenderWidgetHostViewMac);
569 }; 564 };
570 565
571 } // namespace content 566 } // namespace content
572 567
573 #endif // CONTENT_BROWSER_RENDERER_HOST_RENDER_WIDGET_HOST_VIEW_MAC_H_ 568 #endif // CONTENT_BROWSER_RENDERER_HOST_RENDER_WIDGET_HOST_VIEW_MAC_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698