#include "ScreenReader.h"
#endif
+#if ENABLE(TIZEN_WEBKIT2_TEXT_SELECTION)
+#include "EditorState.h"
+#endif
+
namespace CoreIPC {
class ArgumentDecoder;
class Connection;
#if ENABLE(TIZEN_ISF_PORT)
class NativeWebKeyboardEvent;
+
+enum {
+ KeyPressCommandSetComposition,
+ KeyPressCommandConfirmComposition,
+ KeyPressCommandDeleteText
+};
+
+struct KeyPressCommand {
+ KeyPressCommand(int type) : type(type) { }
+
+ int type;
+};
+
+struct SetCompositionKeyPressCommand : public KeyPressCommand {
+ SetCompositionKeyPressCommand(const String& compositionString, const Vector<WebCore::CompositionUnderline>& underlines, uint64_t cursorPosition)
+ : KeyPressCommand(KeyPressCommandSetComposition), compositionString(compositionString), underlines(underlines), cursorPosition(cursorPosition) { }
+
+ String compositionString;
+ Vector<WebCore::CompositionUnderline> underlines;
+ uint64_t cursorPosition;
+};
+
+struct ConfirmCompositionKeyPressCommand : public KeyPressCommand {
+ ConfirmCompositionKeyPressCommand(const String& compositionString)
+ : KeyPressCommand(KeyPressCommandConfirmComposition), compositionString(compositionString) { }
+
+ String compositionString;
+};
+
+struct DeleteTextKeyPressCommand : public KeyPressCommand {
+ DeleteTextKeyPressCommand(int offset, int count)
+ : KeyPressCommand(KeyPressCommandDeleteText), offset(offset), count(count) { }
+
+ int offset;
+ int count;
+};
#endif
class WebPage : public APIObject, public CoreIPC::MessageSender<WebPage> {
void centerSelectionInVisibleArea();
#if PLATFORM(EFL)
- void confirmComposition(const String& compositionString);
- void setComposition(const WTF::String& compositionString, const WTF::Vector<WebCore::CompositionUnderline>& underlines, uint64_t cursorPosition);
#if ENABLE(TIZEN_TEXT_CARET_HANDLING_WK2)
bool setCaretPosition(const WebCore::IntPoint&);
void getCaretPosition(WebCore::IntRect&);
#endif
#if ENABLE(TIZEN_ISF_PORT)
- void updateCursorOffset();
void didCancelComposition(WebCore::Node*);
+ void prepareKeyDownEvent();
+ void swapKeyPressCommands(Vector<OwnPtr<KeyPressCommand> >&);
+
void getCursorOffset(int&);
void getSurroundingTextAndCursorOffset(String&, int&);
void getSelectionRect(bool, WebCore::IntRect&);
void createPagesToPDF(const WebCore::IntSize&, const WebCore::IntSize&, const String&);
#endif
#if ENABLE(TIZEN_WEBKIT2_HIT_TEST)
+#if ENABLE(TOUCH_ADJUSTMENT)
+ void hitTestResultAtPoint(const WebCore::IntPoint&, int hitTestMode, const WebCore::IntSize&, WebHitTestResult::Data&);
+#else
void hitTestResultAtPoint(const WebCore::IntPoint&, int hitTestMode, WebHitTestResult::Data&);
#endif
+#endif
#if ENABLE(TIZEN_WEB_STORAGE)
void getStorageQuotaBytes(uint64_t callbackID);
void suspendJavaScriptAndResources();
void resumeJavaScriptAndResources();
+
+ void suspendAnimations();
+ void resumeAnimations();
+
#if ENABLE(TIZEN_SYNC_REQUEST_ANIMATION_FRAME)
void suspendAnimationController();
void resumeAnimationController();
void resumePlugin();
#endif
#endif
-#if ENABLE(TIZEN_WEBKIT2_REMOTE_WEB_INSPECTOR)
+#if ENABLE(TIZEN_REMOTE_WEB_INSPECTOR)
void startInspectorServer(uint32_t port, uint32_t& assignedPort);
void stopInspectorServer(bool& result);
#endif
// FIXME: We could genericize these into a DrawingArea client interface. Would that be beneficial?
void drawRect(WebCore::GraphicsContext&, const WebCore::IntRect&);
#if ENABLE(TIZEN_WEBKIT2_TEXT_SELECTION)
- void selectClosestWord(const WebCore::IntPoint&, bool isStartedTextSelectionFromOutside, bool& result);
- void setLeftSelection(const WebCore::IntPoint&, bool& result);
- void setRightSelection(const WebCore::IntPoint&, bool& result);
+ enum HandleMovingDirection {
+ HandleMovingDirectionNone = 0,
+ HandleMovingDirectionNormal,
+ HandleMovingDirectionReverse,
+ };
+ void selectClosestWord(const WebCore::IntPoint&, bool& result);
+ void setLeftSelection(const WebCore::IntPoint&, const int direction, int& result);
+ void setRightSelection(const WebCore::IntPoint&, const int direction, int& result);
void getSelectionHandlers(WebCore::IntRect& leftRect, WebCore::IntRect& rightRect);
void getSelectionText(String& result);
void selectionRangeClear(bool& result);
void selectionClearAllSelection(WebCore::Frame* frame);
+ void scrollContentByCharacter(const WebCore::IntPoint&, int direction, bool& result);
+ void scrollContentByLine(const WebCore::IntPoint&, int direction, bool& result);
#endif
#if ENABLE(TIZEN_OFFLINE_PAGE_SAVE)
void drawPageOverlay(WebCore::GraphicsContext&, const WebCore::IntRect&);
void layoutIfNeeded();
-#if ENABLE(TIZEN_RECORDING_SURFACE_SET)
- void recordingSurfaceSetEnableSet(bool enable);
- void recordingSurfaceSetEnableURL(const String&);
-
- bool recordingSurfaceEnabled() { return m_recordingSurfaceSetEnable; }
-
- void setRecordingSurfaceLoadStart(bool enable) { m_recordingSurfaceSetLoadStart = enable; }
- bool recordingSurfaceLoadStart() { return m_recordingSurfaceSetLoadStart; }
-
- void setRecordingSurfaceLoadFinish(bool enable) { m_recordingSurfaceSetLoadFinished = enable; }
- bool recordingSurfaceLoadFinish() { return m_recordingSurfaceSetLoadFinished; }
-#endif
// -- Called from WebCore clients.
#if PLATFORM(MAC)
WebOpenPanelResultListener* activeOpenPanelResultListener() const { return m_activeOpenPanelResultListener.get(); }
void setActiveOpenPanelResultListener(PassRefPtr<WebOpenPanelResultListener>);
+#if OS(TIZEN)
+ void cancelForOpenPanel();
+#endif
// -- Called from WebProcess.
void didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*);
PassRefPtr<Plugin> createPlugin(WebFrame*, WebCore::HTMLPlugInElement*, const Plugin::Parameters&);
EditorState editorState() const;
+#if ENABLE(TIZEN_WEBKIT2_TEXT_SELECTION)
+ void setEditorState(const EditorState& editorState) { m_editorState = editorState;}
+#endif
String renderTreeExternalRepresentation() const;
uint64_t renderTreeSize() const;
void gestureWillBegin(const WebCore::IntPoint&, bool& canBeginPanning);
void gestureDidScroll(const WebCore::IntSize&);
void gestureDidEnd();
-
+#elif PLATFORM(EFL)
+ void confirmComposition(const String& compositionString);
+ void setComposition(const WTF::String& compositionString, const WTF::Vector<WebCore::CompositionUnderline>& underlines, uint64_t cursorPosition);
+ void cancelComposition();
#elif PLATFORM(GTK)
void updateAccessibilityTree();
bool handleMousePressedEvent(const WebCore::PlatformMouseEvent&);
#if ENABLE(TIZEN_SUPPORT_WEBAPP_META_TAG)
void getWebAppCapable(uint64_t callbackID);
void getWebAppIconURL(uint64_t callbackID);
+ void getWebAppIconURLs(uint64_t callbackID);
#endif
void setMediaVolume(float);
WebCore::HTTPHeaderMap customHeaders();
#endif
-#if ENABLE(TIZEN_WEBKIT2_GET_TEXT_STYLE_FOR_SELECTION)
- void getTextStyleStateForSelection();
-#endif
-
#if PLATFORM(GTK) && USE(TEXTURE_MAPPER_GL)
uint64_t nativeWindowHandle() { return m_nativeWindowHandle; }
#endif
#endif
#if ENABLE(TIZEN_SCREEN_READER)
- void raiseTapEvent(const WebCore::IntPoint&, const WebCore::IntPoint&);
void moveScreenReaderFocus(bool, bool&);
void moveScreenReaderFocusByPoint(const WebCore::IntPoint&);
+ void clearScreenReaderFocus();
+ void raiseTapEvent(const WebCore::IntPoint&, const WebCore::IntPoint&, bool&);
+ void adjustScreenReaderFocusedObjectValue(bool);
void recalcScreenReaderFocusRect();
- void updateScreenReaderFocus(WebCore::Node*);
+ void updateScreenReaderFocus(WebCore::RenderObject*);
void clearScreenReader();
#endif
+#if ENABLE(TIZEN_SCREEN_READER) || ENABLE(TIZEN_FOCUS_UI) || ENABLE(TIZEN_WEBKIT2_TEXT_SELECTION)
+ WebCore::IntRect nodeRect(WebCore::Node*) const;
+#endif
+
+#if ENABLE(TIZEN_SCREEN_READER) || ENABLE(TIZEN_FOCUS_UI)
+ void didChangeFocusedRect(WebCore::Node*);
+#endif
+
#if ENABLE(TIZEN_WEBKIT2_POPUP_INTERNAL)
void notifyTransitionToCommitted(bool);
#endif
void setLocalStorageDirectory(const String& path);
#endif
+#if ENABLE(TIZEN_USE_SETTINGS_FONT)
+ void useSettingsFont();
+#endif
+
+#if OS(TIZEN)
+ void didChangeContents(const WebCore::IntRect&);
+#endif
+
+#if ENABLE(TIZEN_FOCUS_UI)
+ void setSpatialNavigationEnabled(bool);
+#endif
+
private:
WebPage(uint64_t pageID, const WebPageCreationParameters&);
void didRemoveEditCommand(uint64_t commandID);
void findString(const String&, uint32_t findOptions, uint32_t maxMatchCount);
+ void findStringMatches(const String&, uint32_t findOptions, uint32_t maxMatchCount);
+ void getImageForFindMatch(uint32_t matchIndex);
+ void selectFindMatch(uint32_t matchIndex);
void hideFindUI();
void countStringMatches(const String&, uint32_t findOptions, uint32_t maxMatchCount);
#if ENABLE(PAGE_VISIBILITY_API)
WebCore::PageVisibilityState m_visibilityState;
#endif
-#if ENABLE(TIZEN_RECORDING_SURFACE_SET)
- bool m_recordingSurfaceSetEnable;
- bool m_recordingSurfaceSetLoadStart;
- bool m_recordingSurfaceSetLoadFinished;
- bool m_recordingSurfaceSetSettings;
-#endif
#if ENABLE(TIZEN_SYNC_REQUEST_ANIMATION_FRAME)
bool m_suspendedAnimationController;
#endif
OwnPtr<ScreenReader> m_screenReader;
#endif
+#if ENABLE(TIZEN_SCREEN_READER) || ENABLE(TIZEN_FOCUS_UI)
+ WebCore::IntRect m_focusedRect;
+#endif
+
+#if ENABLE(TIZEN_WEBKIT2_TEXT_SELECTION)
+ EditorState m_editorState;
+#endif
+
#if ENABLE(TIZEN_ISF_PORT)
- bool m_isSettingComposition;
+ bool m_prepareKeyDownEvent;
+ Vector<OwnPtr<KeyPressCommand> > m_keyPressCommands;
#endif
};