// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// 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 <vector>
+#include "content/renderer/render_thread_impl.h"
+#include "content/renderer/renderer_webkitplatformsupport_impl.h"
#include "ipc/ipc_message_macros.h"
#include "third_party/WebKit/public/web/WebSecurityPolicy.h"
#include "third_party/WebKit/public/platform/WebString.h"
#include "xwalk/runtime/common/xwalk_common_messages.h"
+#include "xwalk/runtime/common/xwalk_content_client.h"
namespace xwalk {
XWalkRenderProcessObserver::XWalkRenderProcessObserver()
: is_webkit_initialized_(false),
- is_warp_mode_(false) {
+ is_suspended_(false),
+ security_mode_(application::SecurityPolicy::NoSecurity) {
}
XWalkRenderProcessObserver::~XWalkRenderProcessObserver() {
bool handled = true;
IPC_BEGIN_MESSAGE_MAP(XWalkRenderProcessObserver, message)
IPC_MESSAGE_HANDLER(ViewMsg_SetAccessWhiteList, OnSetAccessWhiteList)
- IPC_MESSAGE_HANDLER(ViewMsg_EnableWarpMode, OnEnableWarpMode)
+ IPC_MESSAGE_HANDLER(ViewMsg_EnableSecurityMode, OnEnableSecurityMode)
+ IPC_MESSAGE_HANDLER(ViewMsg_SuspendJSEngine, OnSuspendJSEngine)
+#if defined(OS_TIZEN)
+ IPC_MESSAGE_HANDLER(ViewMsg_UserAgentStringChanged, OnUserAgentChanged)
+#endif
IPC_MESSAGE_UNHANDLED(handled = false)
IPC_END_MESSAGE_MAP()
return handled;
void XWalkRenderProcessObserver::WebKitInitialized() {
is_webkit_initialized_ = true;
-}
-
-void XWalkRenderProcessObserver::OnRenderProcessShutdown() {
- is_webkit_initialized_ = false;
-}
-
-void XWalkRenderProcessObserver::DidCreateScriptContext(
- blink::WebFrame* frame, v8::Handle<v8::Context> context,
- int extension_group, int world_id) {
for (std::vector<AccessWhitelistItem>::iterator it = access_whitelist.begin();
it != access_whitelist.end(); ++it)
AddAccessWhiteListEntry(it->source_, it->dest_, it->allow_subdomains_);
access_whitelist.clear();
}
+void XWalkRenderProcessObserver::OnRenderProcessShutdown() {
+ is_webkit_initialized_ = false;
+}
+
void XWalkRenderProcessObserver::OnSetAccessWhiteList(const GURL& source,
const GURL& dest,
bool allow_subdomains) {
AccessWhitelistItem(source, dest, allow_subdomains));
}
-void XWalkRenderProcessObserver::OnEnableWarpMode() {
- is_warp_mode_ = true;
+void XWalkRenderProcessObserver::OnEnableSecurityMode(
+ const GURL& url, application::SecurityPolicy::SecurityMode mode) {
+ app_url_ = url;
+ security_mode_ = mode;
+}
+
+void XWalkRenderProcessObserver::OnSuspendJSEngine(bool is_suspend) {
+ if (is_suspend == is_suspended_)
+ return;
+ content::RenderThreadImpl* thread = content::RenderThreadImpl::current();
+ thread->EnsureWebKitInitialized();
+ if (is_suspend)
+ thread->webkit_platform_support()->SuspendSharedTimer();
+ else
+ thread->webkit_platform_support()->ResumeSharedTimer();
+ is_suspended_ = is_suspend;
+}
+
+#if defined(OS_TIZEN)
+void XWalkRenderProcessObserver::OnUserAgentChanged(
+ const std::string& userAgentString) {
+ overriden_user_agent_ = userAgentString;
+}
+
+std::string XWalkRenderProcessObserver::GetOverridenUserAgent() const {
+ return overriden_user_agent_;
}
+#endif
} // namespace xwalk