Chromium Code Reviews| OLD | NEW | 
|---|---|
| 1 // Copyright (c) 2014 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 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 "base/run_loop.h" | 5 #include "base/run_loop.h" | 
| 6 #include "base/synchronization/waitable_event.h" | 6 #include "base/synchronization/waitable_event.h" | 
| 7 #include "base/test/test_simple_task_runner.h" | 7 #include "base/test/test_simple_task_runner.h" | 
| 8 #include "content/common/gpu/gpu_channel.h" | 8 #include "content/common/gpu/gpu_channel.h" | 
| 9 #include "content/common/gpu/gpu_channel_manager.h" | 9 #include "content/common/gpu/gpu_channel_manager.h" | 
| 10 #include "content/common/gpu/gpu_messages.h" | 10 #include "content/common/gpu/gpu_messages.h" | 
| (...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 165 scoped_ptr<SimpleGpuClient> simple_client_; | 165 scoped_ptr<SimpleGpuClient> simple_client_; | 
| 166 scoped_ptr<IPC::SimpleServer> simple_server_; | 166 scoped_ptr<IPC::SimpleServer> simple_server_; | 
| 167 | 167 | 
| 168 private: | 168 private: | 
| 169 base::MessageLoop message_loop_; | 169 base::MessageLoop message_loop_; | 
| 170 }; | 170 }; | 
| 171 | 171 | 
| 172 TEST_F(GpuChannelManagerTest, SecureValueStateForwarding) { | 172 TEST_F(GpuChannelManagerTest, SecureValueStateForwarding) { | 
| 173 const int kClientId1 = 111; | 173 const int kClientId1 = 111; | 
| 174 const int kClientId2 = 222; | 174 const int kClientId2 = 222; | 
| 175 ValueState kValueState1; | 175 ValueState value_state1; | 
| 
 
Lei Zhang
2015/03/10 03:36:26
Doesn't ValueState also contain float float_value[
 
 | |
| 176 kValueState1.int_value[0] = 1111; | 176 value_state1.int_value[0] = 1111; | 
| 177 ValueState kValueState2; | 177 value_state1.int_value[1] = 0; | 
| 178 kValueState2.int_value[0] = 3333; | 178 value_state1.int_value[2] = 0; | 
| 179 value_state1.int_value[3] = 0; | |
| 180 ValueState value_state2; | |
| 181 value_state2.int_value[0] = 3333; | |
| 182 value_state2.int_value[1] = 0; | |
| 183 value_state2.int_value[2] = 0; | |
| 184 value_state2.int_value[3] = 0; | |
| 179 | 185 | 
| 180 ASSERT_TRUE(simple_client_->gpu_channel_manager() != NULL); | 186 ASSERT_TRUE(simple_client_->gpu_channel_manager() != NULL); | 
| 181 | 187 | 
| 182 // Initialize gpu channels | 188 // Initialize gpu channels | 
| 183 simple_client_->gpu_channel_manager()->OnMessageReceived( | 189 simple_client_->gpu_channel_manager()->OnMessageReceived( | 
| 184 GpuMsg_EstablishChannel(kClientId1, false, false)); | 190 GpuMsg_EstablishChannel(kClientId1, false, false)); | 
| 185 GpuChannel *channel1 = | 191 GpuChannel *channel1 = | 
| 186 simple_client_->gpu_channel_manager()->LookupChannel(kClientId1); | 192 simple_client_->gpu_channel_manager()->LookupChannel(kClientId1); | 
| 187 simple_client_->gpu_channel_manager()->OnMessageReceived( | 193 simple_client_->gpu_channel_manager()->OnMessageReceived( | 
| 188 GpuMsg_EstablishChannel(kClientId2, false, false)); | 194 GpuMsg_EstablishChannel(kClientId2, false, false)); | 
| 189 GpuChannel *channel2 = | 195 GpuChannel *channel2 = | 
| 190 simple_client_->gpu_channel_manager()->LookupChannel(kClientId2); | 196 simple_client_->gpu_channel_manager()->LookupChannel(kClientId2); | 
| 191 ASSERT_TRUE(channel1 != NULL); | 197 ASSERT_TRUE(channel1 != NULL); | 
| 192 ASSERT_TRUE(channel2 != NULL); | 198 ASSERT_TRUE(channel2 != NULL); | 
| 193 ASSERT_NE(channel1, channel2); | 199 ASSERT_NE(channel1, channel2); | 
| 194 | 200 | 
| 195 // Make sure value states are only accessible by proper channels | 201 // Make sure value states are only accessible by proper channels | 
| 196 simple_client_->gpu_channel_manager()->OnMessageReceived( | 202 simple_client_->gpu_channel_manager()->OnMessageReceived( | 
| 197 GpuMsg_UpdateValueState( | 203 GpuMsg_UpdateValueState( | 
| 198 kClientId1, GL_MOUSE_POSITION_CHROMIUM, kValueState1)); | 204 kClientId1, GL_MOUSE_POSITION_CHROMIUM, value_state1)); | 
| 199 simple_client_->gpu_channel_manager()->OnMessageReceived( | 205 simple_client_->gpu_channel_manager()->OnMessageReceived( | 
| 200 GpuMsg_UpdateValueState( | 206 GpuMsg_UpdateValueState( | 
| 201 kClientId2, GL_MOUSE_POSITION_CHROMIUM, kValueState2)); | 207 kClientId2, GL_MOUSE_POSITION_CHROMIUM, value_state2)); | 
| 202 | 208 | 
| 203 const gpu::ValueStateMap* pending_value_buffer_state1 = | 209 const gpu::ValueStateMap* pending_value_buffer_state1 = | 
| 204 channel1->pending_valuebuffer_state(); | 210 channel1->pending_valuebuffer_state(); | 
| 205 const gpu::ValueStateMap* pending_value_buffer_state2 = | 211 const gpu::ValueStateMap* pending_value_buffer_state2 = | 
| 206 channel2->pending_valuebuffer_state(); | 212 channel2->pending_valuebuffer_state(); | 
| 207 ASSERT_NE(pending_value_buffer_state1, pending_value_buffer_state2); | 213 ASSERT_NE(pending_value_buffer_state1, pending_value_buffer_state2); | 
| 208 | 214 | 
| 209 const ValueState* state1 = | 215 const ValueState* state1 = | 
| 210 pending_value_buffer_state1->GetState(GL_MOUSE_POSITION_CHROMIUM); | 216 pending_value_buffer_state1->GetState(GL_MOUSE_POSITION_CHROMIUM); | 
| 211 const ValueState* state2 = | 217 const ValueState* state2 = | 
| 212 pending_value_buffer_state2->GetState(GL_MOUSE_POSITION_CHROMIUM); | 218 pending_value_buffer_state2->GetState(GL_MOUSE_POSITION_CHROMIUM); | 
| 213 ASSERT_NE(state1, state2); | 219 ASSERT_NE(state1, state2); | 
| 214 | 220 | 
| 215 ASSERT_EQ(state1->int_value[0], kValueState1.int_value[0]); | 221 ASSERT_EQ(state1->int_value[0], value_state1.int_value[0]); | 
| 216 ASSERT_EQ(state2->int_value[0], kValueState2.int_value[0]); | 222 ASSERT_EQ(state2->int_value[0], value_state2.int_value[0]); | 
| 217 ASSERT_NE(state1->int_value[0], state2->int_value[0]); | 223 ASSERT_NE(state1->int_value[0], state2->int_value[0]); | 
| 218 } | 224 } | 
| 219 | 225 | 
| 220 } // namespace content | 226 } // namespace content | 
| OLD | NEW |