Index: content/child/blink_platform_impl.cc |
diff --git a/content/child/blink_platform_impl.cc b/content/child/blink_platform_impl.cc |
index 1874a5b63552fb688c5c2b04c5466cecf4b109d9..8fc0aac2a2bece8b0e13e1c2d34b0f41de9ce2a7 100644 |
--- a/content/child/blink_platform_impl.cc |
+++ b/content/child/blink_platform_impl.cc |
@@ -35,6 +35,8 @@ |
#include "content/child/navigator_connect/navigator_connect_provider.h" |
#include "content/child/notifications/notification_dispatcher.h" |
#include "content/child/notifications/notification_manager.h" |
+#include "content/child/permissions/permission_manager.h" |
+#include "content/child/permissions/permission_manager_thread_proxy.h" |
#include "content/child/push_messaging/push_dispatcher.h" |
#include "content/child/push_messaging/push_provider.h" |
#include "content/child/thread_safe_sender.h" |
@@ -442,6 +444,8 @@ void BlinkPlatformImpl::InternalInit() { |
notification_dispatcher_ = |
ChildThreadImpl::current()->notification_dispatcher(); |
push_dispatcher_ = ChildThreadImpl::current()->push_dispatcher(); |
+ permission_client_.reset(new PermissionManager( |
+ *ChildThreadImpl::current()->service_registry())); |
} |
if (main_thread_task_runner_.get()) { |
@@ -1023,13 +1027,10 @@ blink::WebGestureCurve* BlinkPlatformImpl::createFlingAnimationCurve( |
blink::WebGestureDevice device_source, |
const blink::WebFloatPoint& velocity, |
const blink::WebSize& cumulative_scroll) { |
- bool is_main_thread = |
- main_thread_task_runner_.get() && |
- main_thread_task_runner_->BelongsToCurrentThread(); |
return WebGestureCurveImpl::CreateFromDefaultPlatformCurve( |
gfx::Vector2dF(velocity.x, velocity.y), |
gfx::Vector2dF(cumulative_scroll.width, cumulative_scroll.height), |
- is_main_thread).release(); |
+ IsMainThread()).release(); |
} |
void BlinkPlatformImpl::didStartWorkerRunLoop() { |
@@ -1082,6 +1083,17 @@ BlinkPlatformImpl::navigatorConnectProvider() { |
thread_safe_sender_.get(), main_thread_task_runner_); |
} |
+blink::WebPermissionClient* BlinkPlatformImpl::permissionClient() { |
+ if (!permission_client_.get()) |
+ return nullptr; |
+ |
+ if (IsMainThread()) |
+ return permission_client_.get(); |
+ |
+ return PermissionManagerThreadProxy::GetThreadInstance( |
+ main_thread_task_runner_.get(), permission_client_.get()); |
+} |
+ |
WebThemeEngine* BlinkPlatformImpl::themeEngine() { |
return &native_theme_engine_; |
} |
@@ -1234,6 +1246,11 @@ BlinkPlatformImpl::MainTaskRunnerForCurrentThread() { |
} |
} |
+bool BlinkPlatformImpl::IsMainThread() const { |
+ return main_thread_task_runner_.get() && |
+ main_thread_task_runner_->BelongsToCurrentThread(); |
+} |
+ |
WebString BlinkPlatformImpl::domCodeStringFromEnum(int dom_code) { |
return WebString::fromUTF8(ui::KeycodeConverter::DomCodeToCodeString( |
static_cast<ui::DomCode>(dom_code))); |