Create string tightly when retrive string from cbhm callback event
[framework/web/webkit-efl.git] / Source / WebKit2 / UIProcess / API / efl / PageClientImpl.h
1 /*
2  * Copyright (C) 2011 Samsung Electronics
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are met:
7  * 1. Redistributions of source code must retain the above copyright
8  *    notice, this list of conditions and the following disclaimer.
9  * 2. Redistributions in binary form must reproduce the above copyright
10  *    notice, this list of conditions and the following disclaimer in the
11  *    documentation and/or other materials provided with the distribution.
12  *
13  * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
14  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
15  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
17  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
18  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
19  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
20  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
21  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
22  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
23  * THE POSSIBILITY OF SUCH DAMAGE.
24  */
25
26 #ifndef PageClientImpl_h
27 #define PageClientImpl_h
28
29 #include "PageClient.h"
30 #include <Evas.h>
31
32 #if OS(TIZEN)
33 #include "WebEditCommandProxy.h"
34 #include <WebCore/ViewportArguments.h>
35
36 #if ENABLE(TIZEN_WEBKIT2_TILED_BACKING_STORE)
37 #if ENABLE(TIZEN_WEBKIT2_TILED_AC)
38 #include "DrawingAreaProxyImpl.h"
39 #include <WebCore/Color.h>
40 #endif
41 #endif
42 #if ENABLE(TIZEN_WEBKIT2_TEXT_SELECTION)
43 #include "TextSelection.h"
44 #endif
45 #if ENABLE(TIZEN_OFFLINE_PAGE_SAVE)
46 #include "OfflinePageSave.h"
47 #endif
48 #if ENABLE(TIZEN_DRAG_SUPPORT)
49 #include "Drag.h"
50 #endif
51 #if ENABLE(TIZEN_WEBKIT2_FORM_DATABASE)
52 #include "FormDataCandidate.h"
53 #endif
54 using std::numeric_limits;
55 #endif // #if OS(TIZEN)
56
57 class EwkViewImpl;
58
59 namespace WebKit {
60
61 #if ENABLE(TIZEN_WEBKIT2_TILED_SCROLLBAR)
62 class MainFrameScrollbarTizen;
63 #endif
64
65 #if ENABLE(TIZEN_WEBKIT2_TEXT_SELECTION)
66 class TextSelection;
67 #endif
68
69 #if ENABLE(TIZEN_WEBKIT2_CLIPBOARD_HELPER)
70 class ClipboardHelper;
71 #endif
72
73 #if ENABLE(TIZEN_DRAG_SUPPORT)
74 class Drag;
75 #endif
76
77 #if ENABLE(TIZEN_WEBKIT2_FORM_DATABASE)
78 class FormDataCandidate;
79 #endif
80
81 class PageClientImpl : public PageClient {
82 public:
83     static PassOwnPtr<PageClientImpl> create(EwkViewImpl* viewImpl)
84     {
85         return adoptPtr(new PageClientImpl(viewImpl));
86     }
87     virtual ~PageClientImpl();
88
89     EwkViewImpl* viewImpl() const;
90
91 #if OS(TIZEN)
92     struct ViewportConstraints {
93         ViewportConstraints()
94             : initialScale(1.0)
95             , minimumScale(1.0)
96             , maximumScale(1.0)
97             , userScalable(true)
98             , contentsDefinedInitialScale(false)
99             , layoutSize(WebCore::IntSize())
100         {
101         }
102         double initialScale;
103         double minimumScale;
104         double maximumScale;
105         bool userScalable;
106         bool contentsDefinedInitialScale;
107         WebCore::IntSize layoutSize;
108     };
109
110     bool userScalable() { return fabs(m_viewportConstraints.minimumScale - m_viewportConstraints.maximumScale) > numeric_limits<float>::epsilon(); }
111     ViewportConstraints viewportConstraints() { return m_viewportConstraints; }
112     ViewportConstraints computeViewportConstraints(const WebCore::ViewportAttributes&);
113     double adjustScaleWithViewport(double);
114 #if USE(TILED_BACKING_STORE) && ENABLE(TIZEN_WEBKIT2_TILED_BACKING_STORE)
115     TIZEN_VIRTUAL void updateViewportSize(const WebCore::IntSize&, const int);
116     TIZEN_VIRTUAL void updateVisibleContentRectSize(const WebCore::IntSize&);
117 #endif
118     void prepareRestoredVisibleContectRect();
119     void initializeVisibleContentRect();
120     double availableMinimumScale();
121     void fitViewportToContent();
122     bool wasViewportFitsToContent() { return m_viewportFitsToContent; }
123
124     void setFocusedNodeRect(const WebCore::IntRect&);
125     WebCore::IntRect focusedNodeRect() { return m_focusedNodeRect; };
126
127 #if ENABLE(TIZEN_WEBKIT2_FORM_DATABASE)
128     void textChangeInTextField(const String& name, const String& value);
129 #endif
130
131     void setViewFocused(bool focused) { m_viewFocused = focused; }
132     void setViewWindowActive(bool active) { m_viewWindowActive = active; }
133     void updateFormNavigation(int length, int offset);
134
135 #if ENABLE(TIZEN_WEBKIT2_TILED_BACKING_STORE)
136 #if ENABLE(TIZEN_WEBKIT2_TILED_AC)
137     DrawingAreaProxy* drawingArea() const;
138 #endif
139     float scaleFactor();
140     const WebCore::IntPoint scrollPosition();
141     WebCore::IntRect adjustVisibleContentRect(WebCore::IntRect, float);
142     void setVisibleContentRect(const WebCore::IntRect&, float newScale, const WebCore::FloatPoint& trajectory = WebCore::FloatPoint());
143     TIZEN_VIRTUAL void displayViewport();
144     TIZEN_VIRTUAL void drawContents();
145 #if ENABLE(TIZEN_RUNTIME_BACKEND_SELECTION)
146     virtual void drawContents(BackingStore::PlatformGraphicsContext);
147 #endif
148     void scaleImage(double, WebCore::IntPoint);
149     void scaleContents(double, const WebCore::IntPoint&);
150     WebCore::IntRect visibleContentRect() { return m_visibleContentRect; }
151
152 #if ENABLE(TIZEN_WEBKIT2_TILED_SCROLLBAR)
153     void updateScrollbar();
154     void frameRectChanged();
155     void updateVisibility();
156 #endif
157
158     // FIXME: The concept of suspending content comes from webkit opensource's PageViewportController,
159     // so below code should be replaced when PageViewportController codes are merged.
160     // Please do not use below codes. They are only for scaling contents.
161     void suspendContent();
162     void resumeContent();
163     WebCore::FloatPoint boundContentsPositionAtScale(const WebCore::FloatPoint&, float scale);
164 #else
165     float scaleFactor() { return page()->pageScaleFactor(); }
166     WebCore::IntPoint scrollPosition() { return page()->scrollPosition(); }
167 #endif // #if ENABLE(TIZEN_WEBKIT2_TILED_BACKING_STORE)
168
169 #if ENABLE(TIZEN_WEBKIT2_TEXT_SELECTION)
170     bool isTextSelectionDowned();
171     bool isTextSelectionMode();
172     void setIsTextSelectionMode(bool isTextSelectionMode);
173     void updateTextSelectionHandlesAndContextMenu(bool isShow, bool isScrolling = false);
174     bool textSelectionDown(const WebCore::IntPoint& point);
175     void textSelectionMove(const WebCore::IntPoint& point);
176     void textSelectionUp(const WebCore::IntPoint& point, bool isStartedTextSelectionFromOutside = false);
177     bool isTextSelectionHandleDowned();
178 #if ENABLE(TIZEN_WEBKIT2_FOR_MOVING_TEXT_SELECTION_HANDLE_FROM_OSP)
179     void textSelectonHandleDown(const WebCore::IntPoint& point);
180     void textSelectonHandleMove(const WebCore::IntPoint& point);
181     void textSelectonHandleUp();
182 #endif
183     void requestToShowTextSelectionHandlesAndContextMenu();
184     void initTextSelectionHandlesMouseDownedStatus();
185     void changeContextMenuPosition(WebCore::IntPoint& point);
186 #endif
187
188 #if ENABLE(TIZEN_OFFLINE_PAGE_SAVE)
189     void saveSerializedHTMLDataForMainPage(const String& serializedData, const String& fileName);
190     void saveSubresourcesData(Vector<WebSubresourceTizen>& subresourceData);
191     void startOfflinePageSave(String& path, String& url, String& title);
192 #endif
193
194 #if ENABLE(TIZEN_CLIPBOARD) || ENABLE(TIZEN_PASTEBOARD)
195     void setClipboardData(const String& data, const String& type);
196     void clearClipboardData();
197 #endif
198
199 #if ENABLE(TIZEN_WEBKIT2_CLIPBOARD_HELPER)
200     void pasteContextMenuSelected();
201 #endif
202
203
204 #if ENABLE(TIZEN_WEBKIT2_VIEW_VISIBILITY)
205     void setDeferUpdateViewportSize(bool b) { m_deferUpdateViewportSize = b; }
206     bool deferUpdateViewportSize() const { return m_deferUpdateViewportSize; }
207     bool isVisible() const { return m_isVisible; }
208     void setIsVisible(bool isVisible);
209 #endif
210
211 #if ENABLE(TIZEN_WEBKIT2_TILED_BACKING_STORE)
212     bool scrollBy(WebCore::IntSize);
213     void scrollTo(WebCore::IntPoint);
214 #endif
215
216     void setIsScrollableLayerFocused(const bool b) { m_isScrollableLayerFocused = b; }
217     bool isScrollableLayerFocused() const { return m_isScrollableLayerFocused; }
218
219     void setIsScrollableNodeFocused(const bool b) { m_isScrollableNodeFocused = b; }
220     bool isScrollableNodeFocused() const { return m_isScrollableNodeFocused; }
221
222 #if ENABLE(TIZEN_CSS_OVERFLOW_SCROLL_ACCELERATION)
223     void setOverflowResult(bool pressed, WebLayerID);
224     void findScrollableNode(const WebCore::IntPoint&);
225 #endif
226
227 #if ENABLE(TIZEN_CONTEXT_MENU_WEBKIT_2)
228     bool isContextMenuVisible() { return m_isContextMenuVisible; }
229     void setIsContextMenuVisible(bool isVisible) { m_isContextMenuVisible = isVisible; }
230 #endif
231     TIZEN_VIRTUAL void didRenderFrame();
232 #if ENABLE(TIZEN_WEBKIT2_TILED_AC)
233     void setBackgroundColor(double red, double green, double blue, double alpha);
234     TIZEN_VIRTUAL bool makeContextCurrent() { return true; }
235 #endif
236
237     virtual void didFindZoomableArea(const WebCore::IntPoint&, const WebCore::IntRect&);
238
239 #if ENABLE(TIZEN_ICON_DATABASE)
240     virtual void didReceiveIcon();
241 #endif
242
243 #if ENABLE(TIZEN_WEBKIT2_CONTEXT_MENU_CLIPBOARD)
244     void clipboardContextMenuSelected();
245     bool isClipboardWindowOpened();
246     void closeClipboardWindow();
247 #endif
248
249 #if ENABLE(TIZEN_DRAG_SUPPORT)
250     void setDragPoint(const WebCore::IntPoint& point);
251     bool isDragMode();
252     void setDragMode(bool isDragMode);
253 #endif
254
255 #if ENABLE(TIZEN_WEBKIT2_FOCUS_RING)
256     void hideFocusRing();
257 #endif
258
259 #if ENABLE(TIZEN_WEBKIT2_FORM_DATABASE)
260     bool isShowingFormDataCandidate();
261     void updateFormDataCandidate(const Vector<String>& data);
262     void hideFormDataCandidate();
263     void showFormDataCandidate(const WebCore::IntRect& rect);
264 #endif
265
266 #if ENABLE(TIZEN_PRERENDERING_FOR_ROTATION)
267     void setWaitFrameOfNewViewortSize(bool waitFrameOfNewViewortSize) { m_waitFrameOfNewViewortSize = waitFrameOfNewViewortSize; }
268 #endif
269
270     bool notifiedNonemptyLayout() { return m_nonemptyLayoutRendered; }
271 #endif // #if OS(TIZEN)
272
273 private:
274     // PageClient
275     virtual PassOwnPtr<DrawingAreaProxy> createDrawingAreaProxy();
276     virtual void setViewNeedsDisplay(const WebCore::IntRect&);
277     virtual void displayView();
278     virtual void scrollView(const WebCore::IntRect&, const WebCore::IntSize&);
279     virtual bool isViewWindowActive() { return m_viewWindowActive; }
280     virtual bool isViewFocused() { return m_viewFocused; }
281     virtual bool isViewVisible();
282     virtual bool isViewInWindow();
283
284     virtual void processDidCrash();
285     virtual void didRelaunchProcess();
286     virtual void pageClosed();
287
288     virtual void toolTipChanged(const String&, const String&);
289
290     virtual void setCursor(const WebCore::Cursor&);
291     virtual void setCursorHiddenUntilMouseMoves(bool);
292     virtual void didChangeViewportProperties(const WebCore::ViewportAttributes&);
293
294     virtual void registerEditCommand(PassRefPtr<WebEditCommandProxy>, WebPageProxy::UndoOrRedo);
295     virtual void clearAllEditCommands();
296     virtual bool canUndoRedo(WebPageProxy::UndoOrRedo);
297     virtual void executeUndoRedo(WebPageProxy::UndoOrRedo);
298     virtual WebCore::FloatRect convertToDeviceSpace(const WebCore::FloatRect&);
299     virtual WebCore::FloatRect convertToUserSpace(const WebCore::FloatRect&);
300     virtual WebCore::IntPoint screenToWindow(const WebCore::IntPoint&);
301     virtual WebCore::IntRect windowToScreen(const WebCore::IntRect&);
302
303     void updateTextInputState();
304     virtual void handleDownloadRequest(DownloadProxy*);
305
306     virtual void doneWithKeyEvent(const NativeWebKeyboardEvent&, bool);
307 #if ENABLE(GESTURE_EVENTS)
308     virtual void doneWithGestureEvent(const WebGestureEvent&, bool wasEventHandled);
309 #endif
310 #if ENABLE(TOUCH_EVENTS)
311     virtual void doneWithTouchEvent(const NativeWebTouchEvent&, bool wasEventHandled);
312 #endif
313
314     virtual PassRefPtr<WebPopupMenuProxy> createPopupMenuProxy(WebPageProxy*);
315     virtual PassRefPtr<WebContextMenuProxy> createContextMenuProxy(WebPageProxy*);
316
317 #if ENABLE(INPUT_TYPE_COLOR)
318     virtual PassRefPtr<WebColorChooserProxy> createColorChooserProxy(WebPageProxy*, const WebCore::Color& initialColor);
319 #endif
320
321     virtual void setFindIndicator(PassRefPtr<FindIndicator>, bool, bool);
322 #if ENABLE(TIZEN_WEBKIT2_TILED_AC)
323     TIZEN_VIRTUAL void initializeAcceleratedCompositingMode();
324     TIZEN_VIRTUAL void finalizeAcceleratedCompositingMode() {}
325     virtual void enterAcceleratedCompositingMode(const LayerTreeContext&) {}
326     virtual void exitAcceleratedCompositingMode() {}
327
328     virtual void updateAcceleratedCompositingMode(const LayerTreeContext&);
329 #endif
330
331     virtual void didChangeScrollbarsForMainFrame() const;
332
333 #if OS(TIZEN)
334 #if ENABLE(TIZEN_WEBKIT2_TILED_SCROLLBAR)
335     void createScrollbarIfNeeded(bool horizontalBar, bool verticalBar);
336 #endif
337
338     virtual void didFirstVisuallyNonEmptyLayoutForMainFrame();
339     virtual void didChangeContentsSize(const WebCore::IntSize);
340     virtual void pageScaleFactorDidChange();
341 #endif
342
343     virtual void didCommitLoadForMainFrame(bool);
344     virtual void didFinishLoadingDataForCustomRepresentation(const String&, const CoreIPC::DataReference&);
345     virtual double customRepresentationZoomFactor();
346     virtual void setCustomRepresentationZoomFactor(double);
347
348     virtual void flashBackingStoreUpdates(const Vector<WebCore::IntRect>&);
349     virtual void findStringInCustomRepresentation(const String&, FindOptions, unsigned);
350     virtual void countStringMatchesInCustomRepresentation(const String&, FindOptions, unsigned);
351
352 #if USE(TILED_BACKING_STORE)
353     virtual void pageDidRequestScroll(const WebCore::IntPoint&);
354 #endif
355
356 #if ENABLE(TIZEN_WEBKIT2_HISTORICAL_RESTORE_VISIBLE_CONTENT_RECT)
357     virtual void pageDidRequestRestoreVisibleContentRect(const WebCore::IntPoint&, float);
358 #endif
359
360 #if ENABLE(TIZEN_DRAG_SUPPORT)
361     virtual void startDrag(const WebCore::DragData&, PassRefPtr<ShareableBitmap> dragImage);
362 #endif
363
364 #if ENABLE(TIZEN_REGISTER_PROTOCOL_HANDLER)
365     virtual void registerProtocolHandler(const String& scheme, const String& baseURL, const String& url, const String& title);
366 #endif
367 #if ENABLE(TIZEN_CUSTOM_SCHEME_HANDLER)
368     virtual unsigned int isProtocolHandlerRegistered(const String& scheme, const String& baseURL, const String& url);
369     virtual void unregisterProtocolHandler(const String& scheme, const String& baseURL, const String& url);
370 #endif
371 #if ENABLE(TIZEN_REGISTER_CONTENT_HANDLER)
372     virtual void registerContentHandler(const String& mimeType, const String& baseURL, const String& url, const String& title);
373     virtual unsigned int isContentHandlerRegistered(const String& mimeType, const String& baseURL, const String& url);
374     virtual void unregisterContentHandler(const String& mimeType, const String& baseURL, const String& url);
375 #endif
376 #if ENABLE(TIZEN_SEARCH_PROVIDER)
377     virtual void addSearchProvider(const String& baseURL, const String& engineURL);
378     virtual unsigned long isSearchProviderInstalled(const String& baseURL, const String& engineURL);
379 #endif
380
381 #if ENABLE(TIZEN_SUPPORT_WEBAPP_META_TAG)
382     virtual bool getStandaloneStatus();
383 #endif
384
385 #if ENABLE(SCREEN_ORIENTATION_SUPPORT) && ENABLE(TIZEN_SCREEN_ORIENTATION_SUPPORT)
386     virtual bool lockOrientation(int willLockOrientation);
387     virtual void unlockOrientation();
388 #endif
389
390 protected:
391     explicit PageClientImpl(EwkViewImpl*);
392
393     virtual WebCore::IntSize viewSize();
394
395     EwkViewImpl* m_viewImpl;
396
397 #if OS(TIZEN)
398     ViewportConstraints m_viewportConstraints;
399
400     bool m_viewFocused;
401     bool m_viewWindowActive;
402
403     bool m_pageDidRendered;
404
405     // Both angle and wasMinimized are added to handle device rotation
406     int m_viewportAngle;
407     bool m_viewportFitsToContent;
408
409     WebCore::IntRect m_focusedNodeRect;
410
411 #if ENABLE(TIZEN_WEBKIT2_TILED_BACKING_STORE)
412     WebCore::IntRect m_visibleContentRect;
413     float m_scaleFactor;
414
415     // FIXME: The concept of suspending content comes from webkit opensource's PageViewportController,
416     // so below code should be replaced when PageViewportController codes are merged.
417     // Please do not use below codes. They are only for scaling contents.
418     bool m_hasSuspendedContent;
419 #endif // ENABLE(TIZEN_WEBKIT2_TILED_BACKING_STORE)
420
421 #if ENABLE(TIZEN_WEBKIT2_HISTORICAL_RESTORE_VISIBLE_CONTENT_RECT)
422     WebCore::IntPoint m_restoredScrollPosition;
423     float m_restoredScaleFactor;
424 #endif
425 #if ENABLE(TIZEN_WEBKIT2_BEFORE_PAGE_RENDERED_SCROLL_POSITION)
426     WebCore::IntPoint m_scrollPositionBeforePageRendered;
427 #endif
428
429 #if ENABLE(TIZEN_WEBKIT2_TILED_SCROLLBAR)
430     RefPtr<MainFrameScrollbarTizen> m_horizontalScrollbar;
431     RefPtr<MainFrameScrollbarTizen> m_verticalScrollbar;
432 #endif
433 #if ENABLE(TIZEN_WEBKIT2_TEXT_SELECTION)
434     OwnPtr<TextSelection> m_textSelection;
435 #endif
436 #if ENABLE(TIZEN_OFFLINE_PAGE_SAVE)
437     OwnPtr<OfflinePageSave> m_offlinePageSave;
438 #endif
439 #if ENABLE(TIZEN_WEBKIT2_CLIPBOARD_HELPER)
440     OwnPtr<ClipboardHelper> m_clipboardHelper;
441 #endif
442 #if ENABLE(TIZEN_DRAG_SUPPORT)
443     OwnPtr<Drag> m_drag;
444 #endif
445 #if ENABLE(TIZEN_WEBKIT2_FORM_DATABASE)
446     OwnPtr<FormDataCandidate> m_formDataCandidate;
447 #endif
448     bool m_suspendPainting;
449     bool m_suspendResource;
450     bool m_suspendRequested;
451     bool m_isVisible;
452     bool m_deferUpdateViewportSize;
453
454     bool m_isScrollableLayerFocused;
455     bool m_isScrollableNodeFocused;
456
457 #if ENABLE(TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE_BACKUP_IMAGE)
458     bool m_shouldMakeBackupTexture;
459     bool m_shouldShowBackupTexture;
460     WebCore::IntRect m_initialViewRect;
461 #endif
462
463 #if ENABLE(TIZEN_CONTEXT_MENU_WEBKIT_2)
464     bool m_isContextMenuVisible;
465 #endif
466
467     WebCore::Color m_bgColor;
468
469     Vector<RefPtr<WebKit::WebEditCommandProxy> > m_undoCommands;
470     Vector<RefPtr<WebKit::WebEditCommandProxy> > m_redoCommands;
471
472 #if ENABLE(TIZEN_PRERENDERING_FOR_ROTATION)
473     bool m_waitFrameOfNewViewortSize;
474 #endif
475
476     bool m_nonemptyLayoutRendered;
477 #endif // #if OS(TIZEN)
478 };
479
480
481 #if ENABLE(TIZEN_WEBKIT2_TILED_AC) && ENABLE(TIZEN_RUNTIME_BACKEND_SELECTION)
482 class PageClientEvasGL : public PageClientImpl {
483 public:
484     static PassOwnPtr<PageClientEvasGL> create(EwkViewImpl* viewImpl)
485     {
486         return adoptPtr(new PageClientEvasGL(viewImpl));
487     }
488     ~PageClientEvasGL();
489
490     virtual void updateViewportSize(const WebCore::IntSize&, const int);
491     virtual void updateVisibleContentRectSize(const WebCore::IntSize&);
492     virtual void setViewNeedsDisplay(const WebCore::IntRect&);
493     virtual void displayViewport();
494     virtual void drawContents();
495     virtual void didRenderFrame();
496     virtual bool makeContextCurrent();
497
498 private:
499     explicit PageClientEvasGL(EwkViewImpl* viewImpl);
500
501     virtual void initializeAcceleratedCompositingMode();
502     virtual void finalizeAcceleratedCompositingMode();
503     virtual void enterAcceleratedCompositingMode(const LayerTreeContext&);
504     virtual void exitAcceleratedCompositingMode();
505
506     void setTargetSurface();
507
508 #if ENABLE(TIZEN_WEBKIT2_DIRECT_RENDERING)
509     bool isDirectRendering() { return (m_config->options_bits == EVAS_GL_OPTIONS_DIRECT); }
510 #endif
511
512     Evas_GL* m_evasGL;
513     Evas_GL_API* m_evasGlApi;
514     Evas_GL_Context* m_context;
515     Evas_GL_Surface* m_surface;
516     Evas_GL_Config* m_config;
517 #if ENABLE(TIZEN_WEBKIT2_DIRECT_RENDERING)
518     int m_angle;
519 #endif
520
521     bool m_isAcceleratedCompositingModeInitialized;
522 };
523 #endif
524
525 } // namespace WebKit
526
527 #endif // PageClientImpl_h