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 #include "config.h" 6 #include "modules/screen_orientation/LockOrientationCallback.h" 7 8 #include "bindings/core/v8/ScriptPromiseResolver.h" 9 #include "core/dom/DOMException.h" 10 #include "core/dom/ExceptionCode.h" 11 #include "modules/screen_orientation/ScreenOrientation.h" 12 13 namespace blink { 14 15 LockOrientationCallback::LockOrientationCallback(PassRefPtr<ScriptPromiseResolver> resolver) 16 : m_resolver(resolver) 17 { 18 } 19 20 LockOrientationCallback::~LockOrientationCallback() 21 { 22 } 23 24 void LockOrientationCallback::onSuccess() 25 { 26 m_resolver->resolve(); 27 } 28 29 void LockOrientationCallback::onError(WebLockOrientationError error) 30 { 31 ExceptionCode code = 0; 32 String msg = ""; 33 34 switch (error) { 35 case WebLockOrientationErrorNotAvailable: 36 code = NotSupportedError; 37 msg = "lockOrientation() is not available on this device."; 38 break; 39 case WebLockOrientationErrorFullScreenRequired: 40 code = SecurityError; 41 msg = "The page needs to be fullscreen in order to call lockOrientation()."; 42 break; 43 case WebLockOrientationErrorCanceled: 44 code = AbortError; 45 msg = "A call to lockOrientation() or unlockOrientation() canceled this call."; 46 break; 47 } 48 49 m_resolver->reject(DOMException::create(code, msg)); 50 } 51 52 } // namespace blink 53