#include "ArgumentCodersTizen.h"
#endif
+#if ENABLE(TIZEN_SCREEN_READER)
+#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 getCursorOffsetPosition(int& offset);
- void getContentOfPosition(String& content);
- void deleteSurroundingPosition(bool& result);
+ void didCancelComposition(WebCore::Node*);
+
+ void prepareKeyDownEvent();
+ void swapKeyPressCommands(Vector<OwnPtr<KeyPressCommand> >&);
+
+ void getCursorOffset(int&);
+ void getSurroundingTextAndCursorOffset(String&, int&);
void getSelectionRect(bool, WebCore::IntRect&);
+ void deleteSurroundingText(int, int);
#endif
void scrollMainFrameBy(const WebCore::IntSize&);
void scrollMainFrameTo(const WebCore::IntPoint&);
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 startOfflinePageSave(String subresourceFolderName);
#endif
+
#if ENABLE(TIZEN_WEBKIT2_CONTEXT_MENU_TEXT_SELECTION_MODE)
void selectLink(WebCore::IntPoint positionForSelection, bool& result);
#endif
void drawPageOverlay(WebCore::GraphicsContext&, const WebCore::IntRect&);
void layoutIfNeeded();
-#if ENABLE(TIZEN_RECORDING_SURFACE_SET)
- void recordingSurfaceSetEnableSet(bool enable);
- void recordingSurfaceSetEnableURL(const String&);
-#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);
void setVisibilityState(int visibilityState, bool isInitialState);
#endif
-#if ENABLE(TIZEN_INPUT_TAG_EXTENSION)
+#if ENABLE(TIZEN_INPUT_TAG_EXTENSION) || ENABLE(TIZEN_WEBKIT2_FORM_DATABASE)
void setFocusedInputElementValue(const String& inputValue);
void getFocusedInputElementValue(String& inputValue);
#endif
WebCore::HTTPHeaderMap customHeaders();
#endif
-#if ENABLE(TIZEN_WEBKIT2_GET_TEXT_STYLE_FOR_SELECTION)
- void getTextStyleStateForSelection();
-#endif
-
-#if ENABLE(TIZEN_RECORDING_SURFACE_SET)
- bool m_recordingSurfaceSetEnable;
- bool m_recordingSurfaceSetLoadStart;
- bool m_recordingSurfaceSetLoadFinished;
- bool m_recordingSurfaceSetSettings;
-#endif
-
#if PLATFORM(GTK) && USE(TEXTURE_MAPPER_GL)
uint64_t nativeWindowHandle() { return m_nativeWindowHandle; }
#endif
void didChangeSelectedIndexForActivePopupMenuMultiple(Vector<int32_t>);
#endif
+#if ENABLE(TIZEN_LINK_MAGNIFIER)
+ void getLinkMagnifierRect(const WebCore::IntPoint&, const WebCore::IntSize&);
+#endif
+
+#if ENABLE(TIZEN_SCREEN_READER)
+ 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::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_WEBKIT2_POPUP_INTERNAL)
+ void notifyTransitionToCommitted(bool);
+#endif
+
+#if ENABLE(TIZEN_CSP)
+ void setContentSecurityPolicy(const String& policy, uint32_t headerType);
+#endif
+
+#if ENABLE(TIZEN_INDEXED_DATABASE)
+ void setIndexedDatabaseDirectory(const String& path);
+#endif
+
+#if ENABLE(TIZEN_WEB_STORAGE)
+ void setLocalStorageDirectory(const String& path);
+#endif
+
+#if ENABLE(TIZEN_USE_SETTINGS_FONT)
+ void useSettingsFont();
+#endif
+
+#if OS(TIZEN)
+ void didChangeContents(const WebCore::IntRect&);
+#endif
+
private:
WebPage(uint64_t pageID, const WebPageCreationParameters&);
void viewWillEndLiveResize();
void getContentsAsString(uint64_t callbackID);
+#if ENABLE(MHTML)
+ void getContentsAsMHTMLData(uint64_t callbackID, bool useBinaryEncoding);
+#endif
void getMainResourceDataOfFrame(uint64_t frameID, uint64_t callbackID);
void getResourceDataFromFrame(uint64_t frameID, const String& resourceURL, uint64_t callbackID);
void getRenderTreeExternalRepresentation(uint64_t callbackID);
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(TIZEN_SYNC_REQUEST_ANIMATION_FRAME)
bool m_suspendedAnimationController;
#endif
+
WebInspectorClient* m_inspectorClient;
+
+#if ENABLE(TIZEN_SCREEN_READER)
+ OwnPtr<ScreenReader> m_screenReader;
+#endif
+
+#if ENABLE(TIZEN_WEBKIT2_TEXT_SELECTION)
+ EditorState m_editorState;
+#endif
+
+#if ENABLE(TIZEN_ISF_PORT)
+ bool m_prepareKeyDownEvent;
+ Vector<OwnPtr<KeyPressCommand> > m_keyPressCommands;
+#endif
};
#if ENABLE(TIZEN_NATIVE_MEMORY_SNAPSHOT)