1c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Copyright (c) 2010 The Chromium Authors. All rights reserved.
2c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Use of this source code is governed by a BSD-style license that can be
3c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// found in the LICENSE file.
4c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
5c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#ifndef WEBKIT_GLUE_FORM_DATA_H__
6c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#define WEBKIT_GLUE_FORM_DATA_H__
7c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
8c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include <vector>
9c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
10a1fe9c0450e6d56112949b33ef2f7491e0cf0f60Kristian Monsen#ifdef ANDROID
11a1fe9c0450e6d56112949b33ef2f7491e0cf0f60Kristian Monsen#include "base/base_api.h"
12a1fe9c0450e6d56112949b33ef2f7491e0cf0f60Kristian Monsen#endif
13c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "base/string_util.h"
14c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "googleurl/src/gurl.h"
15c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "webkit/glue/form_field.h"
16c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
17c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochnamespace webkit_glue {
18c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
19c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Holds information about a form to be filled and/or submitted.
20a1fe9c0450e6d56112949b33ef2f7491e0cf0f60Kristian Monsenstruct
21a1fe9c0450e6d56112949b33ef2f7491e0cf0f60Kristian Monsen#ifdef ANDROID
22a1fe9c0450e6d56112949b33ef2f7491e0cf0f60Kristian MonsenBASE_API
23a1fe9c0450e6d56112949b33ef2f7491e0cf0f60Kristian Monsen#endif
24a1fe9c0450e6d56112949b33ef2f7491e0cf0f60Kristian MonsenFormData {
25c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // The name of the form.
26c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  string16 name;
27c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // GET or POST.
28c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  string16 method;
29c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // The URL (minus query parameters) containing the form.
30c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  GURL origin;
31c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // The action target of the form.
32c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  GURL action;
333345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  // true if this form was submitted by a user gesture and not javascript.
343345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  bool user_submitted;
35c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // A vector of all the input fields in the form.
36c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  std::vector<FormField> fields;
37c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
383345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  FormData();
393345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  FormData(const FormData& data);
403345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  ~FormData();
413345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick
42c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // Used by FormStructureTest.
433345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  bool operator==(const FormData& form) const;
44c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch};
45c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
46c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch}  // namespace webkit_glue
47c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
48c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#endif  // WEBKIT_GLUE_FORM_DATA_H__
49