set view-mode Media Feature
authorJihoon Chung <jihoon.chung@samsung.com>
Thu, 27 Dec 2012 00:57:30 +0000 (09:57 +0900)
committerGerrit Code Review <gerrit2@kim11>
Fri, 28 Dec 2012 07:33:50 +0000 (16:33 +0900)
[Issue#] JIRA (TWEB-743)
[Problem] view-mode checking test widget returns fail
[Cause] Webkit doesn't support view-mode set API
[Solution] Add view-mode set API
[SCMRequest] N/A

Change-Id: I48c78a8b50475ecc961a1a24fd23a3d720f76628

src/view/webkit/bundles/wrt-wk2-bundle.cpp

index 56fb5b6..d64300e 100644 (file)
@@ -30,6 +30,7 @@
 #include <WKURL.h>
 #include <WKError.h>
 #include <WKURLResponseEfl.h>
+#include <WKBundlePagePrivate.h>
 
 #include <string>
 #include <cstdio>
@@ -83,6 +84,8 @@ const char * const BASE64_STRING = ";base64,";
 const char * const BLANK_PAGE_URL = "about:blank";
 const char * const HTML_MIME = "text/html";
 const char * const PHP_MIME = "application/x-php";
+const char * const VIEWMODE_TYPE_FULLSCREEN = "fullscreen";
+const char * const VIEWMODE_TYPE_MAXIMIZED = "maximized";
 }
 
 Bundle::Bundle(WKBundleRef bundle) :
@@ -390,12 +393,25 @@ void Bundle::didStartProvisionalLoadForFrameCallback(
     LogDebug("didStartProvisionalLoadForFrameCallback called");
     Bundle* This = static_cast<Bundle*>(const_cast<void*>(clientInfo));
 
-    if (This->m_pageGlobalContext.count(page) == 0)
-    {
+    // set viewmode
+    WrtDB::WidgetDAOReadOnly dao(This->m_widgetTizenId);
+    WrtDB::WindowModeList modeList = dao.getWindowModes();
+    FOREACH(it, modeList) {
+        std::string viewMode = DPL::ToUTF8String(*it);
+        if (viewMode == VIEWMODE_TYPE_FULLSCREEN
+            || viewMode == VIEWMODE_TYPE_MAXIMIZED)
+        {
+            WKBundlePageSetViewMode(
+                page,
+                WKStringCreateWithUTF8CString(viewMode.c_str()));
+            break;
+        }
+    }
+
+    if (This->m_pageGlobalContext.count(page) == 0) {
         return;
     }
-    if (This->m_pageContext.count(page) == 0)
-    {
+    if (This->m_pageContext.count(page) == 0) {
         return;
     }
 
@@ -403,8 +419,7 @@ void Bundle::didStartProvisionalLoadForFrameCallback(
 
     ContextSet::iterator i = This->m_pageContext[page].find(context);
 
-    if (i == This->m_pageContext[page].end())
-    {
+    if (i == This->m_pageContext[page].end()) {
         LogDebug("Initially attached frame");
         return;
     }