#include "xwalk/runtime/renderer/xwalk_content_renderer_client.h"
+#include "base/command_line.h"
#include "base/strings/utf_string_conversions.h"
#include "components/nacl/renderer/ppb_nacl_private_impl.h"
#include "components/visitedlink/renderer/visitedlink_slave.h"
#include "third_party/WebKit/public/web/WebSecurityPolicy.h"
#include "xwalk/application/common/constants.h"
#include "xwalk/application/renderer/application_native_module.h"
+#include "xwalk/extensions/common/xwalk_extension_switches.h"
#include "xwalk/extensions/renderer/xwalk_js_module.h"
#include "xwalk/runtime/common/xwalk_localized_error.h"
#include "xwalk/runtime/renderer/isolated_file_system.h"
#include "xwalk/runtime/renderer/pepper/pepper_helper.h"
#if defined(OS_ANDROID)
+#include "xwalk/runtime/browser/android/net/url_constants.h"
#include "xwalk/runtime/renderer/android/xwalk_permission_client.h"
#include "xwalk/runtime/renderer/android/xwalk_render_process_observer.h"
#include "xwalk/runtime/renderer/android/xwalk_render_view_ext.h"
// RenderFrameObserver implementation.
virtual void WillReleaseScriptContext(v8::Handle<v8::Context> context,
int world_id) OVERRIDE {
- extension_controller_->WillReleaseScriptContext(
- render_frame()->GetWebFrame(), context);
+ if (extension_controller_)
+ extension_controller_->WillReleaseScriptContext(
+ render_frame()->GetWebFrame(), context);
}
+#if defined(OS_TIZEN)
+ virtual void DidCommitProvisionalLoad(bool is_new_navigation) OVERRIDE {
+ blink::WebFrame* frame = render_frame()->GetWebFrame();
+ GURL url(frame->document().url());
+ if (url.SchemeIs(application::kApplicationScheme)) {
+ blink::WebSecurityOrigin origin = frame->document().securityOrigin();
+ origin.grantLoadLocalResources();
+ }
+ }
+#endif
+
private:
extensions::XWalkExtensionRendererController* extension_controller_;
}
void XWalkContentRendererClient::RenderThreadStarted() {
- extension_controller_.reset(
- new extensions::XWalkExtensionRendererController(this));
+ CommandLine* cmd_line = CommandLine::ForCurrentProcess();
+ if (!cmd_line->HasSwitch(switches::kXWalkDisableExtensions))
+ extension_controller_.reset(
+ new extensions::XWalkExtensionRendererController(this));
blink::WebString application_scheme(
base::ASCIIToUTF16(application::kApplicationScheme));
xwalk_render_process_observer_.reset(new XWalkRenderProcessObserver);
thread->AddObserver(xwalk_render_process_observer_.get());
#if defined(OS_ANDROID)
+ blink::WebString content_scheme(
+ base::ASCIIToUTF16(xwalk::kContentScheme));
+ blink::WebSecurityPolicy::registerURLSchemeAsLocal(content_scheme);
+
visited_link_slave_.reset(new visitedlink::VisitedLinkSlave);
thread->AddObserver(visited_link_slave_.get());
#endif
void XWalkContentRendererClient::DidCreateScriptContext(
blink::WebFrame* frame, v8::Handle<v8::Context> context,
int extension_group, int world_id) {
- extension_controller_->DidCreateScriptContext(frame, context);
+ if (extension_controller_)
+ extension_controller_->DidCreateScriptContext(frame, context);
#if !defined(OS_ANDROID)
xwalk_render_process_observer_->DidCreateScriptContext(
frame, context, extension_group, world_id);