Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(118)

Side by Side Diff: webkit/plugins/npapi/webplugin_delegate_impl_win.cc

Issue 8539023: base::Bind: Conversions in webkit/plugins/npapi. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « webkit/plugins/npapi/webplugin_delegate_impl.h ('k') | webkit/plugins/npapi/webplugin_impl.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 "webkit/plugins/npapi/webplugin_delegate_impl.h" 5 #include "webkit/plugins/npapi/webplugin_delegate_impl.h"
6 6
7 #include <map> 7 #include <map>
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
11 #include "base/bind.h"
12 #include "base/compiler_specific.h"
11 #include "base/file_util.h" 13 #include "base/file_util.h"
12 #include "base/lazy_instance.h" 14 #include "base/lazy_instance.h"
13 #include "base/memory/scoped_ptr.h" 15 #include "base/memory/scoped_ptr.h"
14 #include "base/message_loop.h" 16 #include "base/message_loop.h"
15 #include "base/metrics/stats_counters.h" 17 #include "base/metrics/stats_counters.h"
16 #include "base/string_number_conversions.h" 18 #include "base/string_number_conversions.h"
17 #include "base/string_split.h" 19 #include "base/string_split.h"
18 #include "base/string_util.h" 20 #include "base/string_util.h"
19 #include "base/stringprintf.h" 21 #include "base/stringprintf.h"
20 #include "base/version.h" 22 #include "base/version.h"
(...skipping 296 matching lines...) Expand 10 before | Expand all | Expand 10 after
317 windowed_handle_(NULL), 319 windowed_handle_(NULL),
318 windowed_did_set_window_(false), 320 windowed_did_set_window_(false),
319 plugin_wnd_proc_(NULL), 321 plugin_wnd_proc_(NULL),
320 last_message_(0), 322 last_message_(0),
321 is_calling_wndproc(false), 323 is_calling_wndproc(false),
322 dummy_window_for_activation_(NULL), 324 dummy_window_for_activation_(NULL),
323 parent_proxy_window_(NULL), 325 parent_proxy_window_(NULL),
324 handle_event_message_filter_hook_(NULL), 326 handle_event_message_filter_hook_(NULL),
325 handle_event_pump_messages_event_(NULL), 327 handle_event_pump_messages_event_(NULL),
326 user_gesture_message_posted_(false), 328 user_gesture_message_posted_(false),
327 #pragma warning(suppress: 4355) // can use this 329 ALLOW_THIS_IN_INITIALIZER_LIST(user_gesture_msg_factory_(this)),
328 user_gesture_msg_factory_(this),
329 handle_event_depth_(0), 330 handle_event_depth_(0),
330 mouse_hook_(NULL), 331 mouse_hook_(NULL),
331 first_set_window_call_(true), 332 first_set_window_call_(true),
332 plugin_has_focus_(false), 333 plugin_has_focus_(false),
333 has_webkit_focus_(false), 334 has_webkit_focus_(false),
334 containing_view_has_focus_(true), 335 containing_view_has_focus_(true),
335 creation_succeeded_(false) { 336 creation_succeeded_(false) {
336 memset(&window_, 0, sizeof(window_)); 337 memset(&window_, 0, sizeof(window_));
337 338
338 const WebPluginInfo& plugin_info = instance_->plugin_lib()->plugin_info(); 339 const WebPluginInfo& plugin_info = instance_->plugin_lib()->plugin_info();
(...skipping 352 matching lines...) Expand 10 before | Expand all | Expand 10 after
691 const MSG& msg = *it; 692 const MSG& msg = *it;
692 WNDPROC proc = reinterpret_cast<WNDPROC>(msg.time); 693 WNDPROC proc = reinterpret_cast<WNDPROC>(msg.time);
693 // It is possible that the window was closed after we queued 694 // It is possible that the window was closed after we queued
694 // this message. This is a rare event; just verify the window 695 // this message. This is a rare event; just verify the window
695 // is alive. (see also bug 1259488) 696 // is alive. (see also bug 1259488)
696 if (IsWindow(msg.hwnd)) 697 if (IsWindow(msg.hwnd))
697 CallWindowProc(proc, msg.hwnd, msg.message, msg.wParam, msg.lParam); 698 CallWindowProc(proc, msg.hwnd, msg.message, msg.wParam, msg.lParam);
698 } 699 }
699 700
700 if (!throttle_queue_was_empty) { 701 if (!throttle_queue_was_empty) {
701 MessageLoop::current()->PostDelayedTask(FROM_HERE, 702 MessageLoop::current()->PostDelayedTask(
702 NewRunnableFunction(&WebPluginDelegateImpl::OnThrottleMessage), 703 FROM_HERE, base::Bind(&WebPluginDelegateImpl::OnThrottleMessage),
703 kFlashWMUSERMessageThrottleDelayMs); 704 kFlashWMUSERMessageThrottleDelayMs);
704 } 705 }
705 } 706 }
706 707
707 // Schedule a windows message for delivery later. 708 // Schedule a windows message for delivery later.
708 // static 709 // static
709 void WebPluginDelegateImpl::ThrottleMessage(WNDPROC proc, HWND hwnd, 710 void WebPluginDelegateImpl::ThrottleMessage(WNDPROC proc, HWND hwnd,
710 UINT message, WPARAM wParam, 711 UINT message, WPARAM wParam,
711 LPARAM lParam) { 712 LPARAM lParam) {
712 MSG msg; 713 MSG msg;
713 msg.time = reinterpret_cast<DWORD>(proc); 714 msg.time = reinterpret_cast<DWORD>(proc);
714 msg.hwnd = hwnd; 715 msg.hwnd = hwnd;
715 msg.message = message; 716 msg.message = message;
716 msg.wParam = wParam; 717 msg.wParam = wParam;
717 msg.lParam = lParam; 718 msg.lParam = lParam;
718 719
719 ThrottleQueue* throttle_queue = g_throttle_queue.Pointer(); 720 ThrottleQueue* throttle_queue = g_throttle_queue.Pointer();
720 721
721 throttle_queue->push_back(msg); 722 throttle_queue->push_back(msg);
722 723
723 if (throttle_queue->size() == 1) { 724 if (throttle_queue->size() == 1) {
724 MessageLoop::current()->PostDelayedTask(FROM_HERE, 725 MessageLoop::current()->PostDelayedTask(
725 NewRunnableFunction(&WebPluginDelegateImpl::OnThrottleMessage), 726 FROM_HERE, base::Bind(&WebPluginDelegateImpl::OnThrottleMessage),
726 kFlashWMUSERMessageThrottleDelayMs); 727 kFlashWMUSERMessageThrottleDelayMs);
727 } 728 }
728 } 729 }
729 730
730 // We go out of our way to find the hidden windows created by Flash for 731 // We go out of our way to find the hidden windows created by Flash for
731 // windowless plugins. We throttle the rate at which they deliver messages 732 // windowless plugins. We throttle the rate at which they deliver messages
732 // so that they will not consume outrageous amounts of CPU. 733 // so that they will not consume outrageous amounts of CPU.
733 // static 734 // static
734 LRESULT CALLBACK WebPluginDelegateImpl::FlashWindowlessWndProc(HWND hwnd, 735 LRESULT CALLBACK WebPluginDelegateImpl::FlashWindowlessWndProc(HWND hwnd,
735 UINT message, WPARAM wparam, LPARAM lparam) { 736 UINT message, WPARAM wparam, LPARAM lparam) {
(...skipping 337 matching lines...) Expand 10 before | Expand all | Expand 10 after
1073 result = FALSE; 1074 result = FALSE;
1074 } else { 1075 } else {
1075 delegate->is_calling_wndproc = true; 1076 delegate->is_calling_wndproc = true;
1076 1077
1077 if (!delegate->user_gesture_message_posted_ && 1078 if (!delegate->user_gesture_message_posted_ &&
1078 IsUserGestureMessage(message)) { 1079 IsUserGestureMessage(message)) {
1079 delegate->user_gesture_message_posted_ = true; 1080 delegate->user_gesture_message_posted_ = true;
1080 1081
1081 delegate->instance()->PushPopupsEnabledState(true); 1082 delegate->instance()->PushPopupsEnabledState(true);
1082 1083
1083 MessageLoop::current()->PostDelayedTask(FROM_HERE, 1084 MessageLoop::current()->PostDelayedTask(
1084 delegate->user_gesture_msg_factory_.NewRunnableMethod( 1085 FROM_HERE,
1085 &WebPluginDelegateImpl::OnUserGestureEnd), 1086 base::Bind(&WebPluginDelegateImpl::OnUserGestureEnd,
1087 delegate->user_gesture_msg_factory_.GetWeakPtr()),
1086 kWindowedPluginPopupTimerMs); 1088 kWindowedPluginPopupTimerMs);
1087 } 1089 }
1088 1090
1089 HandleCaptureForMessage(hwnd, message); 1091 HandleCaptureForMessage(hwnd, message);
1090 1092
1091 // Maintain a local/global stack for the g_current_plugin_instance variable 1093 // Maintain a local/global stack for the g_current_plugin_instance variable
1092 // as this may be a nested invocation. 1094 // as this may be a nested invocation.
1093 WebPluginDelegateImpl* last_plugin_instance = g_current_plugin_instance; 1095 WebPluginDelegateImpl* last_plugin_instance = g_current_plugin_instance;
1094 1096
1095 g_current_plugin_instance = delegate; 1097 g_current_plugin_instance = delegate;
(...skipping 467 matching lines...) Expand 10 before | Expand all | Expand 10 after
1563 ::ReleaseCapture(); 1565 ::ReleaseCapture();
1564 break; 1566 break;
1565 1567
1566 default: 1568 default:
1567 break; 1569 break;
1568 } 1570 }
1569 } 1571 }
1570 1572
1571 } // namespace npapi 1573 } // namespace npapi
1572 } // namespace webkit 1574 } // namespace webkit
OLDNEW
« no previous file with comments | « webkit/plugins/npapi/webplugin_delegate_impl.h ('k') | webkit/plugins/npapi/webplugin_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698