| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "components/test_runner/mock_screen_orientation_client.h" | 5 #include "components/test_runner/mock_screen_orientation_client.h" |
| 6 | 6 |
| 7 #include <memory> |
| 8 |
| 7 #include "base/bind.h" | 9 #include "base/bind.h" |
| 8 #include "base/logging.h" | 10 #include "base/logging.h" |
| 9 #include "base/single_thread_task_runner.h" | 11 #include "base/single_thread_task_runner.h" |
| 10 #include "base/threading/thread_task_runner_handle.h" | 12 #include "base/threading/thread_task_runner_handle.h" |
| 11 #include "third_party/WebKit/public/web/WebLocalFrame.h" | 13 #include "third_party/WebKit/public/web/WebLocalFrame.h" |
| 12 | 14 |
| 13 namespace test_runner { | 15 namespace test_runner { |
| 14 | 16 |
| 15 MockScreenOrientationClient::MockScreenOrientationClient() | 17 MockScreenOrientationClient::MockScreenOrientationClient() |
| 16 : main_frame_(NULL), | 18 : main_frame_(NULL), |
| (...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 108 return current_lock_ == | 110 return current_lock_ == |
| 109 blink::WebScreenOrientationLockLandscapeSecondary || | 111 blink::WebScreenOrientationLockLandscapeSecondary || |
| 110 current_lock_ == blink::WebScreenOrientationLockLandscape; | 112 current_lock_ == blink::WebScreenOrientationLockLandscape; |
| 111 default: | 113 default: |
| 112 return false; | 114 return false; |
| 113 } | 115 } |
| 114 } | 116 } |
| 115 | 117 |
| 116 void MockScreenOrientationClient::lockOrientation( | 118 void MockScreenOrientationClient::lockOrientation( |
| 117 blink::WebScreenOrientationLockType orientation, | 119 blink::WebScreenOrientationLockType orientation, |
| 118 blink::WebLockOrientationCallback* callback) { | 120 std::unique_ptr<blink::WebLockOrientationCallback> callback) { |
| 119 base::ThreadTaskRunnerHandle::Get()->PostTask( | 121 base::ThreadTaskRunnerHandle::Get()->PostTask( |
| 120 FROM_HERE, base::Bind(&MockScreenOrientationClient::UpdateLockSync, | 122 FROM_HERE, |
| 121 base::Unretained(this), orientation, callback)); | 123 base::Bind(&MockScreenOrientationClient::UpdateLockSync, |
| 124 base::Unretained(this), orientation, base::Passed(&callback))); |
| 122 } | 125 } |
| 123 | 126 |
| 124 void MockScreenOrientationClient::unlockOrientation() { | 127 void MockScreenOrientationClient::unlockOrientation() { |
| 125 base::ThreadTaskRunnerHandle::Get()->PostTask( | 128 base::ThreadTaskRunnerHandle::Get()->PostTask( |
| 126 FROM_HERE, base::Bind(&MockScreenOrientationClient::ResetLockSync, | 129 FROM_HERE, base::Bind(&MockScreenOrientationClient::ResetLockSync, |
| 127 base::Unretained(this))); | 130 base::Unretained(this))); |
| 128 } | 131 } |
| 129 | 132 |
| 130 void MockScreenOrientationClient::UpdateLockSync( | 133 void MockScreenOrientationClient::UpdateLockSync( |
| 131 blink::WebScreenOrientationLockType lock, | 134 blink::WebScreenOrientationLockType lock, |
| 132 blink::WebLockOrientationCallback* callback) { | 135 std::unique_ptr<blink::WebLockOrientationCallback> callback) { |
| 133 DCHECK(lock != blink::WebScreenOrientationLockDefault); | 136 DCHECK(lock != blink::WebScreenOrientationLockDefault); |
| 134 current_lock_ = lock; | 137 current_lock_ = lock; |
| 135 if (!IsOrientationAllowedByCurrentLock(current_orientation_)) | 138 if (!IsOrientationAllowedByCurrentLock(current_orientation_)) |
| 136 UpdateScreenOrientation(SuitableOrientationForCurrentLock()); | 139 UpdateScreenOrientation(SuitableOrientationForCurrentLock()); |
| 137 callback->onSuccess(); | 140 callback->onSuccess(); |
| 138 delete callback; | |
| 139 } | 141 } |
| 140 | 142 |
| 141 void MockScreenOrientationClient::ResetLockSync() { | 143 void MockScreenOrientationClient::ResetLockSync() { |
| 142 bool will_screen_orientation_need_updating = | 144 bool will_screen_orientation_need_updating = |
| 143 !IsOrientationAllowedByCurrentLock(device_orientation_); | 145 !IsOrientationAllowedByCurrentLock(device_orientation_); |
| 144 current_lock_ = blink::WebScreenOrientationLockDefault; | 146 current_lock_ = blink::WebScreenOrientationLockDefault; |
| 145 if (will_screen_orientation_need_updating) | 147 if (will_screen_orientation_need_updating) |
| 146 UpdateScreenOrientation(device_orientation_); | 148 UpdateScreenOrientation(device_orientation_); |
| 147 } | 149 } |
| 148 | 150 |
| 149 blink::WebScreenOrientationType | 151 blink::WebScreenOrientationType |
| 150 MockScreenOrientationClient::SuitableOrientationForCurrentLock() { | 152 MockScreenOrientationClient::SuitableOrientationForCurrentLock() { |
| 151 switch (current_lock_) { | 153 switch (current_lock_) { |
| 152 case blink::WebScreenOrientationLockPortraitSecondary: | 154 case blink::WebScreenOrientationLockPortraitSecondary: |
| 153 return blink::WebScreenOrientationPortraitSecondary; | 155 return blink::WebScreenOrientationPortraitSecondary; |
| 154 case blink::WebScreenOrientationLockLandscapePrimary: | 156 case blink::WebScreenOrientationLockLandscapePrimary: |
| 155 case blink::WebScreenOrientationLockLandscape: | 157 case blink::WebScreenOrientationLockLandscape: |
| 156 return blink::WebScreenOrientationLandscapePrimary; | 158 return blink::WebScreenOrientationLandscapePrimary; |
| 157 case blink::WebScreenOrientationLockLandscapeSecondary: | 159 case blink::WebScreenOrientationLockLandscapeSecondary: |
| 158 return blink::WebScreenOrientationLandscapePrimary; | 160 return blink::WebScreenOrientationLandscapePrimary; |
| 159 default: | 161 default: |
| 160 return blink::WebScreenOrientationPortraitPrimary; | 162 return blink::WebScreenOrientationPortraitPrimary; |
| 161 } | 163 } |
| 162 } | 164 } |
| 163 | 165 |
| 164 } // namespace test_runner | 166 } // namespace test_runner |
| OLD | NEW |