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

Side by Side Diff: chrome/browser/renderer_host/render_widget_host_view_mac.mm

Issue 6840060: Progress towards fixing 77536 (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: "" Created 9 years, 8 months 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
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 <QuartzCore/QuartzCore.h> 5 #include <QuartzCore/QuartzCore.h>
6 6
7 #include "chrome/browser/renderer_host/render_widget_host_view_mac.h" 7 #include "chrome/browser/renderer_host/render_widget_host_view_mac.h"
8 8
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 577 matching lines...) Expand 10 before | Expand all | Expand 10 after
588 // RenderWidgetHostViewMac, public: 588 // RenderWidgetHostViewMac, public:
589 589
590 RenderWidgetHostViewMac::RenderWidgetHostViewMac(RenderWidgetHost* widget) 590 RenderWidgetHostViewMac::RenderWidgetHostViewMac(RenderWidgetHost* widget)
591 : render_widget_host_(widget), 591 : render_widget_host_(widget),
592 about_to_validate_and_paint_(false), 592 about_to_validate_and_paint_(false),
593 call_set_needs_display_in_rect_pending_(false), 593 call_set_needs_display_in_rect_pending_(false),
594 text_input_type_(WebKit::WebTextInputTypeNone), 594 text_input_type_(WebKit::WebTextInputTypeNone),
595 is_loading_(false), 595 is_loading_(false),
596 is_hidden_(false), 596 is_hidden_(false),
597 shutdown_factory_(this), 597 shutdown_factory_(this),
598 needs_gpu_visibility_update_after_repaint_(false) { 598 needs_gpu_visibility_update_after_repaint_(false),
599 compositing_surface_(gfx::kNullPluginWindow) {
599 // |cocoa_view_| owns us and we will be deleted when |cocoa_view_| goes away. 600 // |cocoa_view_| owns us and we will be deleted when |cocoa_view_| goes away.
600 // Since we autorelease it, our caller must put |native_view()| into the view 601 // Since we autorelease it, our caller must put |native_view()| into the view
601 // hierarchy right after calling us. 602 // hierarchy right after calling us.
602 cocoa_view_ = [[[RenderWidgetHostViewCocoa alloc] 603 cocoa_view_ = [[[RenderWidgetHostViewCocoa alloc]
603 initWithRenderWidgetHostViewMac:this] autorelease]; 604 initWithRenderWidgetHostViewMac:this] autorelease];
604 render_widget_host_->set_view(this); 605 render_widget_host_->set_view(this);
605 606
606 // Turn on accessibility only if VoiceOver is running. 607 // Turn on accessibility only if VoiceOver is running.
607 if (IsVoiceOverRunning()) { 608 if (IsVoiceOverRunning()) {
608 BrowserAccessibilityState::GetInstance()->OnScreenReaderDetected(); 609 BrowserAccessibilityState::GetInstance()->OnScreenReaderDetected();
(...skipping 486 matching lines...) Expand 10 before | Expand all | Expand 10 after
1095 // process won't process any GL commands until the browser sends a paint ack, 1096 // process won't process any GL commands until the browser sends a paint ack,
1096 // but since the browser window is already closed, it will never arrive. 1097 // but since the browser window is already closed, it will never arrive.
1097 // To resolve this we ask the GPU process to destroy the command buffer 1098 // To resolve this we ask the GPU process to destroy the command buffer
1098 // associated with the given render widget. Once the command buffer is 1099 // associated with the given render widget. Once the command buffer is
1099 // destroyed, all GL commands from the renderer will immediately receive 1100 // destroyed, all GL commands from the renderer will immediately receive
1100 // channel error. 1101 // channel error.
1101 if (render_widget_host_ && 1102 if (render_widget_host_ &&
1102 plugin_container_manager_.IsRootContainer(window)) { 1103 plugin_container_manager_.IsRootContainer(window)) {
1103 GpuProcessHostUIShim* ui_shim = GpuProcessHostUIShim::GetForRenderer( 1104 GpuProcessHostUIShim* ui_shim = GpuProcessHostUIShim::GetForRenderer(
1104 render_widget_host_->process()->id(), 1105 render_widget_host_->process()->id(),
1105 content:: 1106 content::CAUSE_FOR_GPU_LAUNCH_NO_LAUNCH);
1106 CAUSE_FOR_GPU_LAUNCH_RENDERWIDGETHOSTVIEWMAC_DEALLOCFAKEPLUGINWINDOWHA NDLE);
1107 if (ui_shim) { 1107 if (ui_shim) {
1108 ui_shim->DidDestroyAcceleratedSurface( 1108 ui_shim->DidDestroyAcceleratedSurface(
1109 render_widget_host_->process()->id(), 1109 render_widget_host_->process()->id(),
1110 render_widget_host_->routing_id()); 1110 render_widget_host_->routing_id());
1111 } 1111 }
1112 } 1112 }
1113 1113
1114 plugin_container_manager_.DestroyFakePluginWindowHandle(window); 1114 plugin_container_manager_.DestroyFakePluginWindowHandle(window);
1115 } 1115 }
1116 1116
(...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after
1290 void RenderWidgetHostViewMac::GpuRenderingStateDidChange() { 1290 void RenderWidgetHostViewMac::GpuRenderingStateDidChange() {
1291 CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 1291 CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
1292 if (GetRenderWidgetHost()->is_accelerated_compositing_active()) { 1292 if (GetRenderWidgetHost()->is_accelerated_compositing_active()) {
1293 UpdateRootGpuViewVisibility( 1293 UpdateRootGpuViewVisibility(
1294 GetRenderWidgetHost()->is_accelerated_compositing_active()); 1294 GetRenderWidgetHost()->is_accelerated_compositing_active());
1295 } else { 1295 } else {
1296 needs_gpu_visibility_update_after_repaint_ = true; 1296 needs_gpu_visibility_update_after_repaint_ = true;
1297 } 1297 }
1298 } 1298 }
1299 1299
1300 gfx::PluginWindowHandle RenderWidgetHostViewMac::AcquireCompositingSurface() { 1300 gfx::PluginWindowHandle RenderWidgetHostViewMac::GetCompositingSurface() {
1301 return AllocateFakePluginWindowHandle(/*opaque=*/true, /*root=*/true); 1301 if (compositing_surface_ == gfx::kNullPluginWindow)
1302 } 1302 compositing_surface_ = AllocateFakePluginWindowHandle(
1303 1303 /*opaque=*/true, /*root=*/true);
1304 void RenderWidgetHostViewMac::ReleaseCompositingSurface( 1304 return compositing_surface_;
1305 gfx::PluginWindowHandle surface) {
1306 DestroyFakePluginWindowHandle(surface);
1307 } 1305 }
1308 1306
1309 void RenderWidgetHostViewMac::DrawAcceleratedSurfaceInstance( 1307 void RenderWidgetHostViewMac::DrawAcceleratedSurfaceInstance(
1310 CGLContextObj context, 1308 CGLContextObj context,
1311 gfx::PluginWindowHandle plugin_handle, 1309 gfx::PluginWindowHandle plugin_handle,
1312 NSSize size) { 1310 NSSize size) {
1313 // Called on the display link thread. 1311 // Called on the display link thread.
1314 CGLSetCurrentContext(context); 1312 CGLSetCurrentContext(context);
1315 1313
1316 glMatrixMode(GL_PROJECTION); 1314 glMatrixMode(GL_PROJECTION);
(...skipping 1622 matching lines...) Expand 10 before | Expand all | Expand 10 after
2939 if (!string) return NO; 2937 if (!string) return NO;
2940 2938
2941 // If the user is currently using an IME, confirm the IME input, 2939 // If the user is currently using an IME, confirm the IME input,
2942 // and then insert the text from the service, the same as TextEdit and Safari. 2940 // and then insert the text from the service, the same as TextEdit and Safari.
2943 [self confirmComposition]; 2941 [self confirmComposition];
2944 [self insertText:string]; 2942 [self insertText:string];
2945 return YES; 2943 return YES;
2946 } 2944 }
2947 2945
2948 @end 2946 @end
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698