summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome/renderer/pepper_scrollbar_widget.cc6
-rw-r--r--chrome/renderer/pepper_scrollbar_widget.h2
-rw-r--r--chrome/renderer/pepper_widget.cc8
-rw-r--r--third_party/npapi/bindings/npapi_extensions.h11
4 files changed, 18 insertions, 9 deletions
diff --git a/chrome/renderer/pepper_scrollbar_widget.cc b/chrome/renderer/pepper_scrollbar_widget.cc
index 1f13ec5..4d45200 100644
--- a/chrome/renderer/pepper_scrollbar_widget.cc
+++ b/chrome/renderer/pepper_scrollbar_widget.cc
@@ -21,8 +21,9 @@ const float PepperScrollbarWidget::kInitialAutoscrollTimerDelay = 0.25f;
const float PepperScrollbarWidget::kAutoscrollTimerDelay = 0.05f;
-PepperScrollbarWidget::PepperScrollbarWidget()
- : vertical_(true),
+PepperScrollbarWidget::PepperScrollbarWidget(
+ const NPScrollbarCreateParams& params)
+ : vertical_(params.vertical),
enabled_(true),
length_(0),
total_length_(0),
@@ -122,7 +123,6 @@ void PepperScrollbarWidget::SetProperty(
NPRect* r = static_cast<NPRect*>(value);
gfx::Point location(r->left, r->top);
gfx::Size size(r->right - r->left, r->bottom - r->top);
- vertical_ = size.height() > size.width();
SetLocation(location,
vertical_ ? size.height() : size.width(),
total_length_);
diff --git a/chrome/renderer/pepper_scrollbar_widget.h b/chrome/renderer/pepper_scrollbar_widget.h
index a762bb8..9d37fdb 100644
--- a/chrome/renderer/pepper_scrollbar_widget.h
+++ b/chrome/renderer/pepper_scrollbar_widget.h
@@ -16,7 +16,7 @@
// instead.
class PepperScrollbarWidget : public PepperWidget {
public:
- PepperScrollbarWidget();
+ PepperScrollbarWidget(const NPScrollbarCreateParams& params);
~PepperScrollbarWidget();
virtual void Destroy();
diff --git a/chrome/renderer/pepper_widget.cc b/chrome/renderer/pepper_widget.cc
index 5fa2fc5..b733cc7 100644
--- a/chrome/renderer/pepper_widget.cc
+++ b/chrome/renderer/pepper_widget.cc
@@ -16,11 +16,15 @@ static int g_next_id;
typedef base::hash_map<int, PepperWidget*> WidgetMap;
static base::LazyInstance<WidgetMap> g_widgets(base::LINKER_INITIALIZED);
-NPError NPCreateWidget(NPP instance, NPWidgetType type, NPWidgetID* id) {
+NPError NPCreateWidget(NPP instance,
+ NPWidgetType type,
+ void* params,
+ NPWidgetID* id) {
PepperWidget* widget;
switch(type) {
case NPWidgetTypeScrollbar:
- widget = new PepperScrollbarWidget();
+ widget = new PepperScrollbarWidget(
+ *static_cast<NPScrollbarCreateParams*>(params));
break;
default:
return NPERR_INVALID_PARAM;
diff --git a/third_party/npapi/bindings/npapi_extensions.h b/third_party/npapi/bindings/npapi_extensions.h
index bdc0dd0..603e58a 100644
--- a/third_party/npapi/bindings/npapi_extensions.h
+++ b/third_party/npapi/bindings/npapi_extensions.h
@@ -434,10 +434,14 @@ typedef enum {
NPWidgetTypeScrollbar = 0,
} NPWidgetType;
-typedef struct _NPTickMarks {
+typedef struct _NPScrollbarCreateParams {
+ bool vertical;
+} NPScrollbarCreateParams;
+
+typedef struct _NPScrollbarTickMarks {
uint32 count;
uint32* tickmarks;
-} NPTickMarks;
+} NPScrollbarTickMarks;
typedef enum {
NPWidgetPropertyLocation = 0, // Set only. variable is NPRect*.
@@ -445,7 +449,7 @@ typedef enum {
NPWidgetPropertyScrollbarThickness = 2, // Get only. variable is int32*.
NPWidgetPropertyScrollbarPosition = 3, // variable is int32*.
NPWidgetPropertyScrollbarDocumentSize = 4, // Set only. variable is int32*.
- // Set only. variable is NPTickMarks*.
+ // Set only. variable is NPScrollbarTickMarks*.
NPWidgetPropertyScrollbarTickMarks = 5,
// Set only. variable is bool* (true for forward, false for backward).
NPWidgetPropertyScrollbarScrollByLine = 6,
@@ -462,6 +466,7 @@ typedef enum {
typedef NPError (*NPCreateWidgetPtr) (
NPP instance,
NPWidgetType type,
+ void* params, // Widget specific.
NPWidgetID* id);
// Destroys a widget.