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

Side by Side Diff: webkit/plugins/npapi/plugin_instance.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 | « no previous file | webkit/plugins/npapi/plugin_stream.cc » ('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/plugin_instance.h" 5 #include "webkit/plugins/npapi/plugin_instance.h"
6 6
7 #include "base/bind.h"
7 #include "build/build_config.h" 8 #include "build/build_config.h"
8 #include "base/file_util.h" 9 #include "base/file_util.h"
9 #include "base/message_loop.h" 10 #include "base/message_loop.h"
10 #include "base/string_number_conversions.h" 11 #include "base/string_number_conversions.h"
11 #include "base/utf_string_conversions.h" 12 #include "base/utf_string_conversions.h"
12 #include "webkit/glue/webkit_glue.h" 13 #include "webkit/glue/webkit_glue.h"
13 #include "webkit/plugins/npapi/plugin_host.h" 14 #include "webkit/plugins/npapi/plugin_host.h"
14 #include "webkit/plugins/npapi/plugin_lib.h" 15 #include "webkit/plugins/npapi/plugin_lib.h"
15 #include "webkit/plugins/npapi/plugin_stream_url.h" 16 #include "webkit/plugins/npapi/plugin_stream_url.h"
16 #include "webkit/plugins/npapi/plugin_string_stream.h" 17 #include "webkit/plugins/npapi/plugin_string_stream.h"
(...skipping 407 matching lines...) Expand 10 before | Expand all | Expand 10 after
424 DCHECK(load_manually_); 425 DCHECK(load_manually_);
425 if (plugin_data_stream_.get() != NULL) { 426 if (plugin_data_stream_.get() != NULL) {
426 plugin_data_stream_->DidFail(); 427 plugin_data_stream_->DidFail();
427 plugin_data_stream_ = NULL; 428 plugin_data_stream_ = NULL;
428 } 429 }
429 } 430 }
430 431
431 void PluginInstance::PluginThreadAsyncCall(void (*func)(void *), 432 void PluginInstance::PluginThreadAsyncCall(void (*func)(void *),
432 void *user_data) { 433 void *user_data) {
433 message_loop_->PostTask( 434 message_loop_->PostTask(
434 FROM_HERE, NewRunnableMethod( 435 FROM_HERE, base::Bind(&PluginInstance::OnPluginThreadAsyncCall, this,
435 this, &PluginInstance::OnPluginThreadAsyncCall, func, user_data)); 436 func, user_data));
436 } 437 }
437 438
438 void PluginInstance::OnPluginThreadAsyncCall(void (*func)(void *), 439 void PluginInstance::OnPluginThreadAsyncCall(void (*func)(void *),
439 void *user_data) { 440 void *user_data) {
440 // Do not invoke the callback if NPP_Destroy has already been invoked. 441 // Do not invoke the callback if NPP_Destroy has already been invoked.
441 if (webplugin_) 442 if (webplugin_)
442 func(user_data); 443 func(user_data);
443 } 444 }
444 445
445 uint32 PluginInstance::ScheduleTimer(uint32 interval, 446 uint32 PluginInstance::ScheduleTimer(uint32 interval,
446 NPBool repeat, 447 NPBool repeat,
447 void (*func)(NPP id, uint32 timer_id)) { 448 void (*func)(NPP id, uint32 timer_id)) {
448 // Use next timer id. 449 // Use next timer id.
449 uint32 timer_id; 450 uint32 timer_id;
450 timer_id = next_timer_id_; 451 timer_id = next_timer_id_;
451 ++next_timer_id_; 452 ++next_timer_id_;
452 DCHECK(next_timer_id_ != 0); 453 DCHECK(next_timer_id_ != 0);
453 454
454 // Record timer interval and repeat. 455 // Record timer interval and repeat.
455 TimerInfo info; 456 TimerInfo info;
456 info.interval = interval; 457 info.interval = interval;
457 info.repeat = repeat ? true : false; 458 info.repeat = repeat ? true : false;
458 timers_[timer_id] = info; 459 timers_[timer_id] = info;
459 460
460 // Schedule the callback. 461 // Schedule the callback.
461 MessageLoop::current()->PostDelayedTask( 462 MessageLoop::current()->PostDelayedTask(
462 FROM_HERE, 463 FROM_HERE,
463 NewRunnableMethod( 464 base::Bind(&PluginInstance::OnTimerCall, this, func, npp_, timer_id),
464 this, &PluginInstance::OnTimerCall, func, npp_, timer_id),
465 interval); 465 interval);
466 return timer_id; 466 return timer_id;
467 } 467 }
468 468
469 void PluginInstance::UnscheduleTimer(uint32 timer_id) { 469 void PluginInstance::UnscheduleTimer(uint32 timer_id) {
470 // Remove info about the timer. 470 // Remove info about the timer.
471 TimerMap::iterator it = timers_.find(timer_id); 471 TimerMap::iterator it = timers_.find(timer_id);
472 if (it != timers_.end()) 472 if (it != timers_.end())
473 timers_.erase(it); 473 timers_.erase(it);
474 } 474 }
(...skipping 17 matching lines...) Expand all
492 // callback might unschedule the timer. 492 // callback might unschedule the timer.
493 TimerInfo info = it->second; 493 TimerInfo info = it->second;
494 494
495 func(id, timer_id); 495 func(id, timer_id);
496 496
497 // If the timer was unscheduled by the callback, just free up the timer id. 497 // If the timer was unscheduled by the callback, just free up the timer id.
498 if (timers_.find(timer_id) == timers_.end()) 498 if (timers_.find(timer_id) == timers_.end())
499 return; 499 return;
500 500
501 // Reschedule repeating timers after invoking the callback so callback is not 501 // Reschedule repeating timers after invoking the callback so callback is not
502 // re-entered if it pumps the messager loop. 502 // re-entered if it pumps the message loop.
503 if (info.repeat) { 503 if (info.repeat) {
504 MessageLoop::current()->PostDelayedTask( 504 MessageLoop::current()->PostDelayedTask(
505 FROM_HERE, 505 FROM_HERE,
506 NewRunnableMethod( 506 base::Bind(&PluginInstance::OnTimerCall, this, func, npp_, timer_id),
507 this, &PluginInstance::OnTimerCall, func, npp_, timer_id),
508 info.interval); 507 info.interval);
509 } else { 508 } else {
510 timers_.erase(it); 509 timers_.erase(it);
511 } 510 }
512 } 511 }
513 512
514 void PluginInstance::PushPopupsEnabledState(bool enabled) { 513 void PluginInstance::PushPopupsEnabledState(bool enabled) {
515 popups_enabled_stack_.push(enabled); 514 popups_enabled_stack_.push(enabled);
516 } 515 }
517 516
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after
678 plugin_stream->UpdateUrl( 677 plugin_stream->UpdateUrl(
679 plugin_stream->pending_redirect_url().c_str()); 678 plugin_stream->pending_redirect_url().c_str());
680 } 679 }
681 break; 680 break;
682 } 681 }
683 } 682 }
684 } 683 }
685 684
686 } // namespace npapi 685 } // namespace npapi
687 } // namespace webkit 686 } // namespace webkit
OLDNEW
« no previous file with comments | « no previous file | webkit/plugins/npapi/plugin_stream.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698