IPC_MESSAGE_CONTROL4(WrtMsg_SetWidgetInfo,
- int, // result: widgetHandle
+ std::string, // result: tizen_id
double, // result: scale
std::string, // result: theme
std::string) // result: encodedBundle
return result;
}
-void EWebContext::SendWidgetInfo(int widget_id, double scale, const string &theme, const string &encoded_bundle) {
- WrtWidgetHost::Get()->SetWidgetInfo(widget_id, scale, theme, encoded_bundle);
+void EWebContext::SendWidgetInfo(const std::string& tizen_id, double scale, const string &theme, const string &encoded_bundle) {
+ WrtWidgetHost::Get()->SetWidgetInfo(tizen_id, scale, theme, encoded_bundle);
}
void EWebContext::SendWrtMessage(const Ewk_Wrt_Message_Data& data) {
bool SetFaviconDatabasePath(const char *path);
Evas_Object *AddFaviconObject(const char *uri, Evas *canvas) const;
- void SendWidgetInfo(int widget_id, double scale, const std::string &theme, const std::string &encoded_bundle);
+ void SendWidgetInfo(const std::string& tizen_id, double scale, const std::string &theme, const std::string &encoded_bundle);
void SendWrtMessage(const Ewk_Wrt_Message_Data& message);
void SetMimeOverrideCallback(Ewk_Context_Override_Mime_For_Url_Callback callback,
return impl->AddFaviconObject(uri, canvas);
}
-void Ewk_Context::SendWidgetInfo(int widget_id, double scale, const std::string &theme, const std::string &encoded_bundle) {
- impl->SendWidgetInfo(widget_id, scale, theme, encoded_bundle);
+void Ewk_Context::SendWidgetInfo(const std::string& tizen_id, double scale, const std::string &theme,
+ const std::string &encoded_bundle) {
+ impl->SendWidgetInfo(tizen_id, scale, theme, encoded_bundle);
}
int Ewk_Context::Pixmap() const {
Evas_Object *AddFaviconObject(const char *uri, Evas *canvas) const;
// Widget
- void SendWidgetInfo(int widget_id, double scale, const std::string &theme,
- const std::string &encoded_bundle);
+ void SendWidgetInfo(const std::string& tizen_id, double scale, const std::string &theme,
+ const std::string &encoded_bundle);
//void SendWrtMessage(const Ewk_IPC_Wrt_Message_Data& message);
// Pixmap
}
void ewk_send_widget_info(Ewk_Context *context,
- int widget_handle,
+ const char* tizen_id,
double scale,
const char *theme,
const char *encodedBundle)
EINA_SAFETY_ON_NULL_RETURN(theme);
EINA_SAFETY_ON_NULL_RETURN(encodedBundle);
EINA_SAFETY_ON_NULL_RETURN(context);
- context->SendWidgetInfo(widget_handle, scale, theme, encodedBundle);
+ context->SendWidgetInfo(tizen_id, scale, theme, encodedBundle);
}
#if defined(OS_TIZEN_TV)
*/
EAPI int ewk_context_pixmap_get(Ewk_Context *context);
-EAPI void ewk_send_widget_info(Ewk_Context *context, int widget_handle, double scale, const char *theme, const char *encodedBundle);
+EAPI void ewk_send_widget_info(Ewk_Context *context, const char* tizen_id, double scale, const char *theme, const char *encodedBundle);
/**
* Gets the application cache manager instance for this @a context.
m_databaseAttach(1);
}
-void DynamicPlugin::startSession(int widgetHandle,
+void DynamicPlugin::startSession(const char* tizen_id,
v8::Handle<v8::Context> context,
int routingHandle,
double scaleFactor,
const char* baseURL) {
if (!m_startSession || !m_databaseAttach)
return;
- m_startSession(widgetHandle, context, routingHandle, scaleFactor, encodedBundle, theme, baseURL);
+ m_startSession(tizen_id, context, routingHandle,
+ scaleFactor, encodedBundle,
+ theme, baseURL);
}
-void DynamicPlugin::parseURL(std::string* old_url, std::string* new_url, int widget_id) {
+void DynamicPlugin::parseURL(std::string* old_url, std::string* new_url, const char* tizen_id) {
if (!m_parseURL || !m_databaseAttach)
return;
- m_parseURL(old_url, new_url, widget_id);
+ m_parseURL(old_url, new_url, tizen_id);
}
-void DynamicPlugin::setWidgetInfo(int widgetHandle) {
+void DynamicPlugin::setWidgetInfo(const std::string& tizen_id) {
if (!m_setWidgetInfo)
return;
- m_setWidgetInfo(widgetHandle);
+ m_setWidgetInfo(tizen_id.c_str());
}
DynamicPlugin::~DynamicPlugin() {
class Ewk_Wrt_Message_Data;
-typedef void (*startSessionFun)(int widgetHandle ,
+typedef void (*startSessionFun)(const char* tizen_id,
v8::Handle<v8::Context> context,
int routingHandle,
double scaleFactor,
const Ewk_Wrt_Message_Data& data);
typedef void (*parseUrlFun)(std::string* old_url,
std::string* new_url,
- int widget_id);
-typedef void (*setWidgetInfoFun)(int widgetHandle);
+ const char* tizen_id);
+typedef void (*setWidgetInfoFun)(const char* tizen_id);
typedef void (*databaseAttachFun)(int databaseAttach);
class DynamicPlugin {
public:
- void startSession(int widgetHandle,
+ void startSession(const char* tizen_id,
v8::Handle<v8::Context> context,
int routingHandle,
double scaleFactor,
const char* theme,
const char* baseURL);
- void parseURL(std::string* old_url, std::string* new_url, int widget_id);
- void setWidgetInfo(int widgetHandle);
+ void parseURL(std::string* old_url, std::string* new_url, const char* tizen_id);
+ void setWidgetInfo(const std::string& tizen_id);
void messageReceived(const Ewk_Wrt_Message_Data& data);
~DynamicPlugin();
// dagerous as it expects to be loaded in the render process.
std::string old_url = request()->url().possibly_invalid_spec();
std::string s_new_url;
+ std::string tizen_id = WrtWidgetHost::Get()->TizenId();
DynamicPlugin::instance().parseURL(
- &old_url, &s_new_url, WrtWidgetHost::Get()->WidgetId());
+ &old_url, &s_new_url, tizen_id.c_str());
OnUrlRetrieved(GURL(s_new_url));
} else {
URLRequestFileJob::Start();
WrtWidgetHost::WrtWidgetHost()
: message_filter_(new WrtWidgetHostMessageFilter(this)),
- in_wrt_(false),
- widget_id_(0) {
+ in_wrt_(false) {
}
void WrtWidgetHost::GetUrlForRequest(
callback.Run(GURL());
}
-void WrtWidgetHost::SetWidgetInfo(int widget_id,
+void WrtWidgetHost::SetWidgetInfo(const std::string& tizen_id,
double scale,
const std::string& theme,
const std::string& encoded_bundle) {
// TODO shouldn't it be confirmed by WRT that this is really a launch
// of the widget identified by widget_id?
if (SendToAllRenderers(
- new WrtMsg_SetWidgetInfo(widget_id, scale, theme, encoded_bundle))) {
+ new WrtMsg_SetWidgetInfo(tizen_id, scale, theme, encoded_bundle))) {
// TODO(z.kostrzewa) This should be determined (somehow) on application
// startup. Can it be done via Application Framework/Package Manager?
in_wrt_ = true;
- widget_id_ = widget_id;
+ tizen_id_ = tizen_id;
}
}
return in_wrt_;
}
-int WrtWidgetHost::WidgetId() const {
- return widget_id_;
+const std::string& WrtWidgetHost::TizenId() const {
+ return tizen_id_;
}
void WrtWidgetHost::OnUrlRetrieved(int callback_id, const GURL& url) {
void GetUrlForRequest(net::URLRequest* request,
base::Callback<void(const GURL&)> callback);
- void SetWidgetInfo(int widget_id, double scale, const std::string& theme,
+ void SetWidgetInfo(const std::string& tizen_id, double scale, const std::string& theme,
const std::string& encoded_bundle);
void SendWrtMessage(const Ewk_Wrt_Message_Data& message);
bool InWrt() const;
- int WidgetId() const;
+ const std::string& TizenId() const;
private:
friend class WrtWidgetHostMessageFilter;
base::AtomicSequenceNumber callback_id_generator_;
callbacks_type callbacks_;
bool in_wrt_;
- int widget_id_;
+ std::string tizen_id_;
DISALLOW_COPY_AND_ASSIGN(WrtWidgetHost);
};
};
WrtWidget::WrtWidget()
- : widgetHandle_(-1),
- observer_(new WrtRenderThreadObserver(this)) {
+ : observer_(new WrtRenderThreadObserver(this)) {
}
WrtWidget::~WrtWidget() {
return observer_;
}
-void WrtWidget::SetWidgetInfo(int widgetHandle,
+void WrtWidget::SetWidgetInfo(const std::string& tizen_id,
double scaleFactor,
const std::string& theme,
const std::string& encodedBundle) {
- widgetHandle_ = widgetHandle;
+ tizen_id_ = tizen_id;
scale_ = scaleFactor;
theme_ = theme;
encodedBundle_ = encodedBundle;
- DynamicPlugin::instance().setWidgetInfo(widgetHandle_);
+ DynamicPlugin::instance().setWidgetInfo(tizen_id_);
}
bool WrtWidget::IsWidgetInfoSet() const {
- return widgetHandle_ != -1;
+ return !tizen_id_.empty();
}
void WrtWidget::ParseUrl(const GURL& url, GURL& new_url) {
- if (widgetHandle_ != -1) {
+ if (!tizen_id_.empty()) {
std::string old_url = url.possibly_invalid_spec();
std::string s_new_url;
- DynamicPlugin::instance().parseURL(&old_url, &s_new_url, widgetHandle_);
+ DynamicPlugin::instance().parseURL(&old_url, &s_new_url, tizen_id_.c_str());
if (s_new_url.empty())
new_url = url;
else
void WrtWidget::StartSession(v8::Handle<v8::Context> context,
int routingHandle,
const std::string& baseURL) {
- if (widgetHandle_ != -1 && !context.IsEmpty()) {
- DynamicPlugin::instance().startSession(widgetHandle_,
+ if (!tizen_id_.empty() && !context.IsEmpty()) {
+ DynamicPlugin::instance().startSession(tizen_id_.c_str(),
context,
routingHandle,
scale_,
}
void WrtWidget::MessageReceived(const Ewk_Wrt_Message_Data& data) {
- if (widgetHandle_ != -1)
+ if (!tizen_id_.empty())
DynamicPlugin::instance().messageReceived(data);
}
content::RenderProcessObserver* GetObserver();
- void SetWidgetInfo(int widgetHandle,
+ void SetWidgetInfo(const std::string& tizen_id,
double scaleFactor,
const std::string& theme,
const std::string& encodedBundle);
void StopSession(v8::Handle<v8::Context>);
private:
- int widgetHandle_;
double scale_;
- std::string theme_;
std::string encodedBundle_;
+ std::string theme_;
+ std::string tizen_id_;
WrtRenderThreadObserver* observer_;
};