| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "content/renderer/browser_plugin/browser_plugin.h" | 5 #include "content/renderer/browser_plugin/browser_plugin.h" |
| 6 | 6 |
| 7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
| 8 #include "base/json/json_string_value_serializer.h" | 8 #include "base/json/json_string_value_serializer.h" |
| 9 #include "base/message_loop.h" | 9 #include "base/message_loop.h" |
| 10 #include "base/string_number_conversions.h" | 10 #include "base/string_number_conversions.h" |
| (...skipping 400 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 411 } | 411 } |
| 412 | 412 |
| 413 // static | 413 // static |
| 414 bool BrowserPlugin::UsesDamageBuffer( | 414 bool BrowserPlugin::UsesDamageBuffer( |
| 415 const BrowserPluginMsg_UpdateRect_Params& params) { | 415 const BrowserPluginMsg_UpdateRect_Params& params) { |
| 416 return params.damage_buffer_sequence_id != 0 || params.needs_ack; | 416 return params.damage_buffer_sequence_id != 0 || params.needs_ack; |
| 417 } | 417 } |
| 418 | 418 |
| 419 bool BrowserPlugin::UsesPendingDamageBuffer( | 419 bool BrowserPlugin::UsesPendingDamageBuffer( |
| 420 const BrowserPluginMsg_UpdateRect_Params& params) { | 420 const BrowserPluginMsg_UpdateRect_Params& params) { |
| 421 if (!pending_damage_buffer_.get()) | 421 if (!pending_damage_buffer_) |
| 422 return false; | 422 return false; |
| 423 return damage_buffer_sequence_id_ == params.damage_buffer_sequence_id; | 423 return damage_buffer_sequence_id_ == params.damage_buffer_sequence_id; |
| 424 } | 424 } |
| 425 | 425 |
| 426 void BrowserPlugin::SetInstanceID(int instance_id, bool new_guest) { | 426 void BrowserPlugin::SetInstanceID(int instance_id, bool new_guest) { |
| 427 CHECK(instance_id != browser_plugin::kInstanceIDNone); | 427 CHECK(instance_id != browser_plugin::kInstanceIDNone); |
| 428 before_first_navigation_ = false; | 428 before_first_navigation_ = false; |
| 429 instance_id_ = instance_id; | 429 instance_id_ = instance_id; |
| 430 browser_plugin_manager()->AddBrowserPlugin(instance_id, this); | 430 browser_plugin_manager()->AddBrowserPlugin(instance_id, this); |
| 431 | 431 |
| (...skipping 744 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1176 container_ = NULL; | 1176 container_ = NULL; |
| 1177 if (compositing_helper_) | 1177 if (compositing_helper_) |
| 1178 compositing_helper_->OnContainerDestroy(); | 1178 compositing_helper_->OnContainerDestroy(); |
| 1179 // Will be a no-op if the mouse is not currently locked. | 1179 // Will be a no-op if the mouse is not currently locked. |
| 1180 if (render_view_) | 1180 if (render_view_) |
| 1181 render_view_->mouse_lock_dispatcher()->OnLockTargetDestroyed(this); | 1181 render_view_->mouse_lock_dispatcher()->OnLockTargetDestroyed(this); |
| 1182 MessageLoop::current()->DeleteSoon(FROM_HERE, this); | 1182 MessageLoop::current()->DeleteSoon(FROM_HERE, this); |
| 1183 } | 1183 } |
| 1184 | 1184 |
| 1185 NPObject* BrowserPlugin::scriptableObject() { | 1185 NPObject* BrowserPlugin::scriptableObject() { |
| 1186 if (!bindings_.get()) | 1186 if (!bindings_) |
| 1187 return NULL; | 1187 return NULL; |
| 1188 | 1188 |
| 1189 NPObject* browser_plugin_np_object(bindings_->np_object()); | 1189 NPObject* browser_plugin_np_object(bindings_->np_object()); |
| 1190 // The object is expected to be retained before it is returned. | 1190 // The object is expected to be retained before it is returned. |
| 1191 WebKit::WebBindings::retainObject(browser_plugin_np_object); | 1191 WebKit::WebBindings::retainObject(browser_plugin_np_object); |
| 1192 return browser_plugin_np_object; | 1192 return browser_plugin_np_object; |
| 1193 } | 1193 } |
| 1194 | 1194 |
| 1195 bool BrowserPlugin::supportsKeyboardFocus() const { | 1195 bool BrowserPlugin::supportsKeyboardFocus() const { |
| 1196 return true; | 1196 return true; |
| (...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1337 size_t size = | 1337 size_t size = |
| 1338 std::max(sizeof(unsigned int), | 1338 std::max(sizeof(unsigned int), |
| 1339 static_cast<size_t>(view_size.height() * | 1339 static_cast<size_t>(view_size.height() * |
| 1340 stride * | 1340 stride * |
| 1341 GetDeviceScaleFactor() * | 1341 GetDeviceScaleFactor() * |
| 1342 GetDeviceScaleFactor())); | 1342 GetDeviceScaleFactor())); |
| 1343 | 1343 |
| 1344 params->damage_buffer_size = size; | 1344 params->damage_buffer_size = size; |
| 1345 pending_damage_buffer_.reset( | 1345 pending_damage_buffer_.reset( |
| 1346 CreateDamageBuffer(size, ¶ms->damage_buffer_handle)); | 1346 CreateDamageBuffer(size, ¶ms->damage_buffer_handle)); |
| 1347 if (!pending_damage_buffer_.get()) | 1347 if (!pending_damage_buffer_) |
| 1348 NOTREACHED(); | 1348 NOTREACHED(); |
| 1349 params->damage_buffer_sequence_id = ++damage_buffer_sequence_id_; | 1349 params->damage_buffer_sequence_id = ++damage_buffer_sequence_id_; |
| 1350 } | 1350 } |
| 1351 | 1351 |
| 1352 void BrowserPlugin::GetDamageBufferWithSizeParams( | 1352 void BrowserPlugin::GetDamageBufferWithSizeParams( |
| 1353 BrowserPluginHostMsg_AutoSize_Params* auto_size_params, | 1353 BrowserPluginHostMsg_AutoSize_Params* auto_size_params, |
| 1354 BrowserPluginHostMsg_ResizeGuest_Params* resize_guest_params) { | 1354 BrowserPluginHostMsg_ResizeGuest_Params* resize_guest_params) { |
| 1355 if (auto_size_params) | 1355 if (auto_size_params) |
| 1356 PopulateAutoSizeParameters(auto_size_params, GetAutoSizeAttribute()); | 1356 PopulateAutoSizeParameters(auto_size_params, GetAutoSizeAttribute()); |
| 1357 gfx::Size view_size = (auto_size_params && auto_size_params->enable) ? | 1357 gfx::Size view_size = (auto_size_params && auto_size_params->enable) ? |
| 1358 auto_size_params->max_size : gfx::Size(width(), height()); | 1358 auto_size_params->max_size : gfx::Size(width(), height()); |
| 1359 if (view_size.IsEmpty()) | 1359 if (view_size.IsEmpty()) |
| 1360 return; | 1360 return; |
| 1361 resize_ack_received_ = false; | 1361 resize_ack_received_ = false; |
| 1362 PopulateResizeGuestParameters(resize_guest_params, view_size); | 1362 PopulateResizeGuestParameters(resize_guest_params, view_size); |
| 1363 } | 1363 } |
| 1364 | 1364 |
| 1365 #if defined(OS_POSIX) | 1365 #if defined(OS_POSIX) |
| 1366 base::SharedMemory* BrowserPlugin::CreateDamageBuffer( | 1366 base::SharedMemory* BrowserPlugin::CreateDamageBuffer( |
| 1367 const size_t size, | 1367 const size_t size, |
| 1368 base::SharedMemoryHandle* damage_buffer_handle) { | 1368 base::SharedMemoryHandle* damage_buffer_handle) { |
| 1369 scoped_ptr<base::SharedMemory> shared_buf( | 1369 scoped_ptr<base::SharedMemory> shared_buf( |
| 1370 content::RenderThread::Get()->HostAllocateSharedMemoryBuffer( | 1370 content::RenderThread::Get()->HostAllocateSharedMemoryBuffer( |
| 1371 size).release()); | 1371 size).release()); |
| 1372 | 1372 |
| 1373 if (shared_buf.get()) { | 1373 if (shared_buf) { |
| 1374 if (shared_buf->Map(size)) { | 1374 if (shared_buf->Map(size)) { |
| 1375 // Insert the magic word. | 1375 // Insert the magic word. |
| 1376 *static_cast<unsigned int*>(shared_buf->memory()) = 0xdeadbeef; | 1376 *static_cast<unsigned int*>(shared_buf->memory()) = 0xdeadbeef; |
| 1377 shared_buf->ShareToProcess(base::GetCurrentProcessHandle(), | 1377 shared_buf->ShareToProcess(base::GetCurrentProcessHandle(), |
| 1378 damage_buffer_handle); | 1378 damage_buffer_handle); |
| 1379 return shared_buf.release(); | 1379 return shared_buf.release(); |
| 1380 } | 1380 } |
| 1381 } | 1381 } |
| 1382 NOTREACHED(); | 1382 NOTREACHED(); |
| 1383 return NULL; | 1383 return NULL; |
| (...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1536 const WebKit::WebMouseEvent& event) { | 1536 const WebKit::WebMouseEvent& event) { |
| 1537 browser_plugin_manager()->Send( | 1537 browser_plugin_manager()->Send( |
| 1538 new BrowserPluginHostMsg_HandleInputEvent(render_view_routing_id_, | 1538 new BrowserPluginHostMsg_HandleInputEvent(render_view_routing_id_, |
| 1539 instance_id_, | 1539 instance_id_, |
| 1540 plugin_rect_, | 1540 plugin_rect_, |
| 1541 &event)); | 1541 &event)); |
| 1542 return true; | 1542 return true; |
| 1543 } | 1543 } |
| 1544 | 1544 |
| 1545 } // namespace content | 1545 } // namespace content |
| OLD | NEW |