[WebSetting] Implementation changed to use sendRuntimeAsyncMessage().
authorPawel Andruszkiewicz <p.andruszkie@samsung.com>
Wed, 29 Apr 2015 07:58:32 +0000 (09:58 +0200)
committerPawel Andruszkiewicz <p.andruszkie@samsung.com>
Thu, 30 Apr 2015 07:52:20 +0000 (16:52 +0900)
Change-Id: I39b96c68c374c07192f45087cc51f32fad1f340b

src/websetting/websetting.cc [deleted file]
src/websetting/websetting.gyp
src/websetting/websetting.h [deleted file]
src/websetting/websetting_api.js
src/websetting/websetting_extension.cc
src/websetting/websetting_extension.h
src/websetting/websetting_instance.cc [deleted file]
src/websetting/websetting_instance.h [deleted file]

diff --git a/src/websetting/websetting.cc b/src/websetting/websetting.cc
deleted file mode 100644 (file)
index 71cfd33..0000000
+++ /dev/null
@@ -1,105 +0,0 @@
-// Copyright (c) 2014 Samsung Electronics Co., Ltd. All Rights Reserved
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "websetting/websetting.h"
-
-#include <sys/types.h>
-#include <unistd.h>
-#include <utility>
-
-#include "common/logger.h"
-#include "common/platform_result.h"
-
-using common::ErrorCode;
-using common::PlatformResult;
-
-namespace {
-
-const char kRuntimeServiceName[] = "org.crosswalkproject.Runtime1";
-const char kRuntimeRunningManagerPath[] = "/running1";
-const char kRuntimeRunningAppInterface[] =
-    "org.crosswalkproject.Running.Application1";
-
-// The runtime process exports object for each running app on the session bus.
-GDBusProxy* CreateRunningAppProxy(const std::string& app_id) {
-  LoggerD("Entered");
-
-  GError* error = nullptr;
-  GDBusConnection* connection =
-      g_bus_get_sync(G_BUS_TYPE_SESSION, nullptr, &error);
-  if (!connection) {
-    LoggerE("Couldn't get the session bus connection: %s", error->message);
-    g_error_free(error);
-    return nullptr;
-  }
-
-  std::string path = std::string(kRuntimeRunningManagerPath) + "/" + app_id;
-  // Every application id contains '.' character and since object path
-  // is created from application id it also contains '.' character.
-  // The d-bus proxy doesn't accept '.' character in object path
-  // And that is why the substantiation is needed here.
-  std::replace(path.begin(), path.end(), '.', '_');
-  GDBusProxy* proxy = g_dbus_proxy_new_sync(
-      connection, G_DBUS_PROXY_FLAGS_NONE, nullptr, kRuntimeServiceName,
-      path.c_str(), kRuntimeRunningAppInterface, nullptr, &error);
-  if (!proxy) {
-    LoggerE("Couldn't create proxy for %s: %s", kRuntimeRunningAppInterface,
-            error->message);
-    g_error_free(error);
-    return nullptr;
-  }
-
-  return proxy;
-}
-
-}  // namespace
-
-WebSetting::WebSetting(const std::string& app_id)
-    : app_id_(app_id), running_app_proxy_(nullptr) {}
-
-WebSetting::~WebSetting() {
-  if (running_app_proxy_) g_object_unref(running_app_proxy_);
-}
-
-common::PlatformResult WebSetting::RemoveAllCookies() {
-  LoggerD("Entered");
-  if (!running_app_proxy_) {
-    if (!(running_app_proxy_ = CreateRunningAppProxy(app_id_))) {
-      LoggerE("Failed to create proxy");
-      return PlatformResult(ErrorCode::UNKNOWN_ERR, "Unable to remove cookies.");
-    }
-  }
-  GError* error = nullptr;
-  GVariant* result =
-      g_dbus_proxy_call_sync(running_app_proxy_, "RemoveAllCookies", nullptr,
-                             G_DBUS_CALL_FLAGS_NONE, -1, nullptr, &error);
-  if (!result) {
-    LoggerE("Failed to call 'RemoveuserAgentAllCookies': %s", error->message);
-    g_error_free(error);
-    return PlatformResult(ErrorCode::UNKNOWN_ERR, "Unable to remove cookies.");
-  }
-  return PlatformResult(ErrorCode::NO_ERROR);
-}
-
-common::PlatformResult WebSetting::SetUserAgentString(
-    const std::string& user_agent) {
-  LoggerD("Entered");
-  if (!running_app_proxy_) {
-    if (!(running_app_proxy_ = CreateRunningAppProxy(app_id_))) {
-      LoggerE("Failed to create proxy");
-      return PlatformResult(ErrorCode::UNKNOWN_ERR, "Unable to set user agent.");
-    }
-  }
-  GError* error = nullptr;
-  GVariant* result =
-      g_dbus_proxy_call_sync(running_app_proxy_, "SetUserAgentString",
-                             g_variant_new("(s)", user_agent.c_str()),
-                             G_DBUS_CALL_FLAGS_NONE, -1, nullptr, &error);
-  if (!result) {
-    LoggerE("Fail to call 'SetUserAgentString': %s", error->message);
-    g_error_free(error);
-    return PlatformResult(ErrorCode::UNKNOWN_ERR, "Unable to set user agent.");
-  }
-  return PlatformResult(ErrorCode::NO_ERROR);
-}
index 5b35fcc..f65be42 100644 (file)
         '../common/common.gyp:tizen_common',
       ],
       'sources': [
-        'websetting.cc',
-        'websetting.h',
         'websetting_api.js',
         'websetting_extension.cc',
         'websetting_extension.h',
-        'websetting_instance.cc',
-        'websetting_instance.h',
       ],
       'includes': [
         '../common/pkg-config.gypi',
diff --git a/src/websetting/websetting.h b/src/websetting/websetting.h
deleted file mode 100644 (file)
index 73b0b1e..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-// Copyright (c) 2014 Samsung Electronics Co., Ltd. All Rights Reserved
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef WEBSETTING_WEBSETTING_H_
-#define WEBSETTING_WEBSETTING_H_
-
-#include <gio/gio.h>
-#include <memory>
-#include <string>
-
-#include "common/platform_result.h"
-
-class WebSetting {
- public:
-  explicit WebSetting(const std::string& app_id);
-  ~WebSetting();
-
-  std::string app_id() const { return app_id_; }
-
-  common::PlatformResult RemoveAllCookies();
-  common::PlatformResult SetUserAgentString(const std::string& user_agent);
-
- private:
-  std::string app_id_;
-  GDBusProxy* running_app_proxy_;
-};
-
-#endif  // websetting_websetting_H_
index ebaf566..d82102a 100644 (file)
@@ -3,14 +3,12 @@
 // found in the LICENSE file.
 
 var validator_ = xwalk.utils.validator;
-var type_ = xwalk.utils.type;
 var native_ = new xwalk.utils.NativeManager(extension);
-var converter_ = xwalk.utils.converter;
 
 exports.setUserAgentString = function() {
   var args = validator_.validateArgs(arguments, [
     {
-      name: 'uri',
+      name: 'userAgent',
       type: validator_.Types.STRING,
       optional: false,
       nullable: false
@@ -31,16 +29,13 @@ exports.setUserAgentString = function() {
 
   var callback = function(result) {
     if (native_.isFailure(result)) {
-      native_.callIfPossible(args.errorCallback,
-          native_.getErrorObject(result));
+      native_.callIfPossible(args.errorCallback, native_.getErrorObject(result));
     } else {
-      var exifInfo = native_.getResultObject(result);
-      args.successCallback(exifInfo);
+      args.successCallback();
     }
   };
 
-  native_.call('WebSettingManager_setUserAgentString', {'userAgent': args.userAgent},
-      callback);
+  native_.sendRuntimeAsyncMessage('tizen://changeUA', args.userAgent, callback);
 };
 
 exports.removeAllCookies = function() {
@@ -61,14 +56,11 @@ exports.removeAllCookies = function() {
 
   var callback = function(result) {
     if (native_.isFailure(result)) {
-      native_.callIfPossible(args.errorCallback,
-          native_.getErrorObject(result));
+      native_.callIfPossible(args.errorCallback, native_.getErrorObject(result));
     } else {
-      var exifInfo = native_.getResultObject(result);
-      args.successCallback(exifInfo);
+      args.successCallback();
     }
   };
 
-  native_.call('WebSettingManager_removeAllCookies', {},
-      callback);
+  native_.sendRuntimeAsyncMessage('tizen://deleteAllCookies', '', callback);
 };
index 4f2ee0a..ca16fe5 100644 (file)
@@ -4,33 +4,13 @@
 
 #include "websetting/websetting_extension.h"
 
-#include <string>
-
-#include "websetting/websetting.h"
-#include "websetting/websetting_instance.h"
-
-#include "common/logger.h"
-
 extern const char kSource_websetting_api[];
 
 common::Extension* CreateExtension() {
-  WebSettingExtension* e = new WebSettingExtension();
-
-  if (e->current_app()->app_id().empty()) {
-    LoggerE("Got invalid application ID.");
-    delete e;
-    return nullptr;
-  }
-
-  return e;
+  return new WebSettingExtension();
 }
 
 WebSettingExtension::WebSettingExtension() {
-  std::string app_id = GetRuntimeVariable("app_id", 64);
-
-  LoggerD("app_id: %s", app_id.c_str());
-
-  current_app_.reset(new WebSetting(app_id));
   SetExtensionName("tizen.websetting");
   SetJavaScriptAPI(kSource_websetting_api);
 }
@@ -38,5 +18,5 @@ WebSettingExtension::WebSettingExtension() {
 WebSettingExtension::~WebSettingExtension() {}
 
 common::Instance* WebSettingExtension::CreateInstance() {
-  return new extension::websetting::WebSettingInstance(this);
+  return new common::ParsedInstance();
 }
index 96c28e6..ab5628d 100644 (file)
@@ -5,22 +5,15 @@
 #ifndef WEBSETTING_WEBSETTING_EXTENSION_H_
 #define WEBSETTING_WEBSETTING_EXTENSION_H_
 
-#include <memory>
-#include <string>
 #include "common/extension.h"
-#include "websetting/websetting.h"
 
 class WebSettingExtension : public common::Extension {
  public:
   WebSettingExtension();
   virtual ~WebSettingExtension();
 
-  WebSetting* current_app() { return current_app_.get(); }
-
  private:
   virtual common::Instance* CreateInstance();
-
-  std::unique_ptr<WebSetting> current_app_;
 };
 
 #endif  // WEBSETTING_WEBSETTING_EXTENSION_H_
diff --git a/src/websetting/websetting_instance.cc b/src/websetting/websetting_instance.cc
deleted file mode 100644 (file)
index 753d708..0000000
+++ /dev/null
@@ -1,124 +0,0 @@
-// Copyright 2015 Samsung Electronics Co, Ltd. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "websetting/websetting_instance.h"
-
-#include <string>
-#include <memory>
-
-#include "common/logger.h"
-#include "common/picojson.h"
-#include "common/task-queue.h"
-#include "common/scope_exit.h"
-
-namespace {
-const char kWrtServiceName[] = "wrt-service";
-}  // namespace
-
-namespace extension {
-namespace websetting {
-
-using namespace common;
-
-typedef picojson::value JsonValue;
-typedef picojson::object JsonObject;
-typedef picojson::array JsonArray;
-typedef std::string JsonString;
-
-WebSettingInstance::WebSettingInstance(WebSettingExtension* extension)
-    : extension_(extension) {
-  using std::placeholders::_1;
-  using std::placeholders::_2;
-
-  #define REGISTER_ASYNC(c, x) \
-      RegisterSyncHandler(c, std::bind(&WebSettingInstance::x, this, _1, _2));
-
-  REGISTER_ASYNC("WebSettingManager_setUserAgentString",
-                 WebSettingManagerSetUserAgentString);
-  REGISTER_ASYNC("WebSettingManager_removeAllCookies",
-                 WebSettingManagerRemoveAllCookies);
-
-  #undef REGISTER_ASYNC
-}
-
-WebSettingInstance::~WebSettingInstance() {}
-
-void WebSettingInstance::WebSettingManagerSetUserAgentString(
-    const picojson::value& args, picojson::object& out) {
-  LoggerD("Entered");
-
-  const double callback_id = args.get("callbackId").get<double>();
-  auto get = [=](const std::shared_ptr<JsonValue>& response) -> void {
-    const char* runtime_name =
-        common::GetCurrentExtension()->GetRuntimeVariable("runtime_name", 64).c_str();
-    LoggerD("runtime_name: %s", runtime_name);
-    if (strcmp(runtime_name, kWrtServiceName) == 0) {
-      ReportError(
-          PlatformResult(ErrorCode::NOT_SUPPORTED_ERR, "Not Implemented"),
-          &response->get<picojson::object>());
-      return;
-    }
-
-    std::string userAgent = args.get("userAgentStr").to_str();
-    const auto& result = extension_->current_app()->SetUserAgentString(userAgent);
-
-    if (result) {
-      ReportSuccess(response->get<picojson::object>());
-    } else {
-      ReportError(result, &response->get<picojson::object>());
-    }
-  };
-
-  auto get_response =
-      [callback_id, this](const std::shared_ptr<JsonValue>& response) -> void {
-    picojson::object& obj = response->get<picojson::object>();
-    obj.insert(std::make_pair("callbackId", picojson::value(callback_id)));
-    LoggerD("callback is %s", response->serialize().c_str());
-    PostMessage(response->serialize().c_str());
-  };
-
-  common::TaskQueue::GetInstance().Queue<JsonValue>(
-      get, get_response,
-      std::shared_ptr<JsonValue>(new JsonValue(JsonObject())));
-}
-
-void WebSettingInstance::WebSettingManagerRemoveAllCookies(
-    const picojson::value& args, picojson::object& out) {
-  LoggerD("Entered");
-
-  const double callback_id = args.get("callbackId").get<double>();
-  auto get = [=](const std::shared_ptr<JsonValue>& response) -> void {
-    const char* runtime_name =
-        common::GetCurrentExtension()->GetRuntimeVariable("runtime_name", 64).c_str();
-    LoggerD("runtime_name: %s", runtime_name);
-    if (strcmp(runtime_name, kWrtServiceName) == 0) {
-      ReportError(
-          PlatformResult(ErrorCode::NOT_SUPPORTED_ERR, "Not Implemented"),
-          &response->get<picojson::object>());
-      return;
-    }
-
-    const auto& result = extension_->current_app()->RemoveAllCookies();
-    if (result) {
-      ReportSuccess(response->get<picojson::object>());
-    } else {
-      ReportError(result, &response->get<picojson::object>());
-    }
-  };
-
-  auto get_response =
-      [callback_id, this](const std::shared_ptr<JsonValue>& response) -> void {
-    picojson::object& obj = response->get<picojson::object>();
-    obj.insert(std::make_pair("callbackId", picojson::value(callback_id)));
-    LoggerD("callback is %s", response->serialize().c_str());
-    PostMessage(response->serialize().c_str());
-  };
-
-  common::TaskQueue::GetInstance().Queue<JsonValue>(
-      get, get_response,
-      std::shared_ptr<JsonValue>(new JsonValue(JsonObject())));
-}
-
-}  // namespace websetting
-}  // namespace extension
diff --git a/src/websetting/websetting_instance.h b/src/websetting/websetting_instance.h
deleted file mode 100644 (file)
index 86f39f9..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright 2015 Samsung Electronics Co, Ltd. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef WEBSETTING_WEBSETTING_INSTANCE_H_
-#define WEBSETTING_WEBSETTING_INSTANCE_H_
-
-#include "common/extension.h"
-#include "common/picojson.h"
-#include "tizen/tizen.h"
-
-#include "websetting/websetting_extension.h"
-
-namespace extension {
-namespace websetting {
-
-class WebSettingInstance : public common::ParsedInstance {
- public:
-  explicit WebSettingInstance(WebSettingExtension* extension);
-  virtual ~WebSettingInstance();
-
- private:
-  void WebSettingManagerSetUserAgentString(const picojson::value& args,
-                                           picojson::object& out);
-  void WebSettingManagerRemoveAllCookies(const picojson::value& args,
-                                         picojson::object& out);
-
-  WebSettingExtension* extension_;
-};
-
-}  // namespace websetting
-}  // namespace extension
-
-#endif  // WEBSETTING_WEBSETTING_INSTANCE_H_