| Index: content/public/browser/screen_orientation_provider.cc
|
| diff --git a/content/public/browser/screen_orientation_provider.cc b/content/public/browser/screen_orientation_provider.cc
|
| index 35a07eeffde67319a00fca785cc50b72d335372c..3336cdff840ff2a7404c108065e5a070da61964d 100644
|
| --- a/content/public/browser/screen_orientation_provider.cc
|
| +++ b/content/public/browser/screen_orientation_provider.cc
|
| @@ -72,8 +72,13 @@ void ScreenOrientationProvider::LockOrientation(int request_id,
|
| }
|
| }
|
|
|
| - lock_applied_ = true;
|
| - delegate_->Lock(lock_orientation);
|
| + lock_applied_ = delegate_->Lock(web_contents(), lock_orientation);
|
| + if (!lock_applied_) {
|
| + // The delegate was unable to lock, cancel.
|
| + dispatcher_->NotifyLockError(request_id,
|
| + blink::WebLockOrientationErrorCanceled);
|
| + return;
|
| + }
|
|
|
| // If two calls happen close to each other some platforms will ignore the
|
| // first. A successful lock will be once orientation matches the latest
|
| @@ -94,7 +99,7 @@ void ScreenOrientationProvider::UnlockOrientation() {
|
| if (!lock_applied_ || !delegate_)
|
| return;
|
|
|
| - delegate_->Unlock();
|
| + delegate_->Unlock(web_contents());
|
|
|
| lock_applied_ = false;
|
| pending_lock_.reset();
|
|
|