Chromium Code Reviews| Index: content/browser/renderer_host/text_input_client_mac.h |
| diff --git a/content/browser/renderer_host/text_input_client_mac.h b/content/browser/renderer_host/text_input_client_mac.h |
| index 53318f95cb5bb49efe6403fe3bb62a05cbce2538..fe738202f7d6e6ce89bfd3ccd4ffbb95f8ed4ef1 100644 |
| --- a/content/browser/renderer_host/text_input_client_mac.h |
| +++ b/content/browser/renderer_host/text_input_client_mac.h |
| @@ -7,6 +7,7 @@ |
| #import <Cocoa/Cocoa.h> |
| +#include "base/mac/scoped_block.h" |
| #include "base/mac/scoped_nsobject.h" |
| #include "base/synchronization/condition_variable.h" |
| #include "base/synchronization/lock.h" |
| @@ -32,6 +33,12 @@ class RenderWidgetHost; |
| // requires getting information from the renderer synchronously. Rather than |
| // using an actual sync IPC message, a normal async ViewMsg is used with a lock |
| // and condition (managed by this service). |
| +// |
| +// Mac OS 10.8 introduced -[NSResponder quickLookWithEvent:]. |
| +// We can use it to implement asynchronous dictionary lookup when the user |
| +// taps a word using three fingers. |
| +// But currently the "Look Up in Dictionary" context menu item still goes through |
|
Avi (use Gerrit)
2014/03/12 17:10:54
80 col
Andre
2014/03/12 17:17:51
Done.
|
| +// the above synchronous IPC. |
| class CONTENT_EXPORT TextInputClientMac { |
| public: |
| // Returns the singleton instance. |
| @@ -61,6 +68,18 @@ class CONTENT_EXPORT TextInputClientMac { |
| void SetFirstRectAndSignal(NSRect first_rect); |
| void SetSubstringAndSignal(NSAttributedString* string); |
| + // This async method is invoked from -quickLookWithEvent: (tap with 3 fingers). |
|
Avi (use Gerrit)
2014/03/12 17:10:54
80 col
Andre
2014/03/12 17:17:51
Done.
|
| + // The reply callback will be invoked from the IO thread, the caller is |
| + // responsible for bouncing to the main thread if necessary. |
| + // The callback parameters provide the attributed word under the point and |
| + // the lower left baseline point of the text. |
| + void GetStringAtPoint(RenderWidgetHost* rwh, |
| + gfx::Point point, |
| + void (^replyHandler)(NSAttributedString*, NSPoint)); |
| + // This is called on the IO thread when we get the renderer's reply for |
| + // GetStringAtPoint. |
| + void GetStringAtPointReply(NSAttributedString*, NSPoint); |
| + |
| private: |
| friend struct DefaultSingletonTraits<TextInputClientMac>; |
| TextInputClientMac(); |
| @@ -82,6 +101,8 @@ class CONTENT_EXPORT TextInputClientMac { |
| base::Lock lock_; |
| base::ConditionVariable condition_; |
| + base::mac::ScopedBlock<void(^)(NSAttributedString*, NSPoint)> replyHandler_; |
| + |
| DISALLOW_COPY_AND_ASSIGN(TextInputClientMac); |
| }; |