Index: chrome/browser/ui/extensions/shell_window.cc |
diff --git a/chrome/browser/ui/extensions/shell_window.cc b/chrome/browser/ui/extensions/shell_window.cc |
index 5851ec146a1233a9b26c2c72328f44bb173a77d1..5bd4f520defa59e0ccfbb250dc9e4daaf9fc3dcd 100644 |
--- a/chrome/browser/ui/extensions/shell_window.cc |
+++ b/chrome/browser/ui/extensions/shell_window.cc |
@@ -42,6 +42,7 @@ |
#include "content/public/browser/web_intents_dispatcher.h" |
#include "content/public/common/media_stream_request.h" |
#include "content/public/common/renderer_preferences.h" |
+#include "third_party/skia/include/core/SkRegion.h" |
using content::BrowserThread; |
using content::ConsoleMessageLevel; |
@@ -314,24 +315,7 @@ bool ShellWindow::OnMessageReceived(const IPC::Message& message) { |
void ShellWindow::UpdateDraggableRegions( |
const std::vector<extensions::DraggableRegion>& regions) { |
- // Decide if we want to treat it as old syntax by checking labels. |
- // TODO(jianli): to be removed after WebKit patch that changes the draggable |
- // region syntax is landed. |
- bool new_syntax = true; |
- for (std::vector<extensions::DraggableRegion>::const_iterator iter = |
- regions.begin(); |
- iter != regions.end(); ++iter) { |
- const extensions::DraggableRegion& region = *iter; |
- if (!region.label.empty() || !region.clip.IsEmpty()) { |
- new_syntax = false; |
- break; |
- } |
- } |
- |
- if (new_syntax) |
- native_window_->UpdateDraggableRegions(regions); |
- else |
- native_window_->UpdateLegacyDraggableRegions(regions); |
+ native_window_->UpdateDraggableRegions(regions); |
} |
void ShellWindow::OnImageLoaded(const gfx::Image& image, |
@@ -479,3 +463,21 @@ void ShellWindow::SaveWindowPosition() |
gfx::Rect bounds = native_window_->GetBounds(); |
cache->SaveGeometry(extension()->id(), window_key_, bounds); |
} |
+ |
+// static |
+SkRegion* ShellWindow::RawDraggableRegionsToSkRegion( |
+ const std::vector<extensions::DraggableRegion>& regions) { |
+ SkRegion* sk_region = new SkRegion; |
+ for (std::vector<extensions::DraggableRegion>::const_iterator iter = |
+ regions.begin(); |
+ iter != regions.end(); ++iter) { |
+ const extensions::DraggableRegion& region = *iter; |
+ sk_region->op( |
+ region.bounds.x(), |
+ region.bounds.y(), |
+ region.bounds.right(), |
+ region.bounds.bottom(), |
+ region.draggable ? SkRegion::kUnion_Op : SkRegion::kDifference_Op); |
+ } |
+ return sk_region; |
+} |