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()
{
}
void PermissionCallback::onSuccess(WebPermissionStatus* permissionStatus)
void PermissionCallback::onSuccess(WebPermissionStatus permissionStatus)
{
if (!m_resolver->executionContext() || m_resolver->executionContext()->activeDOMObjectsAreStopped()) {
PermissionStatus::dispose(permissionStatus);
return;
}
m_resolver->resolve(PermissionStatus::take(m_resolver.get(), permissionStatus, m_permissionType));
......
......@@ -6,7 +6,7 @@
#define PermissionCallback_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/WebPermissionType.h"
#include "wtf/Noncopyable.h"
......@@ -19,13 +19,12 @@ class ScriptPromiseResolver;
// that will resolve the underlying promise depending on the result passed to
// the callback. It takes a WebPermissionType in its constructor and will pass
// it to the PermissionStatus.
class PermissionCallback final
: public WebCallbacks<WebPermissionStatus*, void> {
class PermissionCallback final : public WebPermissionCallback {
public:
PermissionCallback(ScriptPromiseResolver*, WebPermissionType);
~PermissionCallback() override;
void onSuccess(WebPermissionStatus*) override;
void onSuccess(WebPermissionStatus) override;
void onError() override;
private:
......
......@@ -17,17 +17,9 @@
namespace blink {
// 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);
delete status;
return permissionStatus;
}
// static
void PermissionStatus::dispose(WebPermissionStatus* status)
{
delete status;
return PermissionStatus::createAndListen(resolver->executionContext(), status, type);
}
PermissionStatus* PermissionStatus::createAndListen(ExecutionContext* executionContext, WebPermissionStatus status, WebPermissionType type)
......
......@@ -29,8 +29,7 @@ class PermissionStatus final
WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(PermissionStatus);
DEFINE_WRAPPERTYPEINFO();
public:
static PermissionStatus* take(ScriptPromiseResolver*, WebPermissionStatus*, WebPermissionType);
static void dispose(WebPermissionStatus*);
static PermissionStatus* take(ScriptPromiseResolver*, WebPermissionStatus, WebPermissionType);
static PermissionStatus* createAndListen(ExecutionContext*, WebPermissionStatus, WebPermissionType);
~PermissionStatus() override;
......
......@@ -18,18 +18,17 @@ namespace blink {
namespace {
class DurableStorageQueryCallbacks final : public WebCallbacks<WebPermissionStatus*, void> {
class DurableStorageQueryCallbacks final : public WebPermissionCallback {
public:
DurableStorageQueryCallbacks(ScriptPromiseResolver* resolver)
: m_resolver(resolver)
{
}
void onSuccess(WebPermissionStatus* rawStatus) override
void onSuccess(WebPermissionStatus status) override
{
OwnPtr<WebPermissionStatus> status = adoptPtr(rawStatus);
String toReturn;
switch (*status) {
switch (status) {
case WebPermissionStatusGranted:
toReturn = "granted";
break;
......@@ -51,17 +50,16 @@ private:
Persistent<ScriptPromiseResolver> m_resolver;
};
class DurableStorageRequestCallbacks final : public WebCallbacks<WebPermissionStatus*, void> {
class DurableStorageRequestCallbacks final : public WebPermissionCallback {
public:
DurableStorageRequestCallbacks(ScriptPromiseResolver* 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
{
......
......@@ -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));
}
......
......@@ -19,7 +19,7 @@ public:
VRGetDevicesCallback(ScriptPromiseResolver*, VRHardwareUnitCollection*);
~VRGetDevicesCallback() override;
void onSuccess(WebVector<WebVRDevice>*) override;
void onSuccess(const WebVector<WebVRDevice>&) override;
void onError() override;
private:
......
......@@ -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;
if (!devices)
return vrDevices;
for (size_t i = 0; i < devices->size(); ++i) {
const WebVRDevice& device = (*devices)[i];
for (const auto& device : devices) {
VRHardwareUnit* hardwareUnit = getHardwareUnitForIndex(device.index);
if (!hardwareUnit) {
hardwareUnit = new VRHardwareUnit(m_controller);
......
......@@ -18,7 +18,7 @@ class VRHardwareUnitCollection final : public GarbageCollected<VRHardwareUnitCol
public:
explicit VRHardwareUnitCollection(VRController*);
VRDeviceVector updateVRHardwareUnits(const WebVector<WebVRDevice>*);
VRDeviceVector updateVRHardwareUnits(const WebVector<WebVRDevice>&);
VRHardwareUnit* getHardwareUnitForIndex(unsigned index);
DECLARE_VIRTUAL_TRACE();
......
......@@ -13,7 +13,15 @@
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>;
class WebPermissionObserver;
......
......@@ -12,7 +12,11 @@
namespace blink {
// 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.
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