| Index: content/renderer/render_frame_impl.cc | 
| diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc | 
| index c40ca2146f3debc8f399d3907fbc27378a44e69f..3e0f81f291a4f5228efe6f07b5fd33c4ccd7439f 100644 | 
| --- a/content/renderer/render_frame_impl.cc | 
| +++ b/content/renderer/render_frame_impl.cc | 
| @@ -60,6 +60,7 @@ | 
| #include "content/public/renderer/render_frame_observer.h" | 
| #include "content/public/renderer/renderer_ppapi_host.h" | 
| #include "content/renderer/accessibility/renderer_accessibility.h" | 
| +#include "content/renderer/bluetooth/web_bluetooth_impl.h" | 
| #include "content/renderer/browser_plugin/browser_plugin.h" | 
| #include "content/renderer/browser_plugin/browser_plugin_manager.h" | 
| #include "content/renderer/child_frame_compositing_helper.h" | 
| @@ -3803,6 +3804,15 @@ void RenderFrameImpl::unregisterProtocolHandler(const WebString& scheme, | 
| user_gesture)); | 
| } | 
|  | 
| +blink::WebBluetooth* RenderFrameImpl::bluetooth() { | 
| +  if (!bluetooth_) { | 
| +    bluetooth_.reset( | 
| +        new WebBluetoothImpl(ChildThreadImpl::current()->thread_safe_sender())); | 
| +  } | 
| + | 
| +  return bluetooth_.get(); | 
| +} | 
| + | 
| #if defined(ENABLE_WEBVR) | 
| blink::WebVRClient* RenderFrameImpl::webVRClient() { | 
| if (!vr_dispatcher_) | 
|  |