Add TODO list
authorSeungkeun Lee <sngn.lee@samsung.com>
Tue, 28 Apr 2015 05:57:28 +0000 (14:57 +0900)
committerSeungkeun Lee <sngn.lee@samsung.com>
Tue, 28 Apr 2015 06:00:10 +0000 (15:00 +0900)
Change-Id: I4b8f45f86ec0d74d26c61ff2dcce19b6f035be28

src/runtime/native_window.h
src/runtime/web_application.cc
src/runtime/web_application.h
src/runtime/web_view_impl.cc

index e13f033..45c7fc7 100755 (executable)
@@ -30,6 +30,7 @@ class NativeWindow {
   void Show();
   void Active();
   void InActive();
+  // TODO(sngn.lee): FullScreen(bool enable);
 
  protected:
   virtual Evas_Object* CreateWindowInternal() = 0;
index 5e48870..229b861 100755 (executable)
@@ -137,13 +137,28 @@ bool WebApplication::Initialize() {
   // TODO(sngn.lee): set default from config.xml
   // locale_manager_->SetDefaultLocale(const  string & locale);
 
+  // TODO(sngn.lee): Download interface
+  // ewk_context_did_start_download_callback_set
+
+  // TODO(sngn.lee): always enable "mediastream,record"
+  // TODO(sngn.lee): always enable "encrypted,database"
+  // TODO(sngn.lee): check csp element in config.xml and enable - "csp"
+  // TODO(sngn.lee): Check Backround support and enable - "visibility,suspend"
+  // TODO(sngn.lee): Check Backround support and enable - "background,music"
+  // TODO(sngn.lee): Check setting rotation value and enable "rotation,lock"
+  // TODO(sngn.lee): always enable "fullscreen"
+  // TODO(sngn.lee): check "sound-mode":"exclusive" - in tizen:setting
+  //                 and enable - "sound,mode"
+  // TODO(sngn.lee): check "background-vibration":"enable" - in tizen:setting
+  //                 and enable - "background,vibration"
+
   return true;
 }
 
 void WebApplication::Launch(std::unique_ptr<wrt::AppControl> appcontrol) {
   resource_manager_->set_app_control(appcontrol.get());
   WebView* view = new WebView(window_, ewk_context_);
-  view->SetEventListener(this);
+  SetupWebView(view);
 
   view->LoadUrl(resource_manager_->GetStartURL());
   view_stack_.push_front(view);
@@ -182,7 +197,8 @@ void WebApplication::AppControl(std::unique_ptr<wrt::AppControl> appcontrol) {
     // Reset to context
     ClearViewStack();
     WebView* view = new WebView(window_, ewk_context_);
-    view->SetEventListener(this);
+    SetupWebView(view);
+
     view->LoadUrl(resource_manager_->GetStartURL());
     view_stack_.push_front(view);
     window_->SetContent(view->evas_object());
@@ -251,6 +267,7 @@ void WebApplication::OnCreatedNewWebView(WebView* view, WebView* new_view) {
   if (view_stack_.size() > 0 && view_stack_.front() != NULL)
     view_stack_.front()->SetVisibility(false);
 
+  SetupWebView(new_view);
   view_stack_.push_front(new_view);
   window_->SetContent(new_view->evas_object());
 }
@@ -381,4 +398,17 @@ void WebApplication::LaunchInspector(wrt::AppControl* appcontrol) {
   appcontrol->Reply(data);
 }
 
+void WebApplication::SetupWebView(WebView* view) {
+  view->SetEventListener(this);
+  // TODO(sngn.lee): set UserAgent to WebView
+  // TODO(sngn.lee): set CSP
+}
+
+bool OnDidNavigation(WebView* view, const std::string& url) {
+  // TODO(sngn.lee): scheme handling
+  // except(file , http, https, app) pass to appcontrol and return false
+  return true;
+}
+
+
 }  // namespace wrt
index 419cac2..71095ec 100755 (executable)
@@ -54,6 +54,8 @@ class WebApplication : public WebView::EventListener {
   virtual void OnLanguageChanged();
   virtual void OnLowMemory();
   virtual bool OnContextMenuDisabled(WebView* view);
+  virtual bool OnDidNavigation(WebView* view, const std::string& url);
+
 
   std::string uuid() const { return uuid_; }
 
@@ -63,6 +65,7 @@ class WebApplication : public WebView::EventListener {
   void ClearViewStack();
   void SendAppControlEvent();
   void LaunchInspector(wrt::AppControl* appcontrol);
+  void SetupWebView(WebView* view);
 
   bool launched_;
   bool debug_mode_;
index 5592968..bce6e47 100755 (executable)
@@ -95,6 +95,19 @@ void WebViewImpl::Initialize() {
   InitCustomContextMenuCallback();
   InitRotationCallback();
 
+  // TODO(sngn.lee): "request,certificate,confirm" certification popup
+  // TODO(sngn.lee): ewk_view_notification_permission_callback_set
+  // TODO(sngn.lee): "notification,show"
+  // TODO(sngn.lee): "notification,cancel"
+  // TODO(sngn.lee): "create,window"
+  // TODO(sngn.lee): "close,window"
+  // TODO(sngn.lee): "fullscreen,enterfullscreen"
+  // TODO(sngn.lee): "fullscreen,exitfullscreen"
+  // TODO(sngn.lee): "protocolhandler,registration,requested"
+  //                  custom protocol handler
+  // TODO(sngn.lee): ewk_view_geolocation_permission_callback_set
+  // TODO(sngn.lee): ewk_view_user_media_permission_callback_set
+
   // Show webview
   evas_object_show(ewk_view_);
 }
@@ -260,6 +273,9 @@ void WebViewImpl::InitPolicyDecideCallback() {
 }
 
 void WebViewImpl::InitQuotaExceededCallback() {
+  // TODO(sngn.lee): Need callback interface - OnQutaExceed
+  // check http://tizen.org/privilege/unlimitedstorage
+
   // callback for database quota exceeded
   auto database_exceeded_callback = [](Evas_Object* view,
                                        Ewk_Security_Origin* origin,