| Index: webkit/plugins/npapi/webplugin_delegate_impl.h
 | 
| ===================================================================
 | 
| --- webkit/plugins/npapi/webplugin_delegate_impl.h	(revision 103683)
 | 
| +++ webkit/plugins/npapi/webplugin_delegate_impl.h	(working copy)
 | 
| @@ -55,6 +55,10 @@
 | 
|  #endif  // NP_NO_QUICKDRAW
 | 
|  #endif  // OS_MACOSX
 | 
|  
 | 
| +#if defined(OS_WIN)
 | 
| +class WebPluginIMEWin;
 | 
| +#endif  // OS_WIN
 | 
| +
 | 
|  // An implementation of WebPluginDelegate that runs in the plugin process,
 | 
|  // proxied from the renderer by WebPluginDelegateProxy.
 | 
|  class WebPluginDelegateImpl : public WebPluginDelegate {
 | 
| @@ -79,6 +83,7 @@
 | 
|      PLUGIN_QUIRK_IGNORE_FIRST_SETWINDOW_CALL = 65536,  // Windows.
 | 
|      PLUGIN_QUIRK_REPARENT_IN_BROWSER = 131072,  // Windows
 | 
|      PLUGIN_QUIRK_PATCH_GETKEYSTATE = 262144,  // Windows
 | 
| +    PLUGIN_QUIRK_EMULATE_IME = 524288,  // Windows.
 | 
|    };
 | 
|  
 | 
|    static WebPluginDelegateImpl* Create(const FilePath& filename,
 | 
| @@ -142,6 +147,21 @@
 | 
|    // Informs the plugin that the view it is in has gained or lost focus.
 | 
|    void SetContentAreaHasFocus(bool has_focus);
 | 
|  
 | 
| +#if defined(OS_WIN)
 | 
| +  // Informs the plug-in that an IME has changed its status.
 | 
| +  void ImeCompositionUpdated(const string16& text,
 | 
| +                             const std::vector<int>& clauses,
 | 
| +                             const std::vector<int>& target,
 | 
| +                             int cursor_position);
 | 
| +
 | 
| +  // Informs the plugin that IME composition has completed./ If |text| is empty,
 | 
| +  // IME was cancelled.
 | 
| +  void ImeCompositionCompleted(const string16& text);
 | 
| +
 | 
| +  // Returns the IME status retrieved from a plug-in.
 | 
| +  bool GetIMEStatus(int* input_type, gfx::Rect* caret_rect);
 | 
| +#endif
 | 
| +
 | 
|  #if defined(OS_MACOSX)
 | 
|    // Informs the plugin that the geometry has changed, as with UpdateGeometry,
 | 
|    // but also includes the new buffer context for that new geometry.
 | 
| @@ -318,6 +338,10 @@
 | 
|    // Used to throttle WM_USER+1 messages in Flash.
 | 
|    uint32 last_message_;
 | 
|    bool is_calling_wndproc;
 | 
| +
 | 
| +  // An IME emulator used by a windowless plug-in to retrieve IME data through
 | 
| +  // IMM32 functions.
 | 
| +  scoped_ptr<WebPluginIMEWin> plugin_ime_;
 | 
|  #endif  // defined(OS_WIN)
 | 
|  
 | 
|  #if defined(USE_X11)
 | 
| @@ -389,6 +413,9 @@
 | 
|        HKEY key, DWORD index, LPWSTR name, LPDWORD name_size, LPDWORD reserved,
 | 
|        LPWSTR class_name, LPDWORD class_size, PFILETIME last_write_time);
 | 
|  
 | 
| +  // GetProcAddress intercepter for windowless plugins.
 | 
| +  static FARPROC WINAPI GetProcAddressPatch(HMODULE module, LPCSTR name);
 | 
| +
 | 
|    // The mouse hook proc which handles mouse capture in windowed plugins.
 | 
|    static LRESULT CALLBACK MouseHookProc(int code, WPARAM wParam,
 | 
|                                          LPARAM lParam);
 | 
| 
 |