Merge "[CherryPick] [WEBGL] Rename WEBKIT_WEBGL_lose_context to WEBGL_lose_context...
authorHeejin Chung <heejin.r.chung@samsung.com>
Tue, 25 Jun 2013 02:01:09 +0000 (02:01 +0000)
committerGerrit Code Review <gerrit@gerrit.vlan144.tizendev.org>
Tue, 25 Jun 2013 02:01:09 +0000 (02:01 +0000)
42 files changed:
Source/WTF/wtf/Platform.h
Source/WebCore/css/CSSPropertyNames.in
Source/WebCore/page/ContextMenuController.cpp
Source/WebKit2/Shared/EditorState.cpp
Source/WebKit2/Shared/EditorState.h
Source/WebKit2/UIProcess/API/C/WKPage.h
Source/WebKit2/UIProcess/API/efl/PageClientImpl.cpp
Source/WebKit2/UIProcess/API/efl/PageClientImpl.h
Source/WebKit2/UIProcess/API/efl/ewk_text_style.cpp
Source/WebKit2/UIProcess/API/efl/ewk_text_style.h
Source/WebKit2/UIProcess/API/efl/ewk_view.cpp
Source/WebKit2/UIProcess/API/efl/ewk_view.h
Source/WebKit2/UIProcess/API/efl/ewk_view_private.h
Source/WebKit2/UIProcess/API/efl/tizen/OpenPanel.cpp
Source/WebKit2/UIProcess/API/efl/tizen/TextSelection.cpp
Source/WebKit2/UIProcess/API/efl/tizen/TextSelection.h
Source/WebKit2/UIProcess/API/efl/tizen/TextSelectionHandle.cpp
Source/WebKit2/UIProcess/API/efl/tizen/TextSelectionHandle.h
Source/WebKit2/UIProcess/PageClient.h
Source/WebKit2/UIProcess/WebPageProxy.cpp
Source/WebKit2/UIProcess/WebPageProxy.h
Source/WebKit2/UIProcess/WebPageProxy.messages.in
Source/WebKit2/UIProcess/WebProcessProxy.cpp
Source/WebKit2/UIProcess/WebUIClient.cpp
Source/WebKit2/UIProcess/WebUIClient.h
Source/WebKit2/UIProcess/efl/InputMethodContextEfl.cpp
Source/WebKit2/UIProcess/efl/InputMethodContextEfl.h
Source/WebKit2/UIProcess/efl/PageUIClientEfl.cpp
Source/WebKit2/UIProcess/efl/PageUIClientEfl.h
Source/WebKit2/UIProcess/efl/WebContextEfl.cpp
Source/WebKit2/UIProcess/efl/WebPageProxyEfl.cpp
Source/WebKit2/UIProcess/tizen/WebContextMenuProxyTizen.cpp
Source/WebKit2/WebProcess/WebCoreSupport/WebEditorClient.cpp
Source/WebKit2/WebProcess/WebPage/DrawingAreaImpl.cpp
Source/WebKit2/WebProcess/WebPage/WebPage.cpp
Source/WebKit2/WebProcess/WebPage/WebPage.h
Source/WebKit2/WebProcess/WebPage/WebPage.messages.in
Source/WebKit2/WebProcess/WebPage/efl/WebPageEfl.cpp
Source/cmake/OptionsTizen.cmake
Tools/Scripts/webkitpy/layout_tests/port/webkit.py
Tools/Scripts/webkitpy/layout_tests/port/webkit_unittest.py
packaging/webkit2-efl.spec

index dd07c10..fc04505 100755 (executable)
 #define ENABLE_TIZEN_CHECK_DID_PERFORM_FIRST_NAVIGATION 1 /* Sungman Kim(ssungmai.kim@samsung.com) : To skip sendSync message from WebProcess to UIProcess, doesn't use itemAtIndex() on BackForwardController */
 #define ENABLE_TIZEN_CSS_FILTER_OPTIMIZATION 1 /* Hurnjoo Lee(hurnjoo.lee@samsung.com : Optimize performance of css filters */
 
+#define ENABLE_TIZEN_BACKGROUND_DISK_CACHE 1 /* Byeongha.cho(byeongha.cho@samsung.com), Sungman Kim(ssungmai.kim@samsung.com) : Cache encoded image data to disk on background state. */
+
 #if ENABLE(NOTIFICATIONS)
 #define ENABLE_TIZEN_NOTIFICATIONS 1 /* Kihong Kwon(kihong.kwon@samsung.com) : Temp patch for notification score in the html5test.com */
 #endif
 #define ENABLE_TIZEN_INFLATE_NONE_BLUR_SHADOW_AREA 1 /*KyungTae Kim(ktf.kim@samsung.com) : Enlarge the clipping area 1 pixel so that the fill does not bleed (due to antialiasing) if the context is transformed*/
 #define ENABLE_TIZEN_NOT_INITIAIZE_BACKGROUND_SIZE_IN_SHORTHAND_WORKAROUND 1 /*KyungTae Kim(ktf.kim@samsung.com) : Do not initialize background-size when the background shorthand doesn't include it(Bug 97761)*/
 #define ENABLE_TIZEN_SET_CARET_HEIGHT_TO_OBJECT_HEIGHT 1 /*KyungTae Kim(ktf.kim@samsung.com) : Set caret height from selection height to object height for fix the case that image and text are in the same line (Bug 116424)*/
-#define ENABLE_TIZEN_POSITIONED_CHILD_RELAYOUT 1 /*KyungTae Kim(ktf.kim@samsung.com) : If posChildNeedsLayout() but !m_positionedObjects, normal layout is needed for updating m_positionedObjects*/
+#define ENABLE_TIZEN_POSITIONED_CHILD_RELAYOUT 0 /*KyungTae Kim(ktf.kim@samsung.com) : If posChildNeedsLayout() but !m_positionedObjects, normal layout is needed for updating m_positionedObjects*/
 #if USE(FREETYPE)
 #define ENABLE_TIZEN_FT_EMBOLDEN_FOR_SYNTHETIC_BOLD 1 /*Younghwan Cho(yhwan.cho@samsung.com) : Use freetype's 'embolden' instead of drawing twice for synthetic bold*/
 #endif
@@ -628,6 +630,7 @@ com) : Patch to do not adjust cover rect as fixed pixel size*/
 #define ENABLE_TIZEN_WEBKIT2_THEME_SET_INTERNAL 1 /* Ryuan Choi(ryuan.choi@samsung.com) : Set to default theme for WK2/tizen */
 #define ENABLE_TIZEN_WEBKIT2_PROXY 1 /* Ryuan Choi(ryuan.choi@samsung.com) : Provide API to set proxy */
 #define ENABLE_TIZEN_WEBKIT2_POPUP_INTERNAL 1 /* Ryuan Choi(ryuan.choi@samsung.com) : popup implementation for WK2/tizen internal */
+#define ENABLE_TIZEN_WEBKIT2_NOTIFY_POPUP_REPLY_STATUS 1 /* Byungwoo Lee(bw80.lee@samsung.com) : Notify popup reply status through the smart callback */
 #define ENABLE_TIZEN_SCREEN_ORIENTATION_SUPPORT_INTERNAL ENABLE_TIZEN_SCREEN_ORIENTATION_SUPPORT /* Ryuan choi9ryuan.choi@samsung.com) : temporal implementation for screen orientation lock callback */
 
 #define ENABLE_TIZEN_WEBKIT2_FOCUS_RING 1 /* Yuni Jeong(yhnet.jung@samsung.com) : Focus ring implementation for WK2 */
@@ -670,6 +673,7 @@ com) : Patch to do not adjust cover rect as fixed pixel size*/
 
 #if ENABLE(TIZEN_WEBKIT2_TILED_BACKING_STORE)
 #define ENABLE_TIZEN_WEBKIT2_HISTORICAL_RESTORE_VISIBLE_CONTENT_RECT 1 /* Changhyup Jwa(ch.jwa@samsung.com) : Restore visible content rect on going back and forward */
+#define ENABLE_TIZEN_WEBKIT2_BEFORE_PAGE_RENDERED_SCROLL_POSITION 1 /*Santosh Mahto(santosh.ma@samsung.com) : save and restore  the scrollpostion before page is not rendered fully. */
 #endif
 #define ENABLE_TIZEN_WEBKIT2_MEMORY_SAVING_MODE 1 /*Eunsol Park(eunsol47.park@samsung.com) : Used for lower memory usage profiling*/
 #define ENABLE_TIZEN_WEBKIT2_CONTEXT_X_WINDOW 1 /* Changhyup Jwa(ch.jwa@samsung.com) : WebProcess cannot access to evas, so it needs to obtain window id to get window's orientation. Default root window has sync issue. */
index 612c3cc..47d6d9d 100644 (file)
@@ -410,15 +410,6 @@ z-index
 -webkit-overflow-scrolling
 #endif
 #if defined(ENABLE_TIZEN_CSS_ALIASES) && ENABLE_TIZEN_CSS_ALIASES
-animation = -webkit-animation
-animation-delay = -webkit-animation-delay
-animation-direction = -webkit-animation-direction
-animation-duration = -webkit-animation-duration
-animation-fill-mode = -webkit-animation-fill-mode
-animation-iteration-count = -webkit-animation-iteration-count
-animation-name = -webkit-animation-name
-animation-play-state = -webkit-animation-play-state
-animation-timing-function = -webkit-animation-timing-function
 backface-visibility = -webkit-backface-visibility
 perspective = -webkit-perspective
 perspective-origin = -webkit-perspective-origin
index bd3fc4f..983c1cd 100755 (executable)
 #include "HTMLInputElement.h"
 #endif
 
+#if ENABLE(TIZEN_CONTEXT_MENU_WEBKIT_2)
+#include "visible_units.h"
+#include "htmlediting.h"
+#endif
+
 using namespace WTF;
 using namespace Unicode;
 
@@ -1130,22 +1135,23 @@ void ContextMenuController::populate()
 #if ENABLE(TIZEN_CONTEXT_MENU_WEBKIT_2)
         if (frame->selection()) {
             Node* baseNode = frame->selection()->base().containerNode();
-            if (baseNode && baseNode->isTextNode() && (!(baseNode->textContent().isEmpty()))) {
-                if (inPasswordField) {
-                    if (!m_hitTestResult.isSelected())
-                        appendItem(SelectWordItem, m_contextMenu.get());
-                } else {
-#endif
-#if PLATFORM(GTK) || PLATFORM(QT) || PLATFORM(EFL)
+            if (inPasswordField) {
+                if (baseNode && baseNode->isTextNode() && !(baseNode->textContent().isEmpty()) && !m_hitTestResult.isSelected())
+                    appendItem(SelectWordItem, m_contextMenu.get());
+            } else {
+                VisiblePosition currentPosition = frame->selection()->selection().visibleStart();
+                VisiblePosition startPosition = startOfEditableContent(currentPosition);
+                VisiblePosition endPosition = endOfEditableContent(currentPosition);
+                if (comparePositions(startPosition, endPosition))
                     appendItem(SelectAllItem, m_contextMenu.get());
-#endif
-#if ENABLE(TIZEN_CONTEXT_MENU_SELECT)
+                if (baseNode && baseNode->isTextNode() && !(baseNode->textContent().isEmpty()))
                     appendItem(SelectWordItem, m_contextMenu.get());
-#endif
-#if ENABLE(TIZEN_CONTEXT_MENU_WEBKIT_2)
-                }
             }
         }
+#else
+#if PLATFORM(GTK) || PLATFORM(QT) || PLATFORM(EFL)
+        appendItem(SelectAllItem, m_contextMenu.get());
+#endif
 #endif
 
         if (!inPasswordField) {
index 504e92e..d9ab33d 100755 (executable)
@@ -42,6 +42,7 @@ void EditorState::encode(CoreIPC::ArgumentEncoder* encoder) const
     encoder->encode(hasComposition);
 
 #if ENABLE(TIZEN_ISF_PORT)
+    encoder->encode(isTapEventHandling);
     encoder->encode(inputMethodContextID);
     encoder->encode(inputMethodHints);
     encoder->encode(surroundingText);
@@ -52,8 +53,12 @@ void EditorState::encode(CoreIPC::ArgumentEncoder* encoder) const
     encoder->encode(editorRect);
     encoder->encode(updateEditorRectOnly);
 #if ENABLE(TIZEN_WEBKIT2_GET_TEXT_STYLE_FOR_SELECTION)
+    encoder->encode(underlineState);
+    encoder->encode(italicState);
+    encoder->encode(boldState);
     encoder->encode(bgColor);
     encoder->encode(color);
+    encoder->encode(fontSize);
 #endif
 #endif
 
@@ -93,6 +98,9 @@ bool EditorState::decode(CoreIPC::ArgumentDecoder* decoder, EditorState& result)
         return false;
 
 #if ENABLE(TIZEN_ISF_PORT)
+    if (!decoder->decode(result.isTapEventHandling))
+        return false;
+
     if (!decoder->decode(result.inputMethodContextID))
         return false;
 
@@ -114,11 +122,23 @@ bool EditorState::decode(CoreIPC::ArgumentDecoder* decoder, EditorState& result)
         return false;
 
 #if ENABLE(TIZEN_WEBKIT2_GET_TEXT_STYLE_FOR_SELECTION)
+    if (!decoder->decode(result.underlineState))
+        return false;
+
+    if (!decoder->decode(result.italicState))
+        return false;
+
+    if (!decoder->decode(result.boldState))
+        return false;
+
     if (!decoder->decode(result.bgColor))
         return false;
 
     if (!decoder->decode(result.color))
         return false;
+
+    if (!decoder->decode(result.fontSize))
+        return false;
 #endif
 #endif
 
index 389e897..2ea188d 100755 (executable)
@@ -43,11 +43,15 @@ struct EditorState {
         , isInPasswordField(false)
         , hasComposition(false)
 #if ENABLE(TIZEN_ISF_PORT)
+        , isTapEventHandling(false)
         , inputMethodContextID(0)
         , cursorPosition(0)
 #endif
 #if ENABLE(TIZEN_WEBKIT2_TEXT_SELECTION)
         , updateEditorRectOnly(false)
+        , underlineState(0)
+        , italicState(0)
+        , boldState(0)
 #endif
 #if PLATFORM(QT)
         , cursorPosition(0)
@@ -66,6 +70,7 @@ struct EditorState {
     bool isInPasswordField;
     bool hasComposition;
 #if ENABLE(TIZEN_ISF_PORT)
+    bool isTapEventHandling;
     uintptr_t inputMethodContextID;
     WTF::String inputMethodHints;
     WTF::String surroundingText;
@@ -75,8 +80,12 @@ struct EditorState {
     WebCore::IntRect editorRect;
     bool updateEditorRectOnly;
 #if ENABLE(TIZEN_WEBKIT2_GET_TEXT_STYLE_FOR_SELECTION)
+    int underlineState;
+    int italicState;
+    int boldState;
     WTF::String bgColor;
     WTF::String color;
+    WTF::String fontSize;
 #endif
 #endif
 #if PLATFORM(QT)
index f97cd44..6b8a999 100755 (executable)
@@ -210,6 +210,9 @@ typedef uint32_t WKPluginUnavailabilityReason;
 // UI Client
 typedef WKPageRef (*WKPageCreateNewPageCallback)(WKPageRef page, WKURLRequestRef urlRequest, WKDictionaryRef features, WKEventModifiers modifiers, WKEventMouseButton mouseButton, const void *clientInfo);
 //#if OS(TIZEN)
+//#if ENABLE(TIZEN_WEBKIT2_NOTIFY_POPUP_REPLY_STATUS)
+typedef void (*WKPageNotifyPopupReplyWaitingStateCallback)(WKPageRef page, bool isWaiting, const void* clientInfo);
+//#endif
 typedef bool (*WKPageRunJavaScriptAlertCallback)(WKPageRef page, WKStringRef alertText, WKFrameRef frame, const void* clientInfo);
 typedef bool (*WKPageRunJavaScriptConfirmCallback)(WKPageRef page, WKStringRef message, WKFrameRef frame, const void* clientInfo);
 typedef bool (*WKPageRunJavaScriptPromptCallback)(WKPageRef page, WKStringRef message, WKStringRef defaultValue, WKFrameRef frame, const void* clientInfo);
@@ -317,11 +320,14 @@ struct WKPageUIClient {
     WKPageDecidePolicyForNotificationPermissionRequestCallback          decidePolicyForNotificationPermissionRequest;
     WKPageUnavailablePluginButtonClickedCallback                        unavailablePluginButtonClicked;
 
-//#if ENABLE(TIZEN_INPUT_COLOR_PICKER) // wait for upstream
     // Version 2
+//#if ENABLE(TIZEN_INPUT_COLOR_PICKER) // wait for upstream
     WKPageShowColorPickerCallback                                       showColorPicker;
     WKPageHideColorPickerCallback                                       hideColorPicker;
 //#endif
+//#if ENABLE(TIZEN_WEBKIT2_NOTIFY_POPUP_REPLY_STATUS)
+    WKPageNotifyPopupReplyWaitingStateCallback                          notifyPopupReplyWaitingState;
+//#endif
 };
 typedef struct WKPageUIClient WKPageUIClient;
 
index 7f54413..faadbdb 100755 (executable)
@@ -100,6 +100,9 @@ PageClientImpl::PageClientImpl(EwkViewImpl* viewImpl)
 #if ENABLE(TIZEN_WEBKIT2_HISTORICAL_RESTORE_VISIBLE_CONTENT_RECT)
     , m_restoredScaleFactor(0)
 #endif
+#if ENABLE(TIZEN_WEBKIT2_BEFORE_PAGE_RENDERED_SCROLL_POSITION)
+    , m_scrollPositionBeforePageRendered(IntPoint())
+#endif
     , m_isVisible(true)
     , m_isScrollableLayerFocused(false)
     , m_isScrollableNodeFocused(false)
@@ -186,14 +189,30 @@ double PageClientImpl::adjustScaleWithViewport(double scale)
 #if USE(TILED_BACKING_STORE) && ENABLE(TIZEN_WEBKIT2_TILED_BACKING_STORE)
 void PageClientImpl::updateViewportSize(const IntSize& viewportSize, const int angle)
 {
+#if ENABLE(TIZEN_DLOG_SUPPORT)
+    TIZEN_LOGI(" view size: [%d, %d], angle: [%d]", viewportSize.width(), viewportSize.height(), angle);
+#endif
+
     // update viewport size of webkit
-    m_visibleContentRect.setSize(viewportSize);
-    m_visibleContentRect = adjustVisibleContentRect(m_visibleContentRect, m_scaleFactor);
-    m_viewImpl->setScrollPosition(m_visibleContentRect.location());
     m_viewImpl->page()->setViewportSize(viewportSize);
 }
+
+void PageClientImpl::updateVisibleContentRectSize(const IntSize& size)
+{
+    // update visible content rect's size
+    m_visibleContentRect.setSize(size);
+}
 #endif
 
+void PageClientImpl::prepareRestoredVisibleContectRect()
+{
+    m_restoredScaleFactor = scaleFactor();
+    m_restoredScrollPosition = scrollPosition();
+#if ENABLE(TIZEN_DLOG_SUPPORT)
+    TIZEN_LOGI("scroll position: [%d, %d], scale factor: [%.2f]", m_restoredScrollPosition.x(), m_restoredScrollPosition.y(), m_restoredScaleFactor);
+#endif
+}
+
 void PageClientImpl::initializeVisibleContentRect()
 {
     _ewk_view_resume_painting(m_viewImpl->view());
@@ -201,6 +220,10 @@ void PageClientImpl::initializeVisibleContentRect()
 #if ENABLE(TIZEN_WEBKIT2_TILED_BACKING_STORE)
     IntPoint initialScrollPosition;
     float initialScaleFactor = m_viewportConstraints.initialScale;
+#if ENABLE(TIZEN_WEBKIT2_BEFORE_PAGE_RENDERED_SCROLL_POSITION)
+    initialScrollPosition = m_scrollPositionBeforePageRendered;
+    m_scrollPositionBeforePageRendered = IntPoint();
+#endif
 #if ENABLE(TIZEN_WEBKIT2_HISTORICAL_RESTORE_VISIBLE_CONTENT_RECT)
     // if scroll position and scale factor are restored by history controller,
     // move scroll position and scale factor with them
@@ -208,6 +231,12 @@ void PageClientImpl::initializeVisibleContentRect()
         initialScrollPosition = m_restoredScrollPosition;
         initialScaleFactor = m_restoredScaleFactor;
     }
+#if ENABLE(TIZEN_WEBKIT2_HISTORICAL_RESTORE_VISIBLE_CONTENT_RECT)
+    m_restoredScaleFactor = 0;
+#endif
+#if ENABLE(TIZEN_DLOG_SUPPORT)
+    TIZEN_LOGI("scroll position: [%d, %d], scale factor: [%.2f]", initialScrollPosition.x(), initialScrollPosition.y(), initialScaleFactor);
+#endif
 #endif
     setVisibleContentRect(IntRect(initialScrollPosition, m_visibleContentRect.size()), initialScaleFactor);
 #else
@@ -233,6 +262,9 @@ double PageClientImpl::availableMinimumScale()
 
 void PageClientImpl::fitViewportToContent()
 {
+#if ENABLE(TIZEN_DLOG_SUPPORT)
+    TIZEN_LOGI("scroll position: [%d, %d], scale factor: [%.2f]", m_visibleContentRect.x(), m_visibleContentRect.y(), m_viewportConstraints.minimumScale);
+#endif
     setVisibleContentRect(m_visibleContentRect, m_viewportConstraints.minimumScale);
 }
 
@@ -383,6 +415,13 @@ void PageClientImpl::didChangeViewportProperties(const WebCore::ViewportAttribut
         m_viewportConstraints.minimumScale = availableMinimumScale();
     }
 
+#if ENABLE(TIZEN_DLOG_SUPPORT)
+    TIZEN_LOGI("layout size: [%d, %d], scale: [%.2f, %.2f, %.2f], user scalable: [%s]",
+        m_viewportConstraints.layoutSize.width(), m_viewportConstraints.layoutSize.height(),
+        m_viewportConstraints.initialScale, m_viewportConstraints.minimumScale, m_viewportConstraints.maximumScale,
+        m_viewportConstraints.userScalable ? "TRUE" : "FALSE");
+#endif
+
     // setVisibleContentRect() should be called to adjust visible content rect only when view is resized
     if (!m_pageDidRendered || m_viewImpl->page()->estimatedProgress() <= 0.1)
         return;
@@ -408,6 +447,9 @@ void PageClientImpl::didChangeViewportProperties(const WebCore::ViewportAttribut
     if (m_waitFrameOfNewViewortSize)
         ewk_view_resume(m_viewImpl->view());
 #endif
+#if ENABLE(TIZEN_DLOG_SUPPORT)
+    TIZEN_LOGI("scroll position: [%d, %d], scale factor: [%.2f], rotated: [%s]", m_visibleContentRect.x(), m_visibleContentRect.y(), newScale, isRotated ? "Rotated" : "Not rotated");
+#endif
 
 #if ENABLE(TIZEN_WEBKIT2_TILED_BACKING_STORE)
     setVisibleContentRect(IntRect(newScrollPosition, m_visibleContentRect.size()), newScale);
@@ -629,6 +671,9 @@ void PageClientImpl::didFirstVisuallyNonEmptyLayoutForMainFrame()
 
 void PageClientImpl::didChangeContentsSize(const WebCore::IntSize size)
 {
+#if ENABLE(TIZEN_DLOG_SUPPORT)
+    TIZEN_LOGI(" [%d, %d]", size.width(), size.height());
+#endif
 #if USE(TILED_BACKING_STORE)
     if (size.isEmpty())
         return;
@@ -660,8 +705,12 @@ void PageClientImpl::didChangeContentsSize(const WebCore::IntSize size)
     // adjust visible content rect
     bool needScrollAdjustment = (adjustVisibleContentRect(m_visibleContentRect, scaleFactor()) != m_visibleContentRect);
     bool needScaleAdjustment = (fabs(adjustScaleWithViewport(scaleFactor()) - scaleFactor()) > numeric_limits<float>::epsilon());
-    if (needScrollAdjustment || needScaleAdjustment)
+    if (needScrollAdjustment || needScaleAdjustment) {
+#if ENABLE(TIZEN_DLOG_SUPPORT)
+        TIZEN_LOGI(" setVisibleContentRect: [%d, %d], [%.2f]", m_visibleContentRect.x(), m_visibleContentRect.y(), scaleFactor());
+#endif
         setVisibleContentRect(m_visibleContentRect, scaleFactor());
+    }
 }
 
 void PageClientImpl::pageScaleFactorDidChange()
@@ -675,9 +724,6 @@ void PageClientImpl::didCommitLoadForMainFrame(bool)
 #if OS(TIZEN)
     m_pageDidRendered = false;
     m_viewportFitsToContent = false;
-#if ENABLE(TIZEN_WEBKIT2_HISTORICAL_RESTORE_VISIBLE_CONTENT_RECT)
-    m_restoredScaleFactor = 0;
-#endif
     return;
 #endif
     notImplemented();
@@ -744,8 +790,15 @@ void PageClientImpl::pageDidRequestScroll(const IntPoint& point)
 #if ENABLE(TIZEN_WEBKIT2_TILED_BACKING_STORE)
     IntPoint newPoint = point;
     newPoint.scale(scaleFactor(), scaleFactor());
+#if ENABLE(TIZEN_WEBKIT2_BEFORE_PAGE_RENDERED_SCROLL_POSITION)
+    if (!m_pageDidRendered)
+        m_scrollPositionBeforePageRendered = newPoint;
+    else
+        setVisibleContentRect(IntRect(newPoint, m_visibleContentRect.size()), scaleFactor());
+#else
     setVisibleContentRect(IntRect(newPoint, m_visibleContentRect.size()), scaleFactor());
 #endif
+#endif
 }
 #endif
 
@@ -756,6 +809,9 @@ void PageClientImpl::pageDidRequestRestoreVisibleContentRect(const IntPoint& poi
     m_restoredScrollPosition = point;
     m_restoredScrollPosition.scale(scale, scale);
     m_restoredScaleFactor = scale;
+#if ENABLE(TIZEN_DLOG_SUPPORT)
+    TIZEN_LOGI("scroll position: [%d, %d], scale factor: [%.2f]", m_restoredScrollPosition.x(), m_restoredScrollPosition.y(), m_restoredScaleFactor);
+#endif
 
     // Before contents size is fixed, just update visible content rect's position
     m_visibleContentRect.setLocation(m_restoredScrollPosition);
@@ -952,6 +1008,10 @@ void PageClientImpl::resumeContent()
     if (!m_hasSuspendedContent)
         return;
 
+#if ENABLE(TIZEN_DLOG_SUPPORT)
+    TIZEN_LOGI("scroll position: [%d, %d], scale factor: [%.2f]", m_viewImpl->scrollPosition().x(), m_viewImpl->scrollPosition().y(), m_viewImpl->scaleFactor());
+#endif
+
     // FIXME: Update visibleContentRect with m_viewImpl after resuming content.
     // The concept is that the values of EwkViewImpl and PageClient can be different
     // during suspending content and they become same when content is resumed.
@@ -1117,6 +1177,11 @@ void PageClientImpl::initTextSelectionHandlesMouseDownedStatus()
 {
     m_textSelection->initHandlesMouseDownedStatus();
 }
+
+void PageClientImpl::changeContextMenuPosition(IntPoint& point)
+{
+    m_textSelection->changeContextMenuPosition(point);
+}
 #endif
 
 #if ENABLE(TIZEN_OFFLINE_PAGE_SAVE)
@@ -1372,47 +1437,6 @@ void PageClientImpl::findScrollableNode(const IntPoint& point)
 }
 #endif
 
-#if ENABLE(TIZEN_WEBKIT2_GET_TEXT_STYLE_FOR_SELECTION)
-void PageClientImpl::didGetTextStyleStateForSelection(int underlineState, int italicState, int boldState)
-{
-    WebCore::IntPoint startPoint, endPoint;
-    WebCore::IntRect leftRect, rightRect;
-
-    WebCore::IntRect caretRect;
-    m_viewImpl->page()->getCaretPosition(caretRect);
-    if (!caretRect.isEmpty()) {
-        startPoint.setX(caretRect.x());
-        startPoint.setY(caretRect.y() + caretRect.height());
-
-        endPoint.setX(caretRect.x() + caretRect.width());
-        endPoint.setY(caretRect.y() + caretRect.height());
-    }
-#if ENABLE(TIZEN_WEBKIT2_TEXT_SELECTION)
-    else if (m_viewImpl->page()->getSelectionHandlers(leftRect, rightRect)) {
-        startPoint.setX(leftRect.x());
-        startPoint.setY(leftRect.y() + leftRect.height());
-
-        endPoint.setX(rightRect.x() + rightRect.width());
-        endPoint.setY(rightRect.y() + rightRect.height());
-    }
-#endif
-
-    startPoint.scale(scaleFactor(), scaleFactor());
-    endPoint.scale(scaleFactor(), scaleFactor());
-
-    int viewPositionX, viewPositionY;
-    evas_object_geometry_get(m_viewImpl->view(), &viewPositionX, &viewPositionY, NULL, NULL);
-
-    startPoint.move(-scrollPosition().x(),  -scrollPosition().y());
-    startPoint.move(viewPositionX, viewPositionY);
-
-    endPoint.move(-scrollPosition().x(),  -scrollPosition().y());
-    endPoint.move(viewPositionX, viewPositionY);
-
-    ewkViewDidGetTextStyleStateForSelection(m_viewImpl->view(), underlineState, italicState, boldState, startPoint, endPoint);
-}
-#endif
-
 void PageClientImpl::didFindZoomableArea(const IntPoint& target, const IntRect& area)
 {
     ewk_view_zoomable_area_set(m_viewImpl->view(), target, area);
@@ -1458,13 +1482,18 @@ PageClientEvasGL::~PageClientEvasGL()
 
 void PageClientEvasGL::updateViewportSize(const WebCore::IntSize& viewportSize, const int angle)
 {
+    PageClientImpl::updateViewportSize(viewportSize, angle);
+}
+
+void PageClientEvasGL::updateVisibleContentRectSize(const WebCore::IntSize& size)
+{
     if (m_surface) {
         evas_gl_surface_destroy(m_evasGL, m_surface);
         m_surface = 0;
     }
     setTargetSurface();
 
-    PageClientImpl::updateViewportSize(viewportSize, angle);
+    PageClientImpl::updateVisibleContentRectSize(size);
 }
 
 void PageClientEvasGL::setViewNeedsDisplay(const WebCore::IntRect& rect)
index a248428..20f8866 100755 (executable)
@@ -51,6 +51,7 @@
 #if ENABLE(TIZEN_WEBKIT2_FORM_DATABASE)
 #include "FormDataCandidate.h"
 #endif
+using std::numeric_limits;
 #endif // #if OS(TIZEN)
 
 class EwkViewImpl;
@@ -106,12 +107,15 @@ public:
         WebCore::IntSize layoutSize;
     };
 
+    bool userScalable() { return fabs(m_viewportConstraints.minimumScale - m_viewportConstraints.maximumScale) > numeric_limits<float>::epsilon(); }
     ViewportConstraints viewportConstraints() { return m_viewportConstraints; }
     ViewportConstraints computeViewportConstraints(const WebCore::ViewportAttributes&);
     double adjustScaleWithViewport(double);
 #if USE(TILED_BACKING_STORE) && ENABLE(TIZEN_WEBKIT2_TILED_BACKING_STORE)
     TIZEN_VIRTUAL void updateViewportSize(const WebCore::IntSize&, const int);
+    TIZEN_VIRTUAL void updateVisibleContentRectSize(const WebCore::IntSize&);
 #endif
+    void prepareRestoredVisibleContectRect();
     void initializeVisibleContentRect();
     double availableMinimumScale();
     void fitViewportToContent();
@@ -178,7 +182,7 @@ public:
 #endif
     void requestToShowTextSelectionHandlesAndContextMenu();
     void initTextSelectionHandlesMouseDownedStatus();
-
+    void changeContextMenuPosition(WebCore::IntPoint& point);
 #endif
 
 #if ENABLE(TIZEN_OFFLINE_PAGE_SAVE)
@@ -226,9 +230,6 @@ public:
     void setBackgroundColor(double red, double green, double blue, double alpha);
     TIZEN_VIRTUAL bool makeContextCurrent() { return true; }
 #endif
-#if ENABLE(TIZEN_WEBKIT2_GET_TEXT_STYLE_FOR_SELECTION)
-    void didGetTextStyleStateForSelection(int underlineState, int italicState, int boldState);
-#endif
 
     virtual void didFindZoomableArea(const WebCore::IntPoint&, const WebCore::IntRect&);
 
@@ -417,6 +418,9 @@ protected:
     WebCore::IntPoint m_restoredScrollPosition;
     float m_restoredScaleFactor;
 #endif
+#if ENABLE(TIZEN_WEBKIT2_BEFORE_PAGE_RENDERED_SCROLL_POSITION)
+    WebCore::IntPoint m_scrollPositionBeforePageRendered;
+#endif
 
 #if ENABLE(TIZEN_WEBKIT2_TILED_SCROLLBAR)
     RefPtr<MainFrameScrollbarTizen> m_horizontalScrollbar;
@@ -478,6 +482,7 @@ public:
     ~PageClientEvasGL();
 
     virtual void updateViewportSize(const WebCore::IntSize&, const int);
+    virtual void updateVisibleContentRectSize(const WebCore::IntSize&);
     virtual void setViewNeedsDisplay(const WebCore::IntRect&);
     virtual void displayViewport();
     virtual void drawContents();
index 04b50e9..91fade1 100644 (file)
@@ -45,16 +45,19 @@ struct _Ewk_Text_Style {
         int b;
         int a;
     } color;
+
+    const char* fontSize;
+    Eina_Bool hasComposition;
 };
 
 #if ENABLE(TIZEN_WEBKIT2_GET_TEXT_STYLE_FOR_SELECTION)
-Ewk_Text_Style* ewkTextStyleCreate(int underlineState, int italicState, int boldState, const WebCore::IntPoint& startPoint, const WebCore::IntPoint& endPoint, const String& bgColor, const String& color)
+Ewk_Text_Style* ewkTextStyleCreate(const EditorState editorState, const WebCore::IntPoint& startPoint, const WebCore::IntPoint& endPoint)
 {
     Ewk_Text_Style* textStyle = new Ewk_Text_Style;
 
-    textStyle->underlineState = static_cast<Ewk_Text_Style_State>(underlineState);
-    textStyle->italicState = static_cast<Ewk_Text_Style_State>(italicState);
-    textStyle->boldState = static_cast<Ewk_Text_Style_State>(boldState);
+    textStyle->underlineState = static_cast<Ewk_Text_Style_State>(editorState.underlineState);
+    textStyle->italicState = static_cast<Ewk_Text_Style_State>(editorState.italicState);
+    textStyle->boldState = static_cast<Ewk_Text_Style_State>(editorState.boldState);
 
     textStyle->position.startPoint.x = startPoint.x();
     textStyle->position.startPoint.y = startPoint.y();
@@ -63,38 +66,41 @@ Ewk_Text_Style* ewkTextStyleCreate(int underlineState, int italicState, int bold
 
     // for example - rgba(255, 255, 255, 255)
     // for example - rgb(255, 255, 255)
-    if (equalIgnoringCase(bgColor.left(3), "rgb")) {
-        size_t startPos = bgColor.find("(");
-        size_t endPos = bgColor.find(")");
+    if (equalIgnoringCase(editorState.bgColor.left(3), "rgb")) {
+        size_t startPos = editorState.bgColor.find("(");
+        size_t endPos = editorState.bgColor.find(")");
 
-        String value = bgColor.substring(startPos + 1, endPos - startPos - 1);
+        String value = editorState.bgColor.substring(startPos + 1, endPos - startPos - 1);
         Vector<String> colorValues;
         value.split(",", colorValues);
         textStyle->bgColor.r = colorValues[0].toInt();
         textStyle->bgColor.g = colorValues[1].toInt();
         textStyle->bgColor.b = colorValues[2].toInt();
-        if (equalIgnoringCase(bgColor.left(4), "rgba"))
+        if (equalIgnoringCase(editorState.bgColor.left(4), "rgba"))
             textStyle->bgColor.a = colorValues[3].toInt();
         else
             textStyle->bgColor.a = 255;
     }
 
-    if (equalIgnoringCase(color.left(3), "rgb")) {
-        size_t startPos = color.find("(");
-        size_t endPos = color.find(")");
+    if (equalIgnoringCase(editorState.color.left(3), "rgb")) {
+        size_t startPos = editorState.color.find("(");
+        size_t endPos = editorState.color.find(")");
 
-        String value = color.substring(startPos + 1, endPos - startPos - 1);
+        String value = editorState.color.substring(startPos + 1, endPos - startPos - 1);
         Vector<String> colorValues;
         value.split(",", colorValues);
         textStyle->color.r = colorValues[0].toInt();
         textStyle->color.g = colorValues[1].toInt();
         textStyle->color.b = colorValues[2].toInt();
-        if (equalIgnoringCase(color.left(4), "rgba"))
+        if (equalIgnoringCase(editorState.color.left(4), "rgba"))
             textStyle->color.a = colorValues[3].toInt();
         else
             textStyle->color.a = 255;
     }
 
+    textStyle->fontSize = eina_stringshare_add(editorState.fontSize.utf8().data());
+    textStyle->hasComposition = editorState.hasComposition;
+
     return textStyle;
 }
 
@@ -102,6 +108,9 @@ void ewkTextStyleDelete(Ewk_Text_Style* textStyle)
 {
     EINA_SAFETY_ON_NULL_RETURN(textStyle);
 
+    if (textStyle->fontSize)
+        eina_stringshare_del(textStyle->fontSize);
+
     delete textStyle;
 }
 #endif
@@ -195,3 +204,15 @@ Eina_Bool ewk_text_style_color_get(Ewk_Text_Style* textStyle, int* r, int* g, in
     return false;
 #endif
 }
+
+const char* ewk_text_style_font_size_get(Ewk_Text_Style* textStyle)
+{
+    EINA_SAFETY_ON_NULL_RETURN_VAL(textStyle, 0);
+    return textStyle->fontSize;
+}
+
+Eina_Bool ewk_text_style_has_composition_get(Ewk_Text_Style* textStyle)
+{
+    EINA_SAFETY_ON_NULL_RETURN_VAL(textStyle, false);
+    return textStyle->hasComposition;
+}
index 3846418..2fefdab 100644 (file)
@@ -41,6 +41,8 @@ EAPI Ewk_Text_Style_State ewk_text_style_bold_get(Ewk_Text_Style* text_style);
 EAPI Eina_Bool ewk_text_style_position_get(Ewk_Text_Style* text_style, Evas_Point* start_point, Evas_Point* end_point);
 EAPI Eina_Bool ewk_text_style_bg_color_get(Ewk_Text_Style* textStyle, int* r, int* g, int* b, int* a);
 EAPI Eina_Bool ewk_text_style_color_get(Ewk_Text_Style* textStyle, int* r, int* g, int* b, int* a);
+EAPI const char* ewk_text_style_font_size_get(Ewk_Text_Style* textStyle);
+EAPI Eina_Bool ewk_text_style_has_composition_get(Ewk_Text_Style* textStyle);
 
 #ifdef __cplusplus
 }
index 891e639..85223e2 100644 (file)
@@ -889,6 +889,8 @@ static void _ewk_view_smart_resize(Evas_Object* ewkView, Evas_Coord width, Evas_
 #if ENABLE(TIZEN_WEBKIT2_TILED_AC)
     evas_object_image_native_surface_set(smartData->image, 0);
 
+    Ecore_Evas* ee = ecore_evas_ecore_evas_get(smartData->base.evas);
+    impl->pageClient->updateViewportSize(IntSize(width, height), ecore_evas_rotation_get(ee));
 #if ENABLE(TIZEN_RUNTIME_BACKEND_SELECTION)
     if (!ewk_view_is_opengl_backend(ewkView))
         _ewk_view_composite(smartData);
@@ -958,7 +960,9 @@ static void _ewk_view_smart_calculate(Evas_Object* ewkView)
 #endif
 #if ENABLE(TIZEN_WEBKIT2_TILED_BACKING_STORE) && !ENABLE(TIZEN_WEBKIT2_EFL_WTR)
                 Ecore_Evas* ee = ecore_evas_ecore_evas_get(smartData->base.evas);
-                impl->pageClient->updateViewportSize(IntSize(width, height), ecore_evas_rotation_get(ee));
+                impl->pageClient->updateVisibleContentRectSize(IntSize(width, height));
+                if (ewk_view_is_opengl_backend(ewkView))
+                    impl->pageClient->displayViewport();
 #endif
             }
 #if ENABLE(TIZEN_WEBKIT2_TILED_SCROLLBAR)
@@ -1397,6 +1401,7 @@ Eina_Bool ewk_view_reload(Evas_Object* ewkView)
     EWK_VIEW_SD_GET_OR_RETURN(ewkView, smartData, false);
     EWK_VIEW_IMPL_GET_OR_RETURN(smartData, impl, false);
 
+    impl->pageClient->prepareRestoredVisibleContectRect();
     impl->pageProxy->reload(/*reloadFromOrigin*/ false);
     impl->informURLChange();
 
@@ -2509,8 +2514,8 @@ bool ewk_view_focused_node_adjust(Evas_Object* ewkView, Eina_Bool adjustForExter
 
     IntRect visibleRect = impl->pageClient->visibleContentRect();
     IntPoint scrollPosition = visibleRect.location();
-    // Do not adjust scroll position if selection rect (caret) is visible after scaling.
-    if (!visibleRect.contains(selectionRect)) {
+    // Do not adjust scroll position if content is userscalable or selection rect (caret) is visible after scaling
+    if (impl->pageClient->userScalable() || !visibleRect.contains(selectionRect)) {
         // set paddings
         scrollPosition = IntPoint(selectionRect.x() - visibleRect.width() / 3, selectionRect.y() - visibleRect.height() / 3);
         // If both input field's position x and selection rect can be displayed together,
@@ -2519,6 +2524,10 @@ bool ewk_view_focused_node_adjust(Evas_Object* ewkView, Eina_Bool adjustForExter
             scrollPosition.setX(focusedNodeRect.x());
     }
 
+#if ENABLE(TIZEN_DLOG_SUPPORT)
+    TIZEN_LOGI("scroll position: [%d, %d], scale factor: [%.2f]", scrollPosition.x(), scrollPosition.y(), newScaleFactor);
+#endif
+
 #if ENABLE(TIZEN_WEBKIT2_TILED_BACKING_STORE)
     impl->pageClient->setVisibleContentRect(IntRect(scrollPosition, impl->size()), newScaleFactor);
 #else
@@ -2654,6 +2663,7 @@ void ewk_view_suspend(Evas_Object* ewkView)
     // Multiple suspend of ActiveDOMObject makes unintended suspend/resume status of
     // the ActiveDOMObject.
     if (!impl->suspendedResources && (!impl->isWaitingForJavaScriptPopupReply || !impl->isWaitingForApplicationCachePermission || !impl->isWaitingForExceededQuotaPopupReply)) {
+        impl->pageProxy->suspendAnimations();
         impl->pageProxy->suspendJavaScriptAndResource();
         impl->suspendedResources = true;
     }
@@ -2686,6 +2696,7 @@ void ewk_view_resume(Evas_Object* ewkView)
     // Multiple suspend of ActiveDOMObject makes unintended suspend/resume status of
     // the ActiveDOMObject.
     if (impl->suspendedResources && (!impl->isWaitingForJavaScriptPopupReply || !impl->isWaitingForApplicationCachePermission || !impl->isWaitingForExceededQuotaPopupReply)) {
+        impl->pageProxy->resumeAnimations();
         impl->pageProxy->resumeJavaScriptAndResource();
         impl->suspendedResources = false;
     }
@@ -2914,6 +2925,13 @@ Eina_Bool ewk_view_visibility_set(Evas_Object* ewkView, Eina_Bool enable)
 }
 #endif
 
+#if ENABLE(TIZEN_BACKGROUND_DISK_CACHE)
+Eina_Bool ewk_view_foreground_set(Evas_Object* ewkView, Eina_Bool enable)
+{
+    return true;
+}
+#endif
+
 Evas_Object* ewk_view_screenshot_contents_get(const Evas_Object* ewkView, Eina_Rectangle viewArea, float scaleFactor, Evas* canvas)
 {
     EINA_SAFETY_ON_NULL_RETURN_VAL(canvas, 0);
@@ -3039,6 +3057,16 @@ Eina_Bool ewk_view_scroll_size_get(const Evas_Object* ewkView, int* width, int*
     return true;
 }
 
+#if ENABLE(TIZEN_WEBKIT2_NOTIFY_POPUP_REPLY_STATUS)
+void ewkViewNotifyPopupReplyWaitingState(Evas_Object* ewkView, bool isWaiting)
+{
+    if (isWaiting)
+        evas_object_smart_callback_call(ewkView, "popup,reply,wait,start", 0);
+    else
+        evas_object_smart_callback_call(ewkView, "popup,reply,wait,finish", 0);
+}
+#endif
+
 bool ewkViewRunJavaScriptAlert(Evas_Object* ewkView, WKStringRef alertText)
 {
     EWK_VIEW_SD_GET_OR_RETURN(ewkView, smartData, false);
@@ -4142,14 +4170,13 @@ void ewk_view_touch_event_handler_result_set(Evas_Object* ewkView, WebKit::WebEv
 }
 
 #if ENABLE(TIZEN_WEBKIT2_GET_TEXT_STYLE_FOR_SELECTION)
-void  ewkViewDidGetTextStyleStateForSelection(Evas_Object* ewkView, int underlineState, int italicState, int boldState, const IntPoint& startPoint, const IntPoint& endPoint)
+void  ewkViewTextStyleState(Evas_Object* ewkView, const IntPoint& startPoint, const IntPoint& endPoint)
 {
     EWK_VIEW_SD_GET_OR_RETURN(ewkView, smartData);
     EWK_VIEW_IMPL_GET_OR_RETURN(smartData, impl);
 
     EditorState editorState = impl->page()->editorState();
-
-    Ewk_Text_Style* textStyle = ewkTextStyleCreate(underlineState, italicState, boldState, startPoint, endPoint, editorState.bgColor, editorState.color);
+    Ewk_Text_Style* textStyle = ewkTextStyleCreate(editorState, startPoint, endPoint);
     evas_object_smart_callback_call(ewkView, "text,style,state", static_cast<void*>(textStyle));
     ewkTextStyleDelete(textStyle);
 }
index b6b5ad3..66e1c38 100644 (file)
@@ -944,6 +944,18 @@ EAPI Eina_Bool ewk_view_custom_header_clear(const Evas_Object* o);
 EAPI Eina_Bool ewk_view_visibility_set(Evas_Object* o, Eina_Bool enable);
 //#endif
 
+//#if ENABLE(TIZEN_BACKGROUND_DISK_CACHE)
+/**
+ * Notify the foreground/background status of app.
+ *
+ * @param o view object that is in given status.
+ * @param enable EINA_TRUE to notify that page is foreground, EINA_FALSE otherwise.
+ *
+ * @return @c EINA_TRUE on successful request, @c EINA_FALSE on errors
+ */
+EAPI Eina_Bool ewk_view_foreground_set(Evas_Object* o, Eina_Bool enable);
+//#endif
+
 /**
  * Returns the evas image object of the specified viewArea of page
  *
index a8d5239..f4bdcad 100755 (executable)
@@ -148,6 +148,9 @@ void ewk_view_process_crashed(Evas_Object* ewkView);
 void ewkViewCustomizeContextMenu(Evas_Object* ewkView, Ewk_Context_Menu* menu);
 void ewkViewCustomContextMenuItemSelected(Evas_Object* ewkView, Ewk_Context_Menu_Item* item);
 uint64_t ewkContextGetDatabaseQuota(Ewk_Context* ewkContext);
+#if ENABLE(TIZEN_WEBKIT2_NOTIFY_POPUP_REPLY_STATUS)
+void ewkViewNotifyPopupReplyWaitingState(Evas_Object* ewkView, bool isWaiting);
+#endif
 bool ewkViewRunJavaScriptAlert(Evas_Object* ewkView, WKStringRef alertText);
 bool ewkViewRunJavaScriptConfirm(Evas_Object* ewkView, WKStringRef message);
 bool ewkViewRunJavaScriptPrompt(Evas_Object* ewkView, WKStringRef message, WKStringRef defaultValue);
@@ -226,8 +229,8 @@ void ewkViewDataListHideRequest(Evas_Object* ewkView, Ewk_Input_Type inputType);
 #endif
 
 #if ENABLE(TIZEN_WEBKIT2_GET_TEXT_STYLE_FOR_SELECTION)
-void  ewkViewDidGetTextStyleStateForSelection(Evas_Object* ewkView, int underlineState, int italicState, int boldState, const WebCore::IntPoint& startPoint, const WebCore::IntPoint& endPoint);
-Ewk_Text_Style* ewkTextStyleCreate(int underlineState, int italicState, int boldState, const WebCore::IntPoint& startPoint, const WebCore::IntPoint& endPoint, const String& bgColor, const String& color);
+void  ewkViewTextStyleState(Evas_Object* ewkView, const WebCore::IntPoint& startPoint, const WebCore::IntPoint& endPoint);
+Ewk_Text_Style* ewkTextStyleCreate(const WebKit::EditorState editorState, const WebCore::IntPoint& startPoint, const WebCore::IntPoint& endPoint);
 void ewkTextStyleDelete(Ewk_Text_Style* textStyle);
 #endif
 
index a566209..e0b57e4 100755 (executable)
@@ -124,18 +124,22 @@ static void _cameraResultCb(service_h request, service_h reply, service_result_e
     TIZEN_LOGI("result(%d)", result);
 
     if (result == SERVICE_RESULT_SUCCEEDED) {
-        char* resultFilename = 0;
-        int ret = service_get_extra_data(reply, SERVICE_DATA_SELECTED, &resultFilename);
+        char** resultFilename[] = {0, };
+        int length = 0;
+        int ret = service_get_extra_data_array(reply, SERVICE_DATA_SELECTED, &(*resultFilename), &length);
         if (ret != SERVICE_ERROR_NONE)
             return;
 
-        if (resultFilename) {
-            Eina_List* list = 0;
-            int len = strlen(resultFilename) + 1;
-            char* fileName = static_cast<char*>(malloc(sizeof(char) * len));
-            memset(fileName, 0, sizeof(char) * len);
-            strcpy(fileName, resultFilename);
-            list = eina_list_append(list, fileName);
+        if (length) {
+             Eina_List* list = 0;
+             for (int i = 0; i < length; ++i) {
+                char* result = *resultFilename[i];
+                int len = strlen(result) + 1;
+                char* fileName = static_cast<char*>(malloc(sizeof(char) * len));
+                memset(fileName, 0, sizeof(char) * len);
+                strcpy(fileName, result);
+                list = eina_list_append(list, fileName);
+            }
             ewk_view_open_panel_reply(openPanel->ewkView(), list, true);
         } else {
             ewk_view_open_panel_reply(openPanel->ewkView(), 0, false);
@@ -154,6 +158,7 @@ bool OpenPanel::_capturePicture()
     service_set_operation(svcHandle, SERVICE_OPERATION_CREATE_CONTENT);
     service_set_mime(svcHandle, "image/jpg");
     service_add_extra_data(svcHandle, "CALLER", "webkit");
+    service_add_extra_data(svcHandle, "http://tizen.org/appcontrol/data/camera/allow_switch", "false");
 
     int ret = service_send_launch_request(svcHandle, _cameraResultCb, this);
     if (ret != SERVICE_ERROR_NONE) {
@@ -176,6 +181,7 @@ bool OpenPanel::_recordVideo()
     service_set_operation(svcHandle, SERVICE_OPERATION_CREATE_CONTENT);
     service_set_mime(svcHandle, "video/3gp");
     service_add_extra_data(svcHandle, "CALLER", "webkit");
+    service_add_extra_data(svcHandle, "http://tizen.org/appcontrol/data/camera/allow_switch", "false");
 
     int ret = service_send_launch_request(svcHandle, _cameraResultCb, this);
     if (ret != SERVICE_ERROR_NONE) {
index 6d81a92..3bbe3d3 100644 (file)
@@ -99,6 +99,11 @@ void TextSelection::update()
     if (editorState.updateEditorRectOnly)
         return;
 
+#if ENABLE(TIZEN_WEBKIT2_GET_TEXT_STYLE_FOR_SELECTION)
+    if (!editorState.shouldIgnoreCompositionSelectionChange)
+        informTextStyleState();
+#endif
+
     if (isTextSelectionMode()) {
         if (!editorState.selectionIsRange) {
             if (editorState.isContentEditable && !evas_object_focus_get(m_viewImpl->view())) {
@@ -114,30 +119,13 @@ void TextSelection::update()
 
                 setIsTextSelectionMode(false);
             }
-#if ENABLE(TIZEN_WEBKIT2_GET_TEXT_STYLE_FOR_SELECTION)
-            m_viewImpl->page()->getTextStyleStateForSelection();
-#endif
         } else {
             if (!isTextSelectionDowned() && !isTextSelectionHandleDowned()) {
                 updateHandlers();
                 showContextMenu();
-#if ENABLE(TIZEN_WEBKIT2_GET_TEXT_STYLE_FOR_SELECTION)
-                m_viewImpl->page()->getTextStyleStateForSelection();
-#endif
             }
         }
     }
-#if ENABLE(TIZEN_WEBKIT2_GET_TEXT_STYLE_FOR_SELECTION)
-    else {
-        if (editorState.isContentEditable && !editorState.selectionIsRange) {
-            WebCore::IntRect caretRect;
-            m_viewImpl->page()->getCaretPosition(caretRect);
-            if (!caretRect.isEmpty()) {
-                m_viewImpl->page()->getTextStyleStateForSelection();
-            }
-        }
-    }
-#endif
 }
 
 void TextSelection::setIsTextSelectionMode(bool isTextSelectionMode)
@@ -196,20 +184,20 @@ void TextSelection::updateHandlers()
         evas_object_geometry_get(m_viewImpl->view(), &webViewX, &webViewY, &webViewWidth, &webViewHeight);
         if ((editorLeftEvasPoint.x() <= leftEvasPoint.x() && editorLeftEvasPoint.y() <= leftEvasPoint.y())
             && (webViewX <= leftEvasPoint.x() && webViewY <= leftEvasPoint.y())) {
-                m_leftHandle->move(leftEvasPoint);
-                m_leftHandle->show();
+            m_leftHandle->move(leftEvasPoint, m_viewImpl->transformToScene().mapRect(leftRect));
+            m_leftHandle->show();
         }
 
         if ((editorRightEvasPoint.x() >= rightEvasPoint.x() && editorRightEvasPoint.y() >= rightEvasPoint.y())
             && ((webViewX + webViewWidth) >= rightEvasPoint.x() && (webViewY <= rightEvasPoint.y() && (webViewY + webViewHeight) >= rightEvasPoint.y()))) {
-            m_rightHandle->move(rightEvasPoint);
+            m_rightHandle->move(rightEvasPoint, m_viewImpl->transformToScene().mapRect(rightRect));
             m_rightHandle->show();
         }
     } else {
-        m_leftHandle->move(leftEvasPoint);
+        m_leftHandle->move(leftEvasPoint, m_viewImpl->transformToScene().mapRect(leftRect));
         m_leftHandle->show();
 
-        m_rightHandle->move(rightEvasPoint);
+        m_rightHandle->move(rightEvasPoint, m_viewImpl->transformToScene().mapRect(rightRect));
         m_rightHandle->show();
     }
 }
@@ -415,9 +403,6 @@ void TextSelection::handleMouseUp(TextSelectionHandle* /* handle */, const IntPo
 {
     hideMagnifier();
     showContextMenu();
-#if ENABLE(TIZEN_WEBKIT2_GET_TEXT_STYLE_FOR_SELECTION)
-    m_viewImpl->page()->getTextStyleStateForSelection();
-#endif
 }
 
 bool TextSelection::isMagnifierVisible()
@@ -432,6 +417,10 @@ void TextSelection::updateHandlesAndContextMenu(bool isShow, bool isScrolling)
         return;
     }
 
+    EditorState editorState = m_viewImpl->page()->editorState();
+    if (!editorState.selectionIsRange && editorState.isContentEditable)
+        setIsTextSelectionMode(false);
+
     if (isShow) {
 #if ENABLE(TIZEN_WEBKIT2_CONTEXT_MENU_CLIPBOARD)
         if (m_viewImpl->pageClient->isClipboardWindowOpened())
@@ -600,21 +589,17 @@ void TextSelection::textSelectionUp(const IntPoint& point, bool isStartedTextSel
         showContextMenu();
     } else if (!isStartedTextSelectionFromOutside)
         setIsTextSelectionMode(false);
-
-#if ENABLE(TIZEN_WEBKIT2_GET_TEXT_STYLE_FOR_SELECTION)
-    m_viewImpl->page()->getTextStyleStateForSelection();
-#endif
 }
 
 #if ENABLE(TIZEN_WEBKIT2_FOR_MOVING_TEXT_SELECTION_HANDLE_FROM_OSP)
 TextSelectionHandle* TextSelection::getSelectedHandle(const IntPoint& position)
 {
     WebCore::IntRect leftHandleRect = m_leftHandle->getHandleRect();
-    if (leftHandleRect.contains(position))
+    if (!leftHandleRect.isEmpty() && leftHandleRect.contains(position))
         return m_leftHandle;
 
     WebCore::IntRect rightHandleRect = m_rightHandle->getHandleRect();
-    if (rightHandleRect.contains(position))
+    if (!rightHandleRect.isEmpty() && rightHandleRect.contains(position))
         return m_rightHandle;
 
     return 0;
@@ -693,6 +678,44 @@ void TextSelection::initHandlesMouseDownedStatus()
     m_rightHandle->setIsMouseDowned(false);
 }
 
+void TextSelection::changeContextMenuPosition(WebCore::IntPoint& position)
+{
+    if (m_leftHandle->isTop()) {
+        IntRect handleRect = m_leftHandle->getHandleRect();
+        position.setY(position.y() - handleRect.height());
+    }
+}
+
+#if ENABLE(TIZEN_WEBKIT2_GET_TEXT_STYLE_FOR_SELECTION)
+void TextSelection::informTextStyleState()
+{
+    WebCore::IntPoint startPoint, endPoint;
+    WebCore::IntRect leftRect, rightRect;
+
+    WebCore::IntRect caretRect;
+    m_viewImpl->page()->getCaretPosition(caretRect);
+    if (!caretRect.isEmpty()) {
+        startPoint.setX(caretRect.x());
+        startPoint.setY(caretRect.y() + caretRect.height());
+
+        endPoint.setX(caretRect.x() + caretRect.width());
+        endPoint.setY(caretRect.y() + caretRect.height());
+    }
+    else if (m_viewImpl->page()->getSelectionHandlers(leftRect, rightRect)) {
+        startPoint.setX(leftRect.x());
+        startPoint.setY(leftRect.y() + leftRect.height());
+
+        endPoint.setX(rightRect.x() + rightRect.width());
+        endPoint.setY(rightRect.y() + rightRect.height());
+    }
+
+    AffineTransform toEvasTransform = m_viewImpl->transformToScene();
+    WebCore::IntPoint startEvasPoint = toEvasTransform.mapPoint(startPoint);
+    WebCore::IntPoint endEvasPoint = toEvasTransform.mapPoint(endPoint);
+
+    ewkViewTextStyleState(m_viewImpl->view(), startEvasPoint, endEvasPoint);
+}
+#endif
 } // namespace WebKit
 
 #endif // TIZEN_WEBKIT2_TEXT_SELECTION
index e1eb1b7..fa3802b 100644 (file)
@@ -82,6 +82,8 @@ public:
     void requestToShow();
     void initHandlesMouseDownedStatus();
 
+    void changeContextMenuPosition(WebCore::IntPoint& position);
+
     friend class PageClientImpl; // to allow hideHandlers() call while zooming
 private:
     TextSelection(EwkViewImpl*);
@@ -110,6 +112,10 @@ private:
     static Eina_Bool showTimerCallback(void* data);
     void showHandlesAndContextMenu();
 
+#if ENABLE(TIZEN_WEBKIT2_GET_TEXT_STYLE_FOR_SELECTION)
+    void informTextStyleState();
+#endif
+
 private:
     EwkViewImpl* m_viewImpl;
     TextSelectionHandle* m_leftHandle;
index 2a82a53..1da7aae 100644 (file)
@@ -37,10 +37,12 @@ namespace WebKit {
 Ecore_Job* TextSelectionHandle::s_job = 0;
 
 TextSelectionHandle::TextSelectionHandle(Evas_Object* object, const char* themePath, const char* part, bool isLeft, TextSelection* textSelection)
-    : m_isLeft(isLeft),
-      m_textSelection(textSelection),
-      m_position(IntPoint(0, 0)),
-      m_isMouseDowned(false)
+    : m_isLeft(isLeft)
+    , m_widget(object)
+    , m_textSelection(textSelection)
+    , m_position(IntPoint(0, 0))
+    , m_isMouseDowned(false)
+    , m_isTop(false)
 {
     Evas* evas = evas_object_evas_get(object);
     m_icon = edje_object_add(evas);
@@ -73,10 +75,24 @@ TextSelectionHandle::~TextSelectionHandle()
     }
 }
 
-void TextSelectionHandle::move(const IntPoint& point)
+void TextSelectionHandle::move(const IntPoint& point, const IntRect& selectionRect)
 {
-    evas_object_move(m_icon, point.x(), point.y());
-    m_position = point;
+    IntPoint movePoint = point;
+    int x, y, deviceWidth, deviceHeight;
+    evas_object_geometry_get(m_widget, &x, &y, &deviceWidth, &deviceHeight);
+    IntRect handleRect = getHandleRect();
+
+    if ((movePoint.y() + handleRect.height()) > (y + deviceHeight)) {
+        movePoint.setY(movePoint.y() - selectionRect.height());
+        edje_object_signal_emit(m_icon, "elm,state,top", "elm");
+        m_isTop = true;
+    } else {
+        edje_object_signal_emit(m_icon, "elm,state,bottom", "elm");
+        m_isTop = false;
+    }
+
+    evas_object_move(m_icon, movePoint.x(), movePoint.y());
+    m_position = movePoint;
 }
 
 void TextSelectionHandle::show()
@@ -92,6 +108,9 @@ void TextSelectionHandle::hide()
 #if ENABLE(TIZEN_WEBKIT2_FOR_MOVING_TEXT_SELECTION_HANDLE_FROM_OSP)
 const IntRect TextSelectionHandle::getHandleRect()
 {
+    if (!evas_object_visible_get(m_icon))
+        return IntRect();
+
     int x, y;
     evas_object_geometry_get(m_icon, &x, &y, 0, 0);
 
index 51d6614..8499a89 100755 (executable)
@@ -44,7 +44,7 @@ public:
     TextSelectionHandle(Evas_Object* object, const char* path, const char* part, bool isLeft, TextSelection* textSelection);
     ~TextSelectionHandle();
 
-    void move(const WebCore::IntPoint& point);
+    void move(const WebCore::IntPoint& point, const WebCore::IntRect& selectionRect);
     void show();
     void hide();
     bool isLeft() const { return m_isLeft; }
@@ -56,6 +56,7 @@ public:
 #if ENABLE(TIZEN_WEBKIT2_FOR_MOVING_TEXT_SELECTION_HANDLE_FROM_OSP)
     const WebCore::IntRect getHandleRect();
 #endif
+    bool isTop() const { return m_isTop; }
 
     void mouseDown(const WebCore::IntPoint& point);
     void mouseMove(const WebCore::IntPoint& point);
@@ -73,6 +74,7 @@ private:
 
 private:
     Evas_Object* m_icon;
+    Evas_Object* m_widget;
     WebCore::IntPoint m_mousePosition;
     static Ecore_Job* s_job;
     bool m_isLeft;
@@ -81,6 +83,7 @@ private:
     WebCore::IntPoint m_firstDownMousePosition;
     WebCore::IntPoint m_basePositionForMove;
     bool m_isMouseDowned;
+    bool m_isTop;
 };
 
 } // namespace WebKit
index f9cefd0..1db73a3 100755 (executable)
@@ -119,6 +119,7 @@ public:
 #endif
 
 #if ENABLE(TIZEN_WEBKIT2_HISTORICAL_RESTORE_VISIBLE_CONTENT_RECT)
+    virtual void prepareRestoredVisibleContectRect() = 0;
     virtual void pageDidRequestRestoreVisibleContentRect(const WebCore::IntPoint&, float) = 0;
 #endif
 
index f9a4d26..c5becb1 100755 (executable)
 #include "InputMethodContextEfl.h"
 #endif
 
+#if ENABLE(TIZEN_VIEWPORT_META_TAG)
+#include <WebCore/EflScreenUtilities.h>
+#endif
+
 // This controls what strategy we use for mouse wheel coalescing.
 #define MERGE_WHEEL_EVENTS 1
 
@@ -190,7 +194,7 @@ WebPageProxy::WebPageProxy(PageClient* pageClient, PassRefPtr<WebProcessProxy> p
     , m_textZoomFactor(1)
     , m_pageZoomFactor(1)
     , m_pageScaleFactor(1)
-    , m_intrinsicDeviceScaleFactor(1)
+    , m_intrinsicDeviceScaleFactor(getMobileDPI() / 160)
     , m_customDeviceScaleFactor(0)
 #if HAVE(LAYER_HOSTING_IN_WINDOW_SERVER)
     , m_layerHostingMode(LayerHostingModeInWindowServer)
@@ -2660,6 +2664,9 @@ void WebPageProxy::runJavaScriptAlert(uint64_t frameID, const String& message, P
     process()->responsivenessTimer()->stop();
 
     m_alertReply = reply;
+#if ENABLE(TIZEN_WEBKIT2_NOTIFY_POPUP_REPLY_STATUS)
+    m_uiClient.notifyPopupReplyWaitingState(this, true);
+#endif
 #if ENABLE(TIZEN_WEBKIT2_ROTATION_WHILE_JAVASCRIPT_POPUP)
     process()->connection()->setForcelySetAllAsyncMessagesToDispatchEvenWhenWaitingForSyncReply(true);
 #endif
@@ -2676,6 +2683,9 @@ void WebPageProxy::runJavaScriptConfirm(uint64_t frameID, const String& message,
     process()->responsivenessTimer()->stop();
 
     m_confirmReply = reply;
+#if ENABLE(TIZEN_WEBKIT2_NOTIFY_POPUP_REPLY_STATUS)
+    m_uiClient.notifyPopupReplyWaitingState(this, true);
+#endif
 #if ENABLE(TIZEN_WEBKIT2_ROTATION_WHILE_JAVASCRIPT_POPUP)
     process()->connection()->setForcelySetAllAsyncMessagesToDispatchEvenWhenWaitingForSyncReply(true);
 #endif
@@ -2692,6 +2702,9 @@ void WebPageProxy::runJavaScriptPrompt(uint64_t frameID, const String& message,
     process()->responsivenessTimer()->stop();
 
     m_promptReply = reply;
+#if ENABLE(TIZEN_WEBKIT2_NOTIFY_POPUP_REPLY_STATUS)
+    m_uiClient.notifyPopupReplyWaitingState(this, true);
+#endif
 #if ENABLE(TIZEN_WEBKIT2_ROTATION_WHILE_JAVASCRIPT_POPUP)
     process()->connection()->setForcelySetAllAsyncMessagesToDispatchEvenWhenWaitingForSyncReply(true);
 #endif
index 4c10e19..4f0db4a 100755 (executable)
@@ -555,19 +555,23 @@ public:
 #endif
 
     void suspendPainting();
-#if ENABLE(TIZEN_WEBKIT2_TILED_AC)
-    void suspendPaintingOfInactiveView();
-#endif
     void resumePainting();
 
     void suspendJavaScriptAndResource();
     void resumeJavaScriptAndResource();
 
+    void suspendAnimations();
+    void resumeAnimations();
+
 #if ENABLE(TIZEN_PLUGIN_SUSPEND_RESUME)
     void suspendPlugin();
     void resumePlugin();
 #endif
 
+#if ENABLE(TIZEN_WEBKIT2_TILED_AC)
+    void purgeBackingStoresOfInactiveView();
+#endif
+
 #endif // #if OS(TIZEN)
 
 #if USE(TILED_BACKING_STORE)
@@ -950,7 +954,6 @@ public:
 #endif
 
 #if ENABLE(TIZEN_ISF_PORT)
-    void setInputMethodState(bool active);
     int getCursorOffset();
     void getSurroundingTextAndCursorOffset(String&, int&);
     WebCore::IntRect getSelectionRect(bool);
@@ -969,11 +972,6 @@ public:
     void didRenderFrame();
 #endif
 
-#if ENABLE(TIZEN_WEBKIT2_GET_TEXT_STYLE_FOR_SELECTION)
-    void getTextStyleStateForSelection();
-    void didGetTextStyleStateForSelection(int underlineState, int italicState, int boldState);
-#endif
-
 #if PLATFORM(GTK) && USE(TEXTURE_MAPPER_GL)
     void widgetMapped(uint64_t nativeWindowId);
 #endif
index 8a9066f..3eb8354 100755 (executable)
@@ -342,9 +342,6 @@ messages -> WebPageProxy {
     UpdateSpellingUIWithMisspelledWord(WTF::String misspelledWord)
     UpdateSpellingUIWithGrammarString(WTF::String badGrammarPhrase, WebCore::GrammarDetail grammarDetail)
     GetGuessesForWord(WTF::String word, WTF::String context) -> (Vector<WTF::String> guesses)
-#if ENABLE(TIZEN_ISF_PORT)
-    SetInputMethodState(bool active);
-#endif
 #if ENABLE(TIZEN_WEBKIT2_FORM_DATABASE)
     TextChangeInTextField(WTF::String name, WTF::String value)
 #endif
@@ -447,10 +444,6 @@ messages -> WebPageProxy {
 
     SetBackgroundColor(double red, double green, double blue, double alpha)
 
-#if ENABLE(TIZEN_WEBKIT2_GET_TEXT_STYLE_FOR_SELECTION)
-    DidGetTextStyleStateForSelection(int underlineState, int italicState, int boldState)
-#endif
-
 #if ENABLE(SCREEN_ORIENTATION_SUPPORT) && ENABLE(TIZEN_SCREEN_ORIENTATION_SUPPORT)
     LockOrientation(int32_t orientation) -> (bool result)
     UnlockOrientation()
index 06638eb..ecd645b 100644 (file)
@@ -574,7 +574,7 @@ void WebProcessProxy::releaseBackingStoreMemory()
     Vector<RefPtr<WebPageProxy> > pages;
     copyValuesToVector(m_pageMap, pages);
     for (size_t i = 0, size = pages.size(); i < size; ++i)
-        pages[i]->suspendPaintingOfInactiveView();
+        pages[i]->purgeBackingStoresOfInactiveView();
 }
 #endif
 } // namespace WebKit
index 2994bf3..40b4454 100644 (file)
@@ -122,6 +122,13 @@ void WebUIClient::unfocus(WebPageProxy* page)
 }
 
 #if OS(TIZEN)
+#if ENABLE(TIZEN_WEBKIT2_NOTIFY_POPUP_REPLY_STATUS)
+void WebUIClient::notifyPopupReplyWaitingState(WebPageProxy* page, bool isWaiting)
+{
+    return m_client.notifyPopupReplyWaitingState(toAPI(page), isWaiting, m_client.clientInfo);
+}
+#endif
+
 bool WebUIClient::runJavaScriptAlert(WebPageProxy* page, const String& message, WebFrameProxy* frame)
 {
 #if ENABLE(TIZEN_WEBKIT2_EFL_WTR)
index 42ca581..2470ad5 100644 (file)
@@ -68,6 +68,9 @@ public:
     void unfocus(WebPageProxy*);
 
 #if OS(TIZEN)
+#if ENABLE(TIZEN_WEBKIT2_NOTIFY_POPUP_REPLY_STATUS)
+    void notifyPopupReplyWaitingState(WebPageProxy*, bool);
+#endif
     bool runJavaScriptAlert(WebPageProxy*, const String&, WebFrameProxy*);
     bool runJavaScriptConfirm(WebPageProxy*, const String&, WebFrameProxy*);
     bool runJavaScriptPrompt(WebPageProxy*, const String&, const String&, WebFrameProxy*);
index bde3a43..871ae66 100755 (executable)
@@ -40,7 +40,6 @@ InputMethodContextEfl::InputMethodContextEfl(EwkViewImpl* viewImpl, PassOwnPtr<E
     , m_focused(false)
 #if ENABLE(TIZEN_ISF_PORT)
     , m_contextID(0)
-    , m_useInputMethod(false)
     , m_state(ECORE_IMF_INPUT_PANEL_STATE_HIDE)
     , m_inputPickerType(-1)
 #endif
@@ -337,10 +336,10 @@ void InputMethodContextEfl::handleKeyDownEvent(const Evas_Event_Key_Down* downEv
 void InputMethodContextEfl::updateTextInputState()
 {
     const EditorState& editor = m_viewImpl->page()->editorState();
-    if (editor.shouldIgnoreCompositionSelectionChange)
+    if (editor.shouldIgnoreCompositionSelectionChange || editor.updateEditorRectOnly)
         return;
 
-    if (editor.isContentEditable && m_useInputMethod)
+    if (editor.isContentEditable)
         showIMFContext(editor);
     else
         hideIMFContext();
@@ -396,12 +395,6 @@ void InputMethodContextEfl::initializeIMFContext(Ecore_IMF_Context* context, Eco
     ecore_imf_context_input_panel_return_key_type_set(context, returnKeyType);
 }
 
-void InputMethodContextEfl::setUseInputMethod(bool use)
-{
-    m_useInputMethod = use;
-    updateTextInputState();
-}
-
 PassOwnPtr<Ecore_IMF_Context> InputMethodContextEfl::takeContext(uintptr_t contextID)
 {
     size_t i = m_contextList.size();
@@ -542,7 +535,7 @@ void InputMethodContextEfl::resetIMFContext()
 
 void InputMethodContextEfl::showIMFContext(const EditorState& editor)
 {
-    if (isShow() && m_contextID == editor.inputMethodContextID)
+    if (!editor.isTapEventHandling || (isShow() && m_contextID == editor.inputMethodContextID))
         return;
 
     Ewk_Settings* settings = ewk_view_settings_get(m_viewImpl->view());
index c9e9692..61b408d 100755 (executable)
@@ -103,7 +103,6 @@ private:
 
     Vector<std::pair<uintptr_t, OwnPtr<Ecore_IMF_Context> > > m_contextList;
     uintptr_t m_contextID;
-    bool m_useInputMethod;
     int m_state;
     WebCore::IntRect m_imeRect;
     int m_inputPickerType;
index a396031..7f544ec 100755 (executable)
@@ -65,6 +65,13 @@ WKPageRef PageUIClientEfl::createNewPage(WKPageRef, WKURLRequestRef, WKDictionar
 }
 
 #if OS(TIZEN)
+#if ENABLE(TIZEN_WEBKIT2_NOTIFY_POPUP_REPLY_STATUS)
+void PageUIClientEfl::notifyPopupReplyWaitingState(WKPageRef, bool isWaiting, const void* clientInfo)
+{
+    ewkViewNotifyPopupReplyWaitingState(toPageUIClientEfl(clientInfo)->m_viewImpl->view(), isWaiting);
+}
+#endif
+
 bool PageUIClientEfl::runJavaScriptAlert(WKPageRef, WKStringRef alertText, WKFrameRef, const void* clientInfo)
 {
     return ewkViewRunJavaScriptAlert(toPageUIClientEfl(clientInfo)->m_viewImpl->view(), alertText);
@@ -236,6 +243,10 @@ PageUIClientEfl::PageUIClientEfl(EwkViewImpl* viewImpl)
     uiClient.hideColorPicker = hideColorPicker;
 #endif
 
+#if ENABLE(TIZEN_WEBKIT2_NOTIFY_POPUP_REPLY_STATUS)
+    uiClient.notifyPopupReplyWaitingState = notifyPopupReplyWaitingState;
+#endif
+
 #if OS(TIZEN)
 #if ENABLE(TIZEN_SUPPORT_BEFORE_UNLOAD_CONFIRM_PANEL)
     uiClient.runBeforeUnloadConfirmPanel = runBeforeUnloadConfirmPanel;
index 621ca8c..c897a84 100755 (executable)
@@ -48,6 +48,9 @@ private:
     static void closePage(WKPageRef, const void*);
     static WKPageRef createNewPage(WKPageRef, WKURLRequestRef, WKDictionaryRef, WKEventModifiers, WKEventMouseButton, const void*);
 #if OS(TIZEN)
+#if ENABLE(TIZEN_WEBKIT2_NOTIFY_POPUP_REPLY_STATUS)
+    static void notifyPopupReplyWaitingState(WKPageRef, bool, const void*);
+#endif
     static bool runJavaScriptAlert(WKPageRef, WKStringRef, WKFrameRef, const void*);
     static bool runJavaScriptConfirm(WKPageRef, WKStringRef, WKFrameRef, const void*);
     static bool runJavaScriptPrompt(WKPageRef, WKStringRef, WKStringRef, WKFrameRef, const void*);
index 2eb1277..7529466 100755 (executable)
@@ -143,11 +143,12 @@ void WebContext::setCertificateFile(const String& certificateFile)
 
 void WebContext::notifyLowMemory()
 {
+#if ENABLE(TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE)
+    m_process->platformSurfaceTexturePool()->removeUnusedPlatformSurfaceTextures(m_process.get());
+#else
 #if ENABLE(TIZEN_WEBKIT2_TILED_AC)
     m_process->releaseBackingStoreMemory();
 #endif
-#if ENABLE(TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE)
-    m_process->platformSurfaceTexturePool()->removeUnusedPlatformSurfaceTextures(m_process.get());
 #endif
 }
 #if ENABLE(TIZEN_SOUP_COOKIE_CACHE_FOR_WEBKIT2)
index eb778d4..e492cc1 100755 (executable)
@@ -238,15 +238,6 @@ void WebPageProxy::textChangeInTextField(const String& name, const String& value
 #endif
 
 #if ENABLE(TIZEN_ISF_PORT)
-void WebPageProxy::setInputMethodState(bool active)
-{
-    InputMethodContextEfl* inputMethodContext = static_cast<PageClientImpl*>(m_pageClient)->viewImpl()->inputMethodContext();
-    if (!inputMethodContext)
-        return;
-
-    inputMethodContext->setUseInputMethod(active);
-}
-
 int WebPageProxy::getCursorOffset()
 {
     if (!isValid())
@@ -608,16 +599,6 @@ void WebPageProxy::suspendPainting()
     process()->send(Messages::DrawingArea::SuspendPainting(), m_pageID);
 }
 
-#if ENABLE(TIZEN_WEBKIT2_TILED_AC)
-void WebPageProxy::suspendPaintingOfInactiveView()
-{
-    if (!isValid() || isViewVisible())
-        return;
-
-    process()->send(Messages::DrawingArea::SuspendPainting(), m_pageID);
-}
-#endif
-
 void WebPageProxy::resumePainting()
 {
     if (!isValid())
@@ -642,6 +623,22 @@ void WebPageProxy::resumeJavaScriptAndResource()
     process()->send(Messages::WebPage::ResumeJavaScriptAndResources(), m_pageID);
 }
 
+void WebPageProxy::suspendAnimations()
+{
+    if (!isValid())
+        return;
+
+    process()->send(Messages::WebPage::SuspendAnimations(), m_pageID);
+}
+
+void WebPageProxy::resumeAnimations()
+{
+    if (!isValid())
+        return;
+
+    process()->send(Messages::WebPage::ResumeAnimations(), m_pageID);
+}
+
 #if ENABLE(TIZEN_PLUGIN_SUSPEND_RESUME)
 void WebPageProxy::suspendPlugin()
 {
@@ -660,6 +657,16 @@ void WebPageProxy::resumePlugin()
 }
 #endif
 
+#if ENABLE(TIZEN_WEBKIT2_TILED_AC)
+void WebPageProxy::purgeBackingStoresOfInactiveView()
+{
+    if (!isValid() || isViewVisible())
+        return;
+
+    process()->send(Messages::LayerTreeCoordinator::PurgeBackingStores(), m_pageID);
+}
+#endif
+
 #if ENABLE(TIZEN_CSS_OVERFLOW_SCROLL_ACCELERATION)
 bool WebPageProxy::scrollOverflow(const FloatPoint& offset)
 {
@@ -715,6 +722,9 @@ void WebPageProxy::replyJavaScriptAlert()
 
     m_alertReply->send();
     m_alertReply = nullptr;
+#if ENABLE(TIZEN_WEBKIT2_NOTIFY_POPUP_REPLY_STATUS)
+    m_uiClient.notifyPopupReplyWaitingState(this, false);
+#endif
 #if ENABLE(TIZEN_WEBKIT2_ROTATION_WHILE_JAVASCRIPT_POPUP)
     process()->connection()->setForcelySetAllAsyncMessagesToDispatchEvenWhenWaitingForSyncReply(false);
 #endif
@@ -727,6 +737,9 @@ void WebPageProxy::replyJavaScriptConfirm(bool result)
 
     m_confirmReply->send(result);
     m_confirmReply = nullptr;
+#if ENABLE(TIZEN_WEBKIT2_NOTIFY_POPUP_REPLY_STATUS)
+    m_uiClient.notifyPopupReplyWaitingState(this, false);
+#endif
 #if ENABLE(TIZEN_WEBKIT2_ROTATION_WHILE_JAVASCRIPT_POPUP)
     process()->connection()->setForcelySetAllAsyncMessagesToDispatchEvenWhenWaitingForSyncReply(false);
 #endif
@@ -739,6 +752,9 @@ void WebPageProxy::replyJavaScriptPrompt(const String& result)
 
     m_promptReply->send(result);
     m_promptReply = nullptr;
+#if ENABLE(TIZEN_WEBKIT2_NOTIFY_POPUP_REPLY_STATUS)
+    m_uiClient.notifyPopupReplyWaitingState(this, false);
+#endif
 #if ENABLE(TIZEN_WEBKIT2_ROTATION_WHILE_JAVASCRIPT_POPUP)
     process()->connection()->setForcelySetAllAsyncMessagesToDispatchEvenWhenWaitingForSyncReply(false);
 #endif
@@ -809,18 +825,6 @@ bool WebPageProxy::makeContextCurrent()
 }
 #endif
 
-#if ENABLE(TIZEN_WEBKIT2_GET_TEXT_STYLE_FOR_SELECTION)
-void WebPageProxy::getTextStyleStateForSelection()
-{
-    process()->send(Messages::WebPage::GetTextStyleStateForSelection(), m_pageID, 0);
-}
-
-void WebPageProxy::didGetTextStyleStateForSelection(int underlineState, int italicState, int boldState)
-{
-    static_cast<PageClientImpl*>(m_pageClient)->didGetTextStyleStateForSelection(underlineState, italicState, boldState);
-}
-#endif
-
 #if ENABLE(TIZEN_ICON_DATABASE)
 void WebPageProxy::didReceiveIcon()
 {
index 4168fdb..2a47512 100755 (executable)
@@ -185,17 +185,20 @@ void WebContextMenuProxyTizen::showContextMenu(const WebCore::IntPoint& position
             popupPosition.move(-scrollPosition.x(), -scrollPosition.y());
         }
 #endif
+        popupPosition.setX(popupPosition.x() + webViewX);
+        popupPosition.setY(popupPosition.y() + webViewY);
 
 #if ENABLE(TIZEN_WEBKIT2_TEXT_SELECTION)
-
-        if ( m_pageClientImpl->isTextSelectionMode()) {
+        if (m_pageClientImpl->isTextSelectionMode()) {
             elm_object_style_set(m_popup,"copypaste");
             elm_ctxpopup_horizontal_set(m_popup, EINA_TRUE);
             elm_ctxpopup_direction_priority_set(m_popup, ELM_CTXPOPUP_DIRECTION_UP, ELM_CTXPOPUP_DIRECTION_UP, ELM_CTXPOPUP_DIRECTION_UP, ELM_CTXPOPUP_DIRECTION_UP);
+
+            m_pageClientImpl->changeContextMenuPosition(popupPosition);
         }
 #endif
 
-        evas_object_move(m_popup, popupPosition.x() + webViewX, popupPosition.y() + webViewY);
+        evas_object_move(m_popup, popupPosition.x(), popupPosition.y());
         evas_object_show(m_popup);
 
         evas_object_smart_callback_add(m_popup, "dismissed", contextMenuPopupDismissedCallback, m_pageClientImpl);
index 3c1d933..0f3c11f 100755 (executable)
@@ -470,10 +470,6 @@ void WebEditorClient::willSetInputMethodState()
 
 void WebEditorClient::setInputMethodState(bool active)
 {
-#if ENABLE(TIZEN_ISF_PORT)
-    m_page->send(Messages::WebPageProxy::SetInputMethodState(active));
-    return;
-#endif
     notImplemented();
 }
 
index 204effd..38f813a 100644 (file)
@@ -89,6 +89,10 @@ void DrawingAreaImpl::setNeedsDisplay(const IntRect& rect)
     if (dirtyRect.isEmpty())
         return;
 
+#if OS(TIZEN)
+    m_webPage->didChangeContents(dirtyRect);
+#endif
+
     if (m_layerTreeHost) {
         ASSERT(m_dirtyRegion.isEmpty());
 
@@ -108,6 +112,10 @@ void DrawingAreaImpl::scroll(const IntRect& scrollRect, const IntSize& scrollOff
     if (!m_isPaintingEnabled)
         return;
 
+#if OS(TIZEN)
+    m_webPage->didChangeContents(scrollRect);
+#endif
+
     if (m_layerTreeHost) {
         ASSERT(m_scrollRect.isEmpty());
         ASSERT(m_scrollOffset.isEmpty());
index 38d645b..a0dcc7a 100755 (executable)
@@ -557,20 +557,28 @@ EditorState WebPage::editorState() const
     result.hasComposition = frame->editor()->hasComposition();
     result.shouldIgnoreCompositionSelectionChange = frame->editor()->ignoreCompositionSelectionChange();
 
-#if ENABLE(TIZEN_WEBKIT2_TEXT_SELECTION) || ENABLE(TIZEN_ISF_PORT)
+#if ENABLE(TIZEN_WEBKIT2_GET_TEXT_STYLE_FOR_SELECTION)
+    if (!result.shouldIgnoreCompositionSelectionChange) {
+        result.underlineState = frame->editor()->selectionHasStyle(CSSPropertyWebkitTextDecorationsInEffect, "underline");
+        result.italicState = frame->editor()->selectionHasStyle(CSSPropertyFontStyle, "italic");
+        result.boldState = frame->editor()->selectionHasStyle(CSSPropertyFontWeight, "bold");
+        result.bgColor = frame->editor()->selectionStartCSSPropertyValue(CSSPropertyBackgroundColor);
+        result.color = frame->editor()->selectionStartCSSPropertyValue(CSSPropertyColor);
+        result.fontSize = frame->editor()->selectionStartCSSPropertyValue(CSSPropertyFontSize);
+    }
+#endif
+
+#if ENABLE(TIZEN_ISF_PORT) || ENABLE(TIZEN_WEBKIT2_TEXT_SELECTION)
     Element* rootEditableElement = frame->selection()->rootEditableElement();
     if (!rootEditableElement)
         return result;
 
     result.editorRect = nodeRect(rootEditableElement);
-
-#if ENABLE(TIZEN_WEBKIT2_GET_TEXT_STYLE_FOR_SELECTION)
-    result.bgColor = frame->editor()->selectionStartCSSPropertyValue(CSSPropertyBackgroundColor);
-    result.color = frame->editor()->selectionStartCSSPropertyValue(CSSPropertyColor);
-#endif
 #endif
 
 #if ENABLE(TIZEN_ISF_PORT)
+    result.isTapEventHandling = (currentEvent() && currentEvent()->type() == WebEvent::GestureSingleTap);
+
     if (!result.shouldIgnoreCompositionSelectionChange && result.isContentEditable) {
         result.inputMethodContextID = reinterpret_cast<uintptr_t>(rootEditableElement);
 
@@ -1083,6 +1091,13 @@ void WebPage::sendViewportAttributesChanged()
     Settings* settings = m_page->settings();
 
 #if OS(TIZEN)
+#if ENABLE(TIZEN_DLOG_SUPPORT)
+    TIZEN_LOGI(" args type: [%d], scale: [%.1f, %.1f, %.1f], layout: [%.1f, %.1f], userScalable: [%.1f]"
+        , static_cast<int>(m_page->viewportArguments().type), m_page->viewportArguments().initialScale
+        , m_page->viewportArguments().minimumScale, m_page->viewportArguments().maximumScale
+        , m_page->viewportArguments().width, m_page->viewportArguments().height, m_page->viewportArguments().userScalable);
+#endif
+
     // As android and iphone does, we set layout width to 980 for desktop content
     int minimumLayoutFallbackWidth = settings->layoutFallbackWidth();
 #else
@@ -1139,6 +1154,10 @@ void WebPage::setViewportSize(const IntSize& size)
     if (m_viewportSize == size)
         return;
 
+#if ENABLE(TIZEN_DLOG_SUPPORT)
+    TIZEN_LOGI(" viewportSize: [%d, %d]", size.width(), size.height());
+#endif
+
      m_viewportSize = size;
 
     sendViewportAttributesChanged();
@@ -1544,6 +1563,9 @@ void WebPage::pageDidScroll()
 #if USE(TILED_BACKING_STORE)
 void WebPage::pageDidRequestScroll(const IntPoint& point)
 {
+#if ENABLE(TIZEN_DLOG_SUPPORT)
+    TIZEN_LOGI(" scroll position: [%d, %d]", point.x(), point.y());
+#endif
     send(Messages::WebPageProxy::PageDidRequestScroll(point));
 }
 #endif
@@ -1551,6 +1573,9 @@ void WebPage::pageDidRequestScroll(const IntPoint& point)
 #if ENABLE(TIZEN_WEBKIT2_HISTORICAL_RESTORE_VISIBLE_CONTENT_RECT)
 void WebPage::pageDidRequestRestoreVisibleContentRect(const IntPoint& point, float scale)
 {
+#if ENABLE(TIZEN_DLOG_SUPPORT)
+    TIZEN_LOGI(" scale factor: [%.2f], scroll position: [%d, %d]", scale, point.x(), point.y());
+#endif
     send(Messages::WebPageProxy::pageDidRequestRestoreVisibleContentRect(point, scale));
 }
 #endif
index 2e356ad..47d3108 100644 (file)
@@ -264,6 +264,10 @@ public:
 
     void suspendJavaScriptAndResources();
     void resumeJavaScriptAndResources();
+
+    void suspendAnimations();
+    void resumeAnimations();
+
 #if ENABLE(TIZEN_SYNC_REQUEST_ANIMATION_FRAME)
     void suspendAnimationController();
     void resumeAnimationController();
@@ -736,10 +740,6 @@ public:
     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
@@ -785,6 +785,10 @@ public:
     void useSettingsFont();
 #endif
 
+#if OS(TIZEN)
+    void didChangeContents(const WebCore::IntRect&);
+#endif
+
 private:
     WebPage(uint64_t pageID, const WebPageCreationParameters&);
 
index 042ea43..c271034 100644 (file)
@@ -75,6 +75,9 @@ messages -> WebPage {
 #endif
     SuspendJavaScriptAndResources()
     ResumeJavaScriptAndResources()
+
+    SuspendAnimations()
+    ResumeAnimations()
 #endif
 
 #if ENABLE(TIZEN_WEB_STORAGE)
@@ -418,10 +421,6 @@ messages -> WebPage {
     CreatePagesToPDF(WebCore::IntSize surfaceSize, WebCore::IntSize contentsSize, WTF::String fileName)
 #endif
 
-#if ENABLE(TIZEN_WEBKIT2_GET_TEXT_STYLE_FOR_SELECTION)
-    GetTextStyleStateForSelection()
-#endif
-
 #if PLATFORM(GTK) && USE(TEXTURE_MAPPER_GL)
     WidgetMapped(int64_t id)
 #endif
index a7b07cc..3fdc1ec 100644 (file)
@@ -1032,6 +1032,26 @@ void WebPage::resumeJavaScriptAndResources()
     mainFrame->loader()->resumeAllLoaders();
 }
 
+void WebPage::suspendAnimations()
+{
+    Frame* mainFrame = m_page->mainFrame();
+    if (!mainFrame)
+        return;
+
+    for (Frame* frame = mainFrame; frame; frame = frame->tree()->traverseNext())
+        frame->animation()->suspendAnimationsForDocument(frame->document());
+}
+
+void WebPage::resumeAnimations()
+{
+    Frame* mainFrame = m_page->mainFrame();
+    if (!mainFrame)
+        return;
+
+    for (Frame* frame = mainFrame; frame; frame = frame->tree()->traverseNext())
+        frame->animation()->resumeAnimationsForDocument(frame->document());
+}
+
 #if ENABLE(TIZEN_SYNC_REQUEST_ANIMATION_FRAME)
 void WebPage::suspendAnimationController()
 {
@@ -1157,19 +1177,6 @@ void WebPage::resumePlugin()
 }
 #endif
 
-#if ENABLE(TIZEN_WEBKIT2_GET_TEXT_STYLE_FOR_SELECTION)
-void WebPage::getTextStyleStateForSelection()
-{
-    Frame* frame = m_page->focusController()->focusedOrMainFrame();
-
-    int underlineState = frame->editor()->selectionHasStyle(CSSPropertyWebkitTextDecorationsInEffect, "underline");
-    int italicState = frame->editor()->selectionHasStyle(CSSPropertyFontStyle, "italic");
-    int boldState = frame->editor()->selectionHasStyle(CSSPropertyFontWeight, "bold");
-
-    send(Messages::WebPageProxy::DidGetTextStyleStateForSelection(underlineState, italicState, boldState));
-}
-#endif
-
 #if ENABLE(TIZEN_MULTIPLE_SELECT)
 void WebPage::didChangeSelectedIndexForActivePopupMenuMultiple(Vector<int32_t> newIndex)
 {
@@ -1437,9 +1444,9 @@ void WebPage::getSelectionHandlers(IntRect& leftRect, IntRect& rightRect)
         // If selection rect size is greater than editor rect size because of round operation,
         // selection rect size should be changed to editor rect size.
         if (size == 1) {
-            Element* selectionRoot = focusedFrame->selection()->rootEditableElement();
-            if (selectionRoot) {
-                IntRect editorRect = focusedFrame->view()->contentsToWindow(selectionRoot->getPixelSnappedRect());
+            Element* rootEditableElement = focusedFrame->selection()->rootEditableElement();
+            if (rootEditableElement) {
+                IntRect editorRect = nodeRect(rootEditableElement);
 
 #if ENABLE(TIZEN_WEBKIT2_TEXT_SELECTION)
                 if (m_editorState.editorRect != editorRect) {
@@ -1773,6 +1780,24 @@ void WebPage::useSettingsFont()
     frameView->forceLayout();
 }
 #endif
+
+void WebPage::didChangeContents(const IntRect& rect)
+{
+    Frame* frame = m_page->focusController()->focusedOrMainFrame();
+    if (!frame || !frame->view() || frame->view()->needsLayout())
+        return;
+
+#if ENABLE(TIZEN_ISF_PORT) || ENABLE(TIZEN_WEBKIT2_TEXT_SELECTION)
+    if (m_editorState.isContentEditable && rect.intersects(m_editorState.editorRect) && frame->selection()->rootEditableElement()) {
+        IntRect currentEditorRect = nodeRect(frame->selection()->rootEditableElement());
+        if (m_editorState.editorRect != currentEditorRect) {
+            m_editorState.editorRect = currentEditorRect;
+            m_editorState.updateEditorRectOnly = true;
+            send(Messages::WebPageProxy::EditorStateChanged(m_editorState));
+        }
+    }
+#endif
+}
 #endif // #if OS(TIZEN)
 
 } // namespace WebKit
index 220df0e..6d96b85 100644 (file)
@@ -1,6 +1,6 @@
 SET(PROJECT_VERSION_MAJOR 0)
 SET(PROJECT_VERSION_MINOR 11)
-SET(PROJECT_VERSION_PATCH 59)
+SET(PROJECT_VERSION_PATCH 65)
 SET(PROJECT_VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH})
 
 # -----------------------------------------------------------------------------
index d5b7c0d..067c033 100755 (executable)
@@ -220,23 +220,6 @@ class WebKitPort(Port):
             "3D Rendering": ["animations/3d", "transforms/3d"],
         }
 
-    # Ports which use compile-time feature detection should define this method and return
-    # a dictionary mapping from symbol substrings to possibly disabled test directories.
-    # When the symbol substrings are not matched, the directories will be skipped.
-    # If ports don't ever enable certain features, then those directories can just be
-    # in the Skipped list instead of compile-time-checked here.
-    def _missing_symbol_to_skipped_tests(self):
-        """Return the supported feature dictionary. The keys are symbol-substrings
-        and the values are the lists of directories to skip if that symbol is missing."""
-        return {
-            "MathMLElement": ["mathml"],
-            "GraphicsLayer": ["compositing"],
-            "WebCoreHas3DRendering": ["animations/3d", "transforms/3d"],
-            "WebGLShader": ["fast/canvas/webgl", "compositing/webgl", "http/tests/canvas/webgl"],
-            "MHTMLArchive": ["mhtml"],
-            "CSSVariableValue": ["fast/css/variables", "inspector/styles/variables"],
-        }
-
     def _has_test_in_directories(self, directory_lists, test_list):
         if not test_list:
             return False
@@ -259,15 +242,6 @@ class WebKitPort(Port):
             if supported_feature_list is not None:
                 return reduce(operator.add, [directories for feature, directories in self._missing_feature_to_skipped_tests().items() if feature not in supported_feature_list])
 
-        # Only check the symbols of there are tests in the test_list that might get skipped.
-        # This is a performance optimization to avoid the calling nm.
-        if self._has_test_in_directories(self._missing_symbol_to_skipped_tests().values(), test_list):
-            # Runtime feature detection not supported, fallback to static dectection:
-            # Disable any tests for symbols missing from the executable or libraries.
-            symbols_string = self._symbols_string()
-            if symbols_string is not None:
-                return reduce(operator.add, [directories for symbol_substring, directories in self._missing_symbol_to_skipped_tests().items() if symbol_substring not in symbols_string], [])
-
         # Failed to get any runtime or symbol information, don't skip any tests.
         return []
 
index 0781825..86811a3 100755 (executable)
@@ -90,33 +90,6 @@ class WebKitPortTest(port_testcase.PortTestCase):
         port._options = MockOptions(webkit_test_runner=False)
         self.assertEqual(port.path_to_test_expectations_file(), '/mock-checkout/LayoutTests/platform/testwebkitport/TestExpectations')
 
-    def test_skipped_directories_for_symbols(self):
-        # This first test confirms that the commonly found symbols result in the expected skipped directories.
-        symbols_string = " ".join(["GraphicsLayer", "WebCoreHas3DRendering", "isXHTMLMPDocument", "fooSymbol"])
-        expected_directories = set([
-            "mathml",  # Requires MathMLElement
-            "fast/canvas/webgl",  # Requires WebGLShader
-            "compositing/webgl",  # Requires WebGLShader
-            "http/tests/canvas/webgl",  # Requires WebGLShader
-            "mhtml",  # Requires MHTMLArchive
-            "fast/css/variables",  # Requires CSS Variables
-            "inspector/styles/variables",  # Requires CSS Variables
-        ])
-
-        result_directories = set(TestWebKitPort(symbols_string, None)._skipped_tests_for_unsupported_features(test_list=['mathml/foo.html']))
-        self.assertEqual(result_directories, expected_directories)
-
-        # Test that the nm string parsing actually works:
-        symbols_string = """
-000000000124f498 s __ZZN7WebCore13GraphicsLayer12replaceChildEPS0_S1_E19__PRETTY_FUNCTION__
-000000000124f500 s __ZZN7WebCore13GraphicsLayer13addChildAboveEPS0_S1_E19__PRETTY_FUNCTION__
-000000000124f670 s __ZZN7WebCore13GraphicsLayer13addChildBelowEPS0_S1_E19__PRETTY_FUNCTION__
-"""
-        # Note 'compositing' is not in the list of skipped directories (hence the parsing of GraphicsLayer worked):
-        expected_directories = set(['mathml', 'transforms/3d', 'compositing/webgl', 'fast/canvas/webgl', 'animations/3d', 'mhtml', 'http/tests/canvas/webgl', 'fast/css/variables', 'inspector/styles/variables'])
-        result_directories = set(TestWebKitPort(symbols_string, None)._skipped_tests_for_unsupported_features(test_list=['mathml/foo.html']))
-        self.assertEqual(result_directories, expected_directories)
-
     def test_skipped_directories_for_features(self):
         supported_features = ["Accelerated Compositing", "Foo Feature"]
         expected_directories = set(["animations/3d", "transforms/3d"])
index d1bdeb8..ce0089c 100644 (file)
@@ -1,6 +1,6 @@
 Name: webkit2-efl
 Summary: Webkit2 EFL
-Version: 123997_0.11.59
+Version: 123997_0.11.65
 Release: 1
 Group: Applications/Internet
 License: LGPLv2.1 or BSD