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

Side by Side Diff: webkit/glue/plugins/pepper_plugin_instance.cc

Issue 4310002: Make PPAPI headers compile with C compilers (gcc on Linux & Mac and MSVS on W... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 10 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/glue/plugins/pepper_image_data.cc ('k') | webkit/glue/plugins/pepper_plugin_module.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) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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/glue/plugins/pepper_plugin_instance.h" 5 #include "webkit/glue/plugins/pepper_plugin_instance.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "base/metrics/histogram.h" 8 #include "base/metrics/histogram.h"
9 #if defined(OS_MACOSX) 9 #if defined(OS_MACOSX)
10 #include "base/mac_util.h" 10 #include "base/mac_util.h"
(...skipping 30 matching lines...) Expand all
41 #include "third_party/WebKit/WebKit/chromium/public/WebDocument.h" 41 #include "third_party/WebKit/WebKit/chromium/public/WebDocument.h"
42 #include "third_party/WebKit/WebKit/chromium/public/WebElement.h" 42 #include "third_party/WebKit/WebKit/chromium/public/WebElement.h"
43 #include "third_party/WebKit/WebKit/chromium/public/WebFrame.h" 43 #include "third_party/WebKit/WebKit/chromium/public/WebFrame.h"
44 #include "third_party/WebKit/WebKit/chromium/public/WebInputEvent.h" 44 #include "third_party/WebKit/WebKit/chromium/public/WebInputEvent.h"
45 #include "third_party/WebKit/WebKit/chromium/public/WebPluginContainer.h" 45 #include "third_party/WebKit/WebKit/chromium/public/WebPluginContainer.h"
46 #include "third_party/WebKit/WebKit/chromium/public/WebRect.h" 46 #include "third_party/WebKit/WebKit/chromium/public/WebRect.h"
47 #include "third_party/WebKit/WebKit/chromium/public/WebString.h" 47 #include "third_party/WebKit/WebKit/chromium/public/WebString.h"
48 #include "third_party/WebKit/WebKit/chromium/public/WebURLRequest.h" 48 #include "third_party/WebKit/WebKit/chromium/public/WebURLRequest.h"
49 #include "third_party/WebKit/WebKit/chromium/public/WebView.h" 49 #include "third_party/WebKit/WebKit/chromium/public/WebView.h"
50 #include "webkit/glue/plugins/pepper_buffer.h" 50 #include "webkit/glue/plugins/pepper_buffer.h"
51 #include "webkit/glue/plugins/pepper_common.h"
51 #include "webkit/glue/plugins/pepper_graphics_2d.h" 52 #include "webkit/glue/plugins/pepper_graphics_2d.h"
52 #include "webkit/glue/plugins/pepper_event_conversion.h" 53 #include "webkit/glue/plugins/pepper_event_conversion.h"
53 #include "webkit/glue/plugins/pepper_fullscreen_container.h" 54 #include "webkit/glue/plugins/pepper_fullscreen_container.h"
54 #include "webkit/glue/plugins/pepper_image_data.h" 55 #include "webkit/glue/plugins/pepper_image_data.h"
55 #include "webkit/glue/plugins/pepper_plugin_delegate.h" 56 #include "webkit/glue/plugins/pepper_plugin_delegate.h"
56 #include "webkit/glue/plugins/pepper_plugin_module.h" 57 #include "webkit/glue/plugins/pepper_plugin_module.h"
57 #include "webkit/glue/plugins/pepper_string.h" 58 #include "webkit/glue/plugins/pepper_string.h"
58 #include "webkit/glue/plugins/pepper_url_loader.h" 59 #include "webkit/glue/plugins/pepper_url_loader.h"
59 #include "webkit/glue/plugins/pepper_var.h" 60 #include "webkit/glue/plugins/pepper_var.h"
60 #include "webkit/glue/plugins/ppp_private.h" 61 #include "webkit/glue/plugins/ppp_private.h"
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
153 return instance->GetWindowObject(); 154 return instance->GetWindowObject();
154 } 155 }
155 156
156 PP_Var GetOwnerElementObject(PP_Instance instance_id) { 157 PP_Var GetOwnerElementObject(PP_Instance instance_id) {
157 PluginInstance* instance = ResourceTracker::Get()->GetInstance(instance_id); 158 PluginInstance* instance = ResourceTracker::Get()->GetInstance(instance_id);
158 if (!instance) 159 if (!instance)
159 return PP_MakeUndefined(); 160 return PP_MakeUndefined();
160 return instance->GetOwnerElementObject(); 161 return instance->GetOwnerElementObject();
161 } 162 }
162 163
163 bool BindGraphics(PP_Instance instance_id, PP_Resource device_id) { 164 PP_Bool BindGraphics(PP_Instance instance_id, PP_Resource device_id) {
164 PluginInstance* instance = ResourceTracker::Get()->GetInstance(instance_id); 165 PluginInstance* instance = ResourceTracker::Get()->GetInstance(instance_id);
165 if (!instance) 166 if (!instance)
166 return false; 167 return PP_FALSE;
167 return instance->BindGraphics(device_id); 168 return BoolToPPBool(instance->BindGraphics(device_id));
168 } 169 }
169 170
170 bool IsFullFrame(PP_Instance instance_id) { 171 PP_Bool IsFullFrame(PP_Instance instance_id) {
171 PluginInstance* instance = ResourceTracker::Get()->GetInstance(instance_id); 172 PluginInstance* instance = ResourceTracker::Get()->GetInstance(instance_id);
172 if (!instance) 173 if (!instance)
173 return false; 174 return PP_FALSE;
174 return instance->full_frame(); 175 return BoolToPPBool(instance->full_frame());
175 } 176 }
176 177
177 PP_Var ExecuteScript(PP_Instance instance_id, 178 PP_Var ExecuteScript(PP_Instance instance_id,
178 PP_Var script, 179 PP_Var script,
179 PP_Var* exception) { 180 PP_Var* exception) {
180 PluginInstance* instance = ResourceTracker::Get()->GetInstance(instance_id); 181 PluginInstance* instance = ResourceTracker::Get()->GetInstance(instance_id);
181 if (!instance) 182 if (!instance)
182 return PP_MakeUndefined(); 183 return PP_MakeUndefined();
183 return instance->ExecuteScript(script, exception); 184 return instance->ExecuteScript(script, exception);
184 } 185 }
185 186
186 const PPB_Instance ppb_instance = { 187 const PPB_Instance ppb_instance = {
187 &GetWindowObject, 188 &GetWindowObject,
188 &GetOwnerElementObject, 189 &GetOwnerElementObject,
189 &BindGraphics, 190 &BindGraphics,
190 &IsFullFrame, 191 &IsFullFrame,
191 &ExecuteScript, 192 &ExecuteScript,
192 }; 193 };
193 194
194 void NumberOfFindResultsChanged(PP_Instance instance_id, 195 void NumberOfFindResultsChanged(PP_Instance instance_id,
195 int32_t total, 196 int32_t total,
196 bool final_result) { 197 PP_Bool final_result) {
197 PluginInstance* instance = ResourceTracker::Get()->GetInstance(instance_id); 198 PluginInstance* instance = ResourceTracker::Get()->GetInstance(instance_id);
198 if (!instance) 199 if (!instance)
199 return; 200 return;
200 201
201 DCHECK_NE(instance->find_identifier(), -1); 202 DCHECK_NE(instance->find_identifier(), -1);
202 instance->delegate()->NumberOfFindResultsChanged( 203 instance->delegate()->NumberOfFindResultsChanged(
203 instance->find_identifier(), total, final_result); 204 instance->find_identifier(), total, PPBoolToBool(final_result));
204 } 205 }
205 206
206 void SelectedFindResultChanged(PP_Instance instance_id, 207 void SelectedFindResultChanged(PP_Instance instance_id,
207 int32_t index) { 208 int32_t index) {
208 PluginInstance* instance = ResourceTracker::Get()->GetInstance(instance_id); 209 PluginInstance* instance = ResourceTracker::Get()->GetInstance(instance_id);
209 if (!instance) 210 if (!instance)
210 return; 211 return;
211 212
212 DCHECK_NE(instance->find_identifier(), -1); 213 DCHECK_NE(instance->find_identifier(), -1);
213 instance->delegate()->SelectedFindResultChanged( 214 instance->delegate()->SelectedFindResultChanged(
214 instance->find_identifier(), index); 215 instance->find_identifier(), index);
215 } 216 }
216 217
217 const PPB_Find_Dev ppb_find = { 218 const PPB_Find_Dev ppb_find = {
218 &NumberOfFindResultsChanged, 219 &NumberOfFindResultsChanged,
219 &SelectedFindResultChanged, 220 &SelectedFindResultChanged,
220 }; 221 };
221 222
222 bool IsFullscreen(PP_Instance instance_id) { 223 PP_Bool IsFullscreen(PP_Instance instance_id) {
223 PluginInstance* instance = ResourceTracker::Get()->GetInstance(instance_id); 224 PluginInstance* instance = ResourceTracker::Get()->GetInstance(instance_id);
224 if (!instance) 225 if (!instance)
225 return false; 226 return PP_FALSE;
226 return instance->IsFullscreen(); 227 return BoolToPPBool(instance->IsFullscreen());
227 } 228 }
228 229
229 bool SetFullscreen(PP_Instance instance_id, bool fullscreen) { 230 PP_Bool SetFullscreen(PP_Instance instance_id, PP_Bool fullscreen) {
230 PluginInstance* instance = ResourceTracker::Get()->GetInstance(instance_id); 231 PluginInstance* instance = ResourceTracker::Get()->GetInstance(instance_id);
231 if (!instance) 232 if (!instance)
232 return false; 233 return PP_FALSE;
233 return instance->SetFullscreen(fullscreen); 234 return BoolToPPBool(instance->SetFullscreen(PPBoolToBool(fullscreen)));
234 } 235 }
235 236
236 const PPB_Fullscreen_Dev ppb_fullscreen = { 237 const PPB_Fullscreen_Dev ppb_fullscreen = {
237 &IsFullscreen, 238 &IsFullscreen,
238 &SetFullscreen, 239 &SetFullscreen,
239 }; 240 };
240 241
241 void ZoomChanged(PP_Instance instance_id, double factor) { 242 void ZoomChanged(PP_Instance instance_id, double factor) {
242 PluginInstance* instance = ResourceTracker::Get()->GetInstance(instance_id); 243 PluginInstance* instance = ResourceTracker::Get()->GetInstance(instance_id);
243 if (!instance) 244 if (!instance)
(...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after
495 496
496 size_t argc = 0; 497 size_t argc = 0;
497 scoped_array<const char*> argn(new const char*[arg_names.size()]); 498 scoped_array<const char*> argn(new const char*[arg_names.size()]);
498 scoped_array<const char*> argv(new const char*[arg_names.size()]); 499 scoped_array<const char*> argv(new const char*[arg_names.size()]);
499 for (size_t i = 0; i < arg_names.size(); ++i) { 500 for (size_t i = 0; i < arg_names.size(); ++i) {
500 argn[argc] = arg_names[i].c_str(); 501 argn[argc] = arg_names[i].c_str();
501 argv[argc] = arg_values[i].c_str(); 502 argv[argc] = arg_values[i].c_str();
502 argc++; 503 argc++;
503 } 504 }
504 505
505 return instance_interface_->DidCreate(pp_instance(), 506 return PPBoolToBool(instance_interface_->DidCreate(pp_instance(),
506 argc, argn.get(), argv.get()); 507 argc,
508 argn.get(),
509 argv.get()));
507 } 510 }
508 511
509 bool PluginInstance::HandleDocumentLoad(URLLoader* loader) { 512 bool PluginInstance::HandleDocumentLoad(URLLoader* loader) {
510 Resource::ScopedResourceId resource(loader); 513 Resource::ScopedResourceId resource(loader);
511 return instance_interface_->HandleDocumentLoad(pp_instance(), resource.id); 514 return PPBoolToBool(instance_interface_->HandleDocumentLoad(pp_instance(),
515 resource.id));
512 } 516 }
513 517
514 bool PluginInstance::HandleInputEvent(const WebKit::WebInputEvent& event, 518 bool PluginInstance::HandleInputEvent(const WebKit::WebInputEvent& event,
515 WebCursorInfo* cursor_info) { 519 WebCursorInfo* cursor_info) {
516 std::vector<PP_InputEvent> pp_events; 520 std::vector<PP_InputEvent> pp_events;
517 CreatePPEvent(event, &pp_events); 521 CreatePPEvent(event, &pp_events);
518 522
519 // Each input event may generate more than one PP_InputEvent. 523 // Each input event may generate more than one PP_InputEvent.
520 bool rv = false; 524 bool rv = false;
521 for (size_t i = 0; i < pp_events.size(); i++) 525 for (size_t i = 0; i < pp_events.size(); i++) {
522 rv |= instance_interface_->HandleInputEvent(pp_instance(), &pp_events[i]); 526 rv |= PPBoolToBool(instance_interface_->HandleInputEvent(pp_instance(),
527 &pp_events[i]));
528 }
523 529
524 if (cursor_.get()) 530 if (cursor_.get())
525 *cursor_info = *cursor_; 531 *cursor_info = *cursor_;
526 return rv; 532 return rv;
527 } 533 }
528 534
529 PP_Var PluginInstance::GetInstanceObject() { 535 PP_Var PluginInstance::GetInstanceObject() {
530 return instance_interface_->GetInstanceObject(pp_instance()); 536 return instance_interface_->GetInstanceObject(pp_instance());
531 } 537 }
532 538
(...skipping 15 matching lines...) Expand all
548 RectToPPRect(clip_, &pp_clip); 554 RectToPPRect(clip_, &pp_clip);
549 instance_interface_->DidChangeView(pp_instance(), &pp_position, &pp_clip); 555 instance_interface_->DidChangeView(pp_instance(), &pp_position, &pp_clip);
550 } 556 }
551 557
552 void PluginInstance::SetWebKitFocus(bool has_focus) { 558 void PluginInstance::SetWebKitFocus(bool has_focus) {
553 if (has_webkit_focus_ == has_focus) 559 if (has_webkit_focus_ == has_focus)
554 return; 560 return;
555 561
556 bool old_plugin_focus = PluginHasFocus(); 562 bool old_plugin_focus = PluginHasFocus();
557 has_webkit_focus_ = has_focus; 563 has_webkit_focus_ = has_focus;
558 if (PluginHasFocus() != old_plugin_focus) 564 if (PluginHasFocus() != old_plugin_focus) {
559 instance_interface_->DidChangeFocus(pp_instance(), PluginHasFocus()); 565 instance_interface_->DidChangeFocus(pp_instance(),
566 BoolToPPBool(PluginHasFocus()));
567 }
560 } 568 }
561 569
562 void PluginInstance::SetContentAreaFocus(bool has_focus) { 570 void PluginInstance::SetContentAreaFocus(bool has_focus) {
563 if (has_content_area_focus_ == has_focus) 571 if (has_content_area_focus_ == has_focus)
564 return; 572 return;
565 573
566 bool old_plugin_focus = PluginHasFocus(); 574 bool old_plugin_focus = PluginHasFocus();
567 has_content_area_focus_ = has_focus; 575 has_content_area_focus_ = has_focus;
568 if (PluginHasFocus() != old_plugin_focus) 576 if (PluginHasFocus() != old_plugin_focus) {
569 instance_interface_->DidChangeFocus(pp_instance(), PluginHasFocus()); 577 instance_interface_->DidChangeFocus(pp_instance(),
578 BoolToPPBool(PluginHasFocus()));
579 }
570 } 580 }
571 581
572 void PluginInstance::ViewInitiatedPaint() { 582 void PluginInstance::ViewInitiatedPaint() {
573 if (bound_graphics_2d_) 583 if (bound_graphics_2d_)
574 bound_graphics_2d_->ViewInitiatedPaint(); 584 bound_graphics_2d_->ViewInitiatedPaint();
575 } 585 }
576 586
577 void PluginInstance::ViewFlushedPaint() { 587 void PluginInstance::ViewFlushedPaint() {
578 if (bound_graphics_2d_) 588 if (bound_graphics_2d_)
579 bound_graphics_2d_->ViewFlushedPaint(); 589 bound_graphics_2d_->ViewFlushedPaint();
(...skipping 23 matching lines...) Expand all
603 *dib = image_data->platform_image()->GetTransportDIB(); 613 *dib = image_data->platform_image()->GetTransportDIB();
604 *location = plugin_backing_store_rect; 614 *location = plugin_backing_store_rect;
605 *clip = clip_; 615 *clip = clip_;
606 return true; 616 return true;
607 } 617 }
608 618
609 string16 PluginInstance::GetSelectedText(bool html) { 619 string16 PluginInstance::GetSelectedText(bool html) {
610 if (!LoadSelectionInterface()) 620 if (!LoadSelectionInterface())
611 return string16(); 621 return string16();
612 622
613 PP_Var rv = plugin_selection_interface_->GetSelectedText(pp_instance(), html); 623 PP_Var rv = plugin_selection_interface_->GetSelectedText(pp_instance(),
624 BoolToPPBool(html));
614 scoped_refptr<StringVar> string(StringVar::FromPPVar(rv)); 625 scoped_refptr<StringVar> string(StringVar::FromPPVar(rv));
615 Var::PluginReleasePPVar(rv); // Release the ref the plugin transfered to us. 626 Var::PluginReleasePPVar(rv); // Release the ref the plugin transfered to us.
616 if (!string) 627 if (!string)
617 return string16(); 628 return string16();
618 return UTF8ToUTF16(string->value()); 629 return UTF8ToUTF16(string->value());
619 } 630 }
620 631
621 string16 PluginInstance::GetLinkAtPosition(const gfx::Point& point) { 632 string16 PluginInstance::GetLinkAtPosition(const gfx::Point& point) {
622 if (!LoadPrivateInterface()) 633 if (!LoadPrivateInterface())
623 return string16(); 634 return string16();
624 635
625 PP_Point p; 636 PP_Point p;
626 p.x = point.x(); 637 p.x = point.x();
627 p.y = point.y(); 638 p.y = point.y();
628 PP_Var rv = plugin_private_interface_->GetLinkAtPosition(pp_instance(), p); 639 PP_Var rv = plugin_private_interface_->GetLinkAtPosition(pp_instance(), p);
629 scoped_refptr<StringVar> string(StringVar::FromPPVar(rv)); 640 scoped_refptr<StringVar> string(StringVar::FromPPVar(rv));
630 Var::PluginReleasePPVar(rv); // Release the ref the plugin transfered to us. 641 Var::PluginReleasePPVar(rv); // Release the ref the plugin transfered to us.
631 if (!string) 642 if (!string)
632 return string16(); 643 return string16();
633 return UTF8ToUTF16(string->value()); 644 return UTF8ToUTF16(string->value());
634 } 645 }
635 646
636 void PluginInstance::Zoom(double factor, bool text_only) { 647 void PluginInstance::Zoom(double factor, bool text_only) {
637 if (!LoadZoomInterface()) 648 if (!LoadZoomInterface())
638 return; 649 return;
639 plugin_zoom_interface_->Zoom(pp_instance(), factor, text_only); 650 plugin_zoom_interface_->Zoom(pp_instance(), factor, BoolToPPBool(text_only));
640 } 651 }
641 652
642 bool PluginInstance::StartFind(const string16& search_text, 653 bool PluginInstance::StartFind(const string16& search_text,
643 bool case_sensitive, 654 bool case_sensitive,
644 int identifier) { 655 int identifier) {
645 if (!LoadFindInterface()) 656 if (!LoadFindInterface())
646 return false; 657 return false;
647 find_identifier_ = identifier; 658 find_identifier_ = identifier;
648 return plugin_find_interface_->StartFind( 659 return PPBoolToBool(
649 pp_instance(), 660 plugin_find_interface_->StartFind(
650 UTF16ToUTF8(search_text.c_str()).c_str(), 661 pp_instance(),
651 case_sensitive); 662 UTF16ToUTF8(search_text.c_str()).c_str(),
663 BoolToPPBool(case_sensitive)));
652 } 664 }
653 665
654 void PluginInstance::SelectFindResult(bool forward) { 666 void PluginInstance::SelectFindResult(bool forward) {
655 if (LoadFindInterface()) 667 if (LoadFindInterface())
656 plugin_find_interface_->SelectFindResult(pp_instance(), forward); 668 plugin_find_interface_->SelectFindResult(pp_instance(),
669 BoolToPPBool(forward));
657 } 670 }
658 671
659 void PluginInstance::StopFind() { 672 void PluginInstance::StopFind() {
660 if (!LoadFindInterface()) 673 if (!LoadFindInterface())
661 return; 674 return;
662 find_identifier_ = -1; 675 find_identifier_ = -1;
663 plugin_find_interface_->StopFind(pp_instance()); 676 plugin_find_interface_->StopFind(pp_instance());
664 } 677 }
665 678
666 bool PluginInstance::LoadFindInterface() { 679 bool PluginInstance::LoadFindInterface() {
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
752 // PrintBegin should not have been called since SupportsPrintInterface 765 // PrintBegin should not have been called since SupportsPrintInterface
753 // would have returned false; 766 // would have returned false;
754 NOTREACHED(); 767 NOTREACHED();
755 return 0; 768 return 0;
756 } 769 }
757 770
758 PP_PrintSettings_Dev print_settings; 771 PP_PrintSettings_Dev print_settings;
759 RectToPPRect(printable_area, &print_settings.printable_area); 772 RectToPPRect(printable_area, &print_settings.printable_area);
760 print_settings.dpi = printer_dpi; 773 print_settings.dpi = printer_dpi;
761 print_settings.orientation = PP_PRINTORIENTATION_NORMAL; 774 print_settings.orientation = PP_PRINTORIENTATION_NORMAL;
762 print_settings.grayscale = false; 775 print_settings.grayscale = PP_FALSE;
763 print_settings.format = format; 776 print_settings.format = format;
764 int num_pages = plugin_print_interface_->Begin(pp_instance(), 777 int num_pages = plugin_print_interface_->Begin(pp_instance(),
765 &print_settings); 778 &print_settings);
766 if (!num_pages) 779 if (!num_pages)
767 return 0; 780 return 0;
768 current_print_settings_ = print_settings; 781 current_print_settings_ = print_settings;
769 #if defined (OS_LINUX) 782 #if defined (OS_LINUX)
770 num_pages_ = num_pages; 783 num_pages_ = num_pages;
771 pdf_output_done_ = false; 784 pdf_output_done_ = false;
772 #endif // (OS_LINUX) 785 #endif // (OS_LINUX)
(...skipping 325 matching lines...) Expand 10 before | Expand all | Expand 10 after
1098 bounds.size.width = dest_rect.width(); 1111 bounds.size.width = dest_rect.width();
1099 bounds.size.height = dest_rect.height(); 1112 bounds.size.height = dest_rect.height();
1100 1113
1101 CGContextDrawImage(canvas, bounds, image); 1114 CGContextDrawImage(canvas, bounds, image);
1102 CGContextRestoreGState(canvas); 1115 CGContextRestoreGState(canvas);
1103 } 1116 }
1104 #endif // defined(OS_MACOSX) 1117 #endif // defined(OS_MACOSX)
1105 1118
1106 1119
1107 } // namespace pepper 1120 } // namespace pepper
OLDNEW
« no previous file with comments | « webkit/glue/plugins/pepper_image_data.cc ('k') | webkit/glue/plugins/pepper_plugin_module.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698