1 // Copyright 2014 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef LockOrientationCallback_h 6 #define LockOrientationCallback_h 7 8 #include "public/platform/WebLockOrientationCallback.h" 9 #include "public/platform/WebScreenOrientationType.h" 10 #include "wtf/Noncopyable.h" 11 #include "wtf/PassRefPtr.h" 12 #include "wtf/RefPtr.h" 13 14 namespace WebCore { 15 16 class ScriptPromiseResolverWithContext; 17 18 // LockOrientationCallback is an implementation of WebLockOrientationCallback 19 // that will resolve the underlying promise depending on the result passed to 20 // the callback. 21 class LockOrientationCallback FINAL : public blink::WebLockOrientationCallback { 22 WTF_MAKE_NONCOPYABLE(LockOrientationCallback); 23 public: 24 explicit LockOrientationCallback(PassRefPtr<ScriptPromiseResolverWithContext>); 25 virtual ~LockOrientationCallback(); 26 27 virtual void onSuccess(unsigned angle, blink::WebScreenOrientationType) OVERRIDE; 28 virtual void onError(ErrorType) OVERRIDE; 29 virtual void onError(blink::WebLockOrientationError) OVERRIDE; 30 31 private: 32 RefPtr<ScriptPromiseResolverWithContext> m_resolver; 33 }; 34 35 } // namespace WebCore 36 37 #endif // LockOrientationCallback_h 38