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

Side by Side Diff: content/renderer/npapi/webplugin_impl.cc

Issue 1023783008: Migrate plugins to support new 'unobscured' rect interface (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: 'git cl format' Created 5 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "content/renderer/npapi/webplugin_impl.h" 5 #include "content/renderer/npapi/webplugin_impl.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/debug/crash_logging.h" 9 #include "base/debug/crash_logging.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 294 matching lines...) Expand 10 before | Expand all | Expand 10 after
305 #if defined(OS_WIN) 305 #if defined(OS_WIN)
306 // Force a geometry update if needed to allow plugins like media player 306 // Force a geometry update if needed to allow plugins like media player
307 // which defer the initial geometry update to work. 307 // which defer the initial geometry update to work.
308 container_->reportGeometry(); 308 container_->reportGeometry();
309 #endif // OS_WIN 309 #endif // OS_WIN
310 310
311 // Note that |canvas| is only used when in windowless mode. 311 // Note that |canvas| is only used when in windowless mode.
312 delegate_->Paint(canvas, paint_rect); 312 delegate_->Paint(canvas, paint_rect);
313 } 313 }
314 314
315 void WebPluginImpl::updateGeometry( 315 void WebPluginImpl::updateGeometry(const WebRect& window_rect,
316 const WebRect& window_rect, const WebRect& clip_rect, 316 const WebRect& clip_rect,
317 const WebVector<WebRect>& cutout_rects, bool is_visible) { 317 const WebRect& unobscured_rect,
318 const WebVector<WebRect>& cut_outs_rects,
319 bool is_visible) {
318 WebPluginGeometry new_geometry; 320 WebPluginGeometry new_geometry;
319 new_geometry.window = window_; 321 new_geometry.window = window_;
320 new_geometry.window_rect = window_rect; 322 new_geometry.window_rect = window_rect;
321 new_geometry.clip_rect = clip_rect; 323 new_geometry.clip_rect = clip_rect;
322 new_geometry.visible = is_visible; 324 new_geometry.visible = is_visible;
323 new_geometry.rects_valid = true; 325 new_geometry.rects_valid = true;
324 for (size_t i = 0; i < cutout_rects.size(); ++i) 326 for (size_t i = 0; i < cut_outs_rects.size(); ++i)
325 new_geometry.cutout_rects.push_back(cutout_rects[i]); 327 new_geometry.cutout_rects.push_back(cut_outs_rects[i]);
326 328
327 // Only send DidMovePlugin if the geometry changed in some way. 329 // Only send DidMovePlugin if the geometry changed in some way.
328 if (window_ && (first_geometry_update_ || !new_geometry.Equals(geometry_))) { 330 if (window_ && (first_geometry_update_ || !new_geometry.Equals(geometry_))) {
329 render_frame_->GetRenderWidget()->SchedulePluginMove(new_geometry); 331 render_frame_->GetRenderWidget()->SchedulePluginMove(new_geometry);
330 // We invalidate windowed plugins during the first geometry update to 332 // We invalidate windowed plugins during the first geometry update to
331 // ensure that they get reparented to the wrapper window in the browser. 333 // ensure that they get reparented to the wrapper window in the browser.
332 // This ensures that they become visible and are painted by the OS. This is 334 // This ensures that they become visible and are painted by the OS. This is
333 // required as some pages don't invalidate when the plugin is added. 335 // required as some pages don't invalidate when the plugin is added.
334 if (first_geometry_update_ && window_) { 336 if (first_geometry_update_ && window_) {
335 InvalidateRect(window_rect); 337 InvalidateRect(window_rect);
(...skipping 1194 matching lines...) Expand 10 before | Expand all | Expand 10 after
1530 case PLUGIN_SRC: 1532 case PLUGIN_SRC:
1531 webframe_->setReferrerForRequest(*request, plugin_url_); 1533 webframe_->setReferrerForRequest(*request, plugin_url_);
1532 break; 1534 break;
1533 1535
1534 default: 1536 default:
1535 break; 1537 break;
1536 } 1538 }
1537 } 1539 }
1538 1540
1539 } // namespace content 1541 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/npapi/webplugin_impl.h ('k') | content/renderer/pepper/pepper_webplugin_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698