| Index: content/renderer/browser_plugin/browser_plugin_compositing_filter.cc
|
| diff --git a/content/renderer/browser_plugin/browser_plugin_compositing_filter.cc b/content/renderer/browser_plugin/browser_plugin_compositing_filter.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..25dc2f0d06eca1de2919d2768e4cfed594eaea1a
|
| --- /dev/null
|
| +++ b/content/renderer/browser_plugin/browser_plugin_compositing_filter.cc
|
| @@ -0,0 +1,47 @@
|
| +// Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#include "content/common/browser_plugin_messages.h"
|
| +#include "content/renderer/browser_plugin/browser_plugin_compositing_filter.h"
|
| +
|
| +namespace content {
|
| +
|
| +BrowserPluginCompositingFilter::BrowserPluginCompositingFilter(
|
| + base::TaskRunner* target_task_runner,
|
| + int instance_id,
|
| + const Handler& handler)
|
| + : target_task_runner_(target_task_runner),
|
| + instance_id_(instance_id),
|
| + handler_(handler){
|
| +
|
| + DCHECK(target_task_runner_);
|
| + message_ids_to_filter_.insert(BrowserPluginMsg_BuffersSwapped::ID);
|
| + message_ids_to_filter_.insert(BrowserPluginMsg_SurfaceResize::ID);
|
| +}
|
| +
|
| +int BrowserPluginCompositingFilter::GetPluginInstanceID(
|
| + const IPC::Message& message) {
|
| + int instance_id;
|
| + DCHECK(!message.is_sync());
|
| + PickleIterator iter(message);
|
| + bool success = iter.ReadInt(&instance_id);
|
| + DCHECK(success);
|
| + return instance_id;
|
| +}
|
| +
|
| +bool BrowserPluginCompositingFilter::OnMessageReceived(
|
| + const IPC::Message& message) {
|
| + if (message_ids_to_filter_.find(message.type()) ==
|
| + message_ids_to_filter_.end() ||
|
| + GetPluginInstanceID(message) != instance_id_)
|
| + return false;
|
| +
|
| + target_task_runner_->PostTask(FROM_HERE, base::Bind(handler_, message));
|
| + return true;
|
| +}
|
| +
|
| +BrowserPluginCompositingFilter::~BrowserPluginCompositingFilter() {
|
| +}
|
| +
|
| +} // namespace IPC
|
|
|