Commit cfff3341 authored by yhirano@chromium.org's avatar yhirano@chromium.org

[VR, Permission] Use appopriate type parameters for WebCallbacks (1/3)

 - WebPermissionStatus* (ownership transferred)
  => WebPermissionStatus
 - WebVector<WebVRDevice>* (ownership not transferred)
  => const WebVector<WebVRDevice>&

1/3: https://codereview.chromium.org/1317243002/
2/3: https://codereview.chromium.org/1309803006/
3/3: https://codereview.chromium.org/1321763002/

BUG=493531

Review URL: https://codereview.chromium.org/1317243002

git-svn-id: svn://svn.chromium.org/blink/trunk@201537 bbb929c8-8fbe-4397-9dbb-9b2b20218538
parent 93b94499
...@@ -21,10 +21,9 @@ PermissionCallback::~PermissionCallback() ...@@ -21,10 +21,9 @@ PermissionCallback::~PermissionCallback()
{ {
} }
void PermissionCallback::onSuccess(WebPermissionStatus* permissionStatus) void PermissionCallback::onSuccess(WebPermissionStatus permissionStatus)
{ {
if (!m_resolver->executionContext() || m_resolver->executionContext()->activeDOMObjectsAreStopped()) { if (!m_resolver->executionContext() || m_resolver->executionContext()->activeDOMObjectsAreStopped()) {
PermissionStatus::dispose(permissionStatus);
return; return;
} }
m_resolver->resolve(PermissionStatus::take(m_resolver.get(), permissionStatus, m_permissionType)); m_resolver->resolve(PermissionStatus::take(m_resolver.get(), permissionStatus, m_permissionType));
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
#define PermissionCallback_h #define PermissionCallback_h
#include "platform/heap/Handle.h" #include "platform/heap/Handle.h"
#include "public/platform/WebCallbacks.h" #include "public/platform/modules/permissions/WebPermissionClient.h"
#include "public/platform/modules/permissions/WebPermissionStatus.h" #include "public/platform/modules/permissions/WebPermissionStatus.h"
#include "public/platform/modules/permissions/WebPermissionType.h" #include "public/platform/modules/permissions/WebPermissionType.h"
#include "wtf/Noncopyable.h" #include "wtf/Noncopyable.h"
...@@ -19,13 +19,12 @@ class ScriptPromiseResolver; ...@@ -19,13 +19,12 @@ class ScriptPromiseResolver;
// that will resolve the underlying promise depending on the result passed to // that will resolve the underlying promise depending on the result passed to
// the callback. It takes a WebPermissionType in its constructor and will pass // the callback. It takes a WebPermissionType in its constructor and will pass
// it to the PermissionStatus. // it to the PermissionStatus.
class PermissionCallback final class PermissionCallback final : public WebPermissionCallback {
: public WebCallbacks<WebPermissionStatus*, void> {
public: public:
PermissionCallback(ScriptPromiseResolver*, WebPermissionType); PermissionCallback(ScriptPromiseResolver*, WebPermissionType);
~PermissionCallback() override; ~PermissionCallback() override;
void onSuccess(WebPermissionStatus*) override; void onSuccess(WebPermissionStatus) override;
void onError() override; void onError() override;
private: private:
......
...@@ -17,17 +17,9 @@ ...@@ -17,17 +17,9 @@
namespace blink { namespace blink {
// static // static
PermissionStatus* PermissionStatus::take(ScriptPromiseResolver* resolver, WebPermissionStatus* status, WebPermissionType type) PermissionStatus* PermissionStatus::take(ScriptPromiseResolver* resolver, WebPermissionStatus status, WebPermissionType type)
{ {
PermissionStatus* permissionStatus = PermissionStatus::createAndListen(resolver->executionContext(), *status, type); return PermissionStatus::createAndListen(resolver->executionContext(), status, type);
delete status;
return permissionStatus;
}
// static
void PermissionStatus::dispose(WebPermissionStatus* status)
{
delete status;
} }
PermissionStatus* PermissionStatus::createAndListen(ExecutionContext* executionContext, WebPermissionStatus status, WebPermissionType type) PermissionStatus* PermissionStatus::createAndListen(ExecutionContext* executionContext, WebPermissionStatus status, WebPermissionType type)
......
...@@ -29,8 +29,7 @@ class PermissionStatus final ...@@ -29,8 +29,7 @@ class PermissionStatus final
WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(PermissionStatus); WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(PermissionStatus);
DEFINE_WRAPPERTYPEINFO(); DEFINE_WRAPPERTYPEINFO();
public: public:
static PermissionStatus* take(ScriptPromiseResolver*, WebPermissionStatus*, WebPermissionType); static PermissionStatus* take(ScriptPromiseResolver*, WebPermissionStatus, WebPermissionType);
static void dispose(WebPermissionStatus*);
static PermissionStatus* createAndListen(ExecutionContext*, WebPermissionStatus, WebPermissionType); static PermissionStatus* createAndListen(ExecutionContext*, WebPermissionStatus, WebPermissionType);
~PermissionStatus() override; ~PermissionStatus() override;
......
...@@ -18,18 +18,17 @@ namespace blink { ...@@ -18,18 +18,17 @@ namespace blink {
namespace { namespace {
class DurableStorageQueryCallbacks final : public WebCallbacks<WebPermissionStatus*, void> { class DurableStorageQueryCallbacks final : public WebPermissionCallback {
public: public:
DurableStorageQueryCallbacks(ScriptPromiseResolver* resolver) DurableStorageQueryCallbacks(ScriptPromiseResolver* resolver)
: m_resolver(resolver) : m_resolver(resolver)
{ {
} }
void onSuccess(WebPermissionStatus* rawStatus) override void onSuccess(WebPermissionStatus status) override
{ {
OwnPtr<WebPermissionStatus> status = adoptPtr(rawStatus);
String toReturn; String toReturn;
switch (*status) { switch (status) {
case WebPermissionStatusGranted: case WebPermissionStatusGranted:
toReturn = "granted"; toReturn = "granted";
break; break;
...@@ -51,17 +50,16 @@ private: ...@@ -51,17 +50,16 @@ private:
Persistent<ScriptPromiseResolver> m_resolver; Persistent<ScriptPromiseResolver> m_resolver;
}; };
class DurableStorageRequestCallbacks final : public WebCallbacks<WebPermissionStatus*, void> { class DurableStorageRequestCallbacks final : public WebPermissionCallback {
public: public:
DurableStorageRequestCallbacks(ScriptPromiseResolver* resolver) DurableStorageRequestCallbacks(ScriptPromiseResolver* resolver)
: m_resolver(resolver) : m_resolver(resolver)
{ {
} }
void onSuccess(WebPermissionStatus* rawStatus) override void onSuccess(WebPermissionStatus status) override
{ {
OwnPtr<WebPermissionStatus> status = adoptPtr(rawStatus); m_resolver->resolve(status == WebPermissionStatusGranted);
m_resolver->resolve(*status == WebPermissionStatusGranted);
} }
void onError() override void onError() override
{ {
......
...@@ -20,7 +20,7 @@ VRGetDevicesCallback::~VRGetDevicesCallback() ...@@ -20,7 +20,7 @@ VRGetDevicesCallback::~VRGetDevicesCallback()
{ {
} }
void VRGetDevicesCallback::onSuccess(WebVector<WebVRDevice>* devices) void VRGetDevicesCallback::onSuccess(const WebVector<WebVRDevice>& devices)
{ {
m_resolver->resolve(m_hardwareUnits->updateVRHardwareUnits(devices)); m_resolver->resolve(m_hardwareUnits->updateVRHardwareUnits(devices));
} }
......
...@@ -19,7 +19,7 @@ public: ...@@ -19,7 +19,7 @@ public:
VRGetDevicesCallback(ScriptPromiseResolver*, VRHardwareUnitCollection*); VRGetDevicesCallback(ScriptPromiseResolver*, VRHardwareUnitCollection*);
~VRGetDevicesCallback() override; ~VRGetDevicesCallback() override;
void onSuccess(WebVector<WebVRDevice>*) override; void onSuccess(const WebVector<WebVRDevice>&) override;
void onError() override; void onError() override;
private: private:
......
...@@ -27,16 +27,11 @@ VRHardwareUnitCollection::VRHardwareUnitCollection(VRController* controller) ...@@ -27,16 +27,11 @@ VRHardwareUnitCollection::VRHardwareUnitCollection(VRController* controller)
{ {
} }
HeapVector<Member<VRDevice>> VRHardwareUnitCollection::updateVRHardwareUnits(const WebVector<WebVRDevice>* devices) HeapVector<Member<VRDevice>> VRHardwareUnitCollection::updateVRHardwareUnits(const WebVector<WebVRDevice>& devices)
{ {
VRDeviceVector vrDevices; VRDeviceVector vrDevices;
if (!devices) for (const auto& device : devices) {
return vrDevices;
for (size_t i = 0; i < devices->size(); ++i) {
const WebVRDevice& device = (*devices)[i];
VRHardwareUnit* hardwareUnit = getHardwareUnitForIndex(device.index); VRHardwareUnit* hardwareUnit = getHardwareUnitForIndex(device.index);
if (!hardwareUnit) { if (!hardwareUnit) {
hardwareUnit = new VRHardwareUnit(m_controller); hardwareUnit = new VRHardwareUnit(m_controller);
......
...@@ -18,7 +18,7 @@ class VRHardwareUnitCollection final : public GarbageCollected<VRHardwareUnitCol ...@@ -18,7 +18,7 @@ class VRHardwareUnitCollection final : public GarbageCollected<VRHardwareUnitCol
public: public:
explicit VRHardwareUnitCollection(VRController*); explicit VRHardwareUnitCollection(VRController*);
VRDeviceVector updateVRHardwareUnits(const WebVector<WebVRDevice>*); VRDeviceVector updateVRHardwareUnits(const WebVector<WebVRDevice>&);
VRHardwareUnit* getHardwareUnitForIndex(unsigned index); VRHardwareUnit* getHardwareUnitForIndex(unsigned index);
DECLARE_VIRTUAL_TRACE(); DECLARE_VIRTUAL_TRACE();
......
...@@ -13,7 +13,15 @@ ...@@ -13,7 +13,15 @@
namespace blink { namespace blink {
using WebPermissionCallback = WebCallbacks<WebPermissionStatus*, void>; class WebPermissionCallback : public WebCallbacks<WebPermissionStatus, void> {
public:
virtual void onSuccess(WebPermissionStatus) = 0;
void onSuccess(WebPermissionStatus* r)
{
onSuccess(*r);
delete r;
}
};
using WebPermissionsCallback = WebCallbacks<WebPassOwnPtr<WebVector<WebPermissionStatus>>, void>; using WebPermissionsCallback = WebCallbacks<WebPassOwnPtr<WebVector<WebPermissionStatus>>, void>;
class WebPermissionObserver; class WebPermissionObserver;
......
...@@ -12,7 +12,11 @@ ...@@ -12,7 +12,11 @@
namespace blink { namespace blink {
// Success and failure callbacks for getDevices. // Success and failure callbacks for getDevices.
typedef WebCallbacks<WebVector<blink::WebVRDevice>*, void> WebVRGetDevicesCallback; class WebVRGetDevicesCallback : public WebCallbacks<const WebVector<WebVRDevice>&, void> {
public:
virtual void onSuccess(const WebVector<WebVRDevice>&) = 0;
void onSuccess(WebVector<WebVRDevice>* r) { onSuccess(*r); }
};
// Client handling VR device communication for a given WebFrame. // Client handling VR device communication for a given WebFrame.
class WebVRClient { class WebVRClient {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment