diff --git a/Graphics/UI/Gtk/WebKit/DOM/BarInfo.chs b/Graphics/UI/Gtk/WebKit/DOM/BarInfo.chs
deleted file mode 100644
--- a/Graphics/UI/Gtk/WebKit/DOM/BarInfo.chs
+++ /dev/null
@@ -1,12 +0,0 @@
-module Graphics.UI.Gtk.WebKit.DOM.BarInfo (barInfoGetVisible) where
-import System.Glib.FFI
-import System.Glib.UTFString
-import Control.Applicative
-{#import Graphics.UI.Gtk.WebKit.Types#}
-import System.Glib.GError
-import Graphics.UI.Gtk.WebKit.DOM.EventM
- 
-barInfoGetVisible :: (BarInfoClass self) => self -> IO Bool
-barInfoGetVisible self
-  = toBool <$>
-      ({# call webkit_dom_bar_info_get_visible #} (toBarInfo self))
diff --git a/Graphics/UI/Gtk/WebKit/DOM/BarProp.chs b/Graphics/UI/Gtk/WebKit/DOM/BarProp.chs
new file mode 100644
--- /dev/null
+++ b/Graphics/UI/Gtk/WebKit/DOM/BarProp.chs
@@ -0,0 +1,18 @@
+module Graphics.UI.Gtk.WebKit.DOM.BarProp (
+#if WEBKIT_CHECK_VERSION(2,2,2)
+	barPropGetVisible
+#endif
+    ) where
+import System.Glib.FFI
+import System.Glib.UTFString
+import Control.Applicative
+{#import Graphics.UI.Gtk.WebKit.Types#}
+import System.Glib.GError
+import Graphics.UI.Gtk.WebKit.DOM.EventM
+ 
+#if WEBKIT_CHECK_VERSION(2,2,2)
+barPropGetVisible :: (BarPropClass self) => self -> IO Bool
+barPropGetVisible self
+  = toBool <$>
+      ({# call webkit_dom_bar_prop_get_visible #} (toBarProp self))
+#endif
diff --git a/Graphics/UI/Gtk/WebKit/DOM/CSSStyleDeclaration.chs b/Graphics/UI/Gtk/WebKit/DOM/CSSStyleDeclaration.chs
--- a/Graphics/UI/Gtk/WebKit/DOM/CSSStyleDeclaration.chs
+++ b/Graphics/UI/Gtk/WebKit/DOM/CSSStyleDeclaration.chs
@@ -1,6 +1,5 @@
 module Graphics.UI.Gtk.WebKit.DOM.CSSStyleDeclaration
        (cssStyleDeclarationGetPropertyValue,
-        cssStyleDeclarationGetPropertyCSSValue,
         cssStyleDeclarationRemoveProperty,
         cssStyleDeclarationGetPropertyPriority,
         cssStyleDeclarationSetProperty, cssStyleDeclarationItem,
@@ -26,17 +25,6 @@
            propertyNamePtr)
       >>=
       readUTFString
- 
-cssStyleDeclarationGetPropertyCSSValue ::
-                                       (CSSStyleDeclarationClass self) =>
-                                         self -> String -> IO (Maybe CSSValue)
-cssStyleDeclarationGetPropertyCSSValue self propertyName
-  = maybeNull (makeNewGObject mkCSSValue)
-      (withUTFString propertyName $
-         \ propertyNamePtr ->
-           {# call webkit_dom_css_style_declaration_get_property_css_value #}
-             (toCSSStyleDeclaration self)
-             propertyNamePtr)
  
 cssStyleDeclarationRemoveProperty ::
                                   (CSSStyleDeclarationClass self) => self -> String -> IO String
diff --git a/Graphics/UI/Gtk/WebKit/DOM/Console.chs b/Graphics/UI/Gtk/WebKit/DOM/Console.chs
--- a/Graphics/UI/Gtk/WebKit/DOM/Console.chs
+++ b/Graphics/UI/Gtk/WebKit/DOM/Console.chs
@@ -1,5 +1,5 @@
 module Graphics.UI.Gtk.WebKit.DOM.Console
-       (consoleTime, consoleGroupEnd, consoleGetMemory) where
+       (consoleTime, consoleGroupEnd) where
 import System.Glib.FFI
 import System.Glib.UTFString
 import Control.Applicative
@@ -16,9 +16,3 @@
 consoleGroupEnd :: (ConsoleClass self) => self -> IO ()
 consoleGroupEnd self
   = {# call webkit_dom_console_group_end #} (toConsole self)
- 
-consoleGetMemory ::
-                 (ConsoleClass self) => self -> IO (Maybe MemoryInfo)
-consoleGetMemory self
-  = maybeNull (makeNewGObject mkMemoryInfo)
-      ({# call webkit_dom_console_get_memory #} (toConsole self))
diff --git a/Graphics/UI/Gtk/WebKit/DOM/DOMNamedFlowCollection.chs b/Graphics/UI/Gtk/WebKit/DOM/DOMNamedFlowCollection.chs
new file mode 100644
--- /dev/null
+++ b/Graphics/UI/Gtk/WebKit/DOM/DOMNamedFlowCollection.chs
@@ -0,0 +1,43 @@
+module Graphics.UI.Gtk.WebKit.DOM.DOMNamedFlowCollection
+       (
+#if WEBKIT_CHECK_VERSION(2,2,2)
+        domNamedFlowCollectionItem, domNamedFlowCollectionNamedItem,
+        domNamedFlowCollectionGetLength
+#endif
+       )
+       where
+import System.Glib.FFI
+import System.Glib.UTFString
+import Control.Applicative
+{#import Graphics.UI.Gtk.WebKit.Types#}
+import System.Glib.GError
+import Graphics.UI.Gtk.WebKit.DOM.EventM
+ 
+#if WEBKIT_CHECK_VERSION(2,2,2)
+domNamedFlowCollectionItem ::
+                           (DOMNamedFlowCollectionClass self) =>
+                             self -> Word -> IO (Maybe WebKitNamedFlow)
+domNamedFlowCollectionItem self index
+  = maybeNull (makeNewGObject mkWebKitNamedFlow)
+      ({# call webkit_dom_dom_named_flow_collection_item #}
+         (toDOMNamedFlowCollection self)
+         (fromIntegral index))
+ 
+domNamedFlowCollectionNamedItem ::
+                                (DOMNamedFlowCollectionClass self) =>
+                                  self -> String -> IO (Maybe WebKitNamedFlow)
+domNamedFlowCollectionNamedItem self name
+  = maybeNull (makeNewGObject mkWebKitNamedFlow)
+      (withUTFString name $
+         \ namePtr ->
+           {# call webkit_dom_dom_named_flow_collection_named_item #}
+             (toDOMNamedFlowCollection self)
+             namePtr)
+ 
+domNamedFlowCollectionGetLength ::
+                                (DOMNamedFlowCollectionClass self) => self -> IO Word
+domNamedFlowCollectionGetLength self
+  = fromIntegral <$>
+      ({# call webkit_dom_dom_named_flow_collection_get_length #}
+         (toDOMNamedFlowCollection self))
+#endif
diff --git a/Graphics/UI/Gtk/WebKit/DOM/DOMWindow.chs b/Graphics/UI/Gtk/WebKit/DOM/DOMWindow.chs
--- a/Graphics/UI/Gtk/WebKit/DOM/DOMWindow.chs
+++ b/Graphics/UI/Gtk/WebKit/DOM/DOMWindow.chs
@@ -10,9 +10,12 @@
         domWindowClearInterval, domWindowAtob, domWindowBtoa,
         domWindowDispatchEvent, domWindowCaptureEvents,
         domWindowReleaseEvents, domWindowGetScreen, domWindowGetHistory,
+#if WEBKIT_CHECK_VERSION(2,2,2)
         domWindowGetLocationbar, domWindowGetMenubar,
         domWindowGetPersonalbar, domWindowGetScrollbars,
-        domWindowGetStatusbar, domWindowGetToolbar, domWindowGetNavigator,
+        domWindowGetStatusbar, domWindowGetToolbar,
+#endif
+        domWindowGetNavigator,
         domWindowGetClientInformation, domWindowGetFrameElement,
         domWindowGetOffscreenBuffering, domWindowGetOuterHeight,
         domWindowGetOuterWidth, domWindowGetInnerHeight,
@@ -27,7 +30,11 @@
         domWindowGetTop, domWindowGetDocument, domWindowGetStyleMedia,
         domWindowGetDevicePixelRatio, domWindowGetApplicationCache,
         domWindowGetSessionStorage, domWindowGetLocalStorage,
-        domWindowGetConsole, domWindowOnabort, domWindowOnbeforeunload,
+        domWindowGetConsole,
+#if WEBKIT_CHECK_VERSION(2,2,2)
+        domWindowGetCSS,
+#endif
+        domWindowOnabort, domWindowOnbeforeunload,
         domWindowOnblur, domWindowOncanplay, domWindowOncanplaythrough,
         domWindowOnchange, domWindowOnclick, domWindowOncontextmenu,
         domWindowOndblclick, domWindowOndrag, domWindowOndragend,
@@ -38,7 +45,11 @@
         domWindowOninvalid, domWindowOnkeydown, domWindowOnkeypress,
         domWindowOnkeyup, domWindowOnload, domWindowOnloadeddata,
         domWindowOnloadedmetadata, domWindowOnloadstart,
-        domWindowOnmessage, domWindowOnmousedown, domWindowOnmousemove,
+        domWindowOnmessage, domWindowOnmousedown,
+#if WEBKIT_CHECK_VERSION(2,2,2)
+        domWindowOnmouseenter, domWindowOnmouseleave,
+#endif
+        domWindowOnmousemove,
         domWindowOnmouseout, domWindowOnmouseover, domWindowOnmouseup,
         domWindowOnmousewheel, domWindowOnoffline, domWindowOnonline,
         domWindowOnpagehide, domWindowOnpageshow, domWindowOnpause,
@@ -51,6 +62,9 @@
         domWindowOnreset, domWindowOnsearch, domWindowOnwebkitanimationend,
         domWindowOnwebkitanimationiteration,
         domWindowOnwebkitanimationstart, domWindowOnwebkittransitionend,
+#if WEBKIT_CHECK_VERSION(2,2,2)
+        domWindowOntransitionend,
+#endif
         domWindowOntouchstart, domWindowOntouchmove, domWindowOntouchend,
         domWindowOntouchcancel, domWindowOndevicemotion,
         domWindowOndeviceorientation
@@ -297,45 +311,47 @@
   = maybeNull (makeNewGObject mkHistory)
       ({# call webkit_dom_dom_window_get_history #} (toDOMWindow self))
  
+#if WEBKIT_CHECK_VERSION(2,2,2)
 domWindowGetLocationbar ::
-                        (DOMWindowClass self) => self -> IO (Maybe BarInfo)
+                        (DOMWindowClass self) => self -> IO (Maybe BarProp)
 domWindowGetLocationbar self
-  = maybeNull (makeNewGObject mkBarInfo)
+  = maybeNull (makeNewGObject mkBarProp)
       ({# call webkit_dom_dom_window_get_locationbar #}
          (toDOMWindow self))
  
 domWindowGetMenubar ::
-                    (DOMWindowClass self) => self -> IO (Maybe BarInfo)
+                    (DOMWindowClass self) => self -> IO (Maybe BarProp)
 domWindowGetMenubar self
-  = maybeNull (makeNewGObject mkBarInfo)
+  = maybeNull (makeNewGObject mkBarProp)
       ({# call webkit_dom_dom_window_get_menubar #} (toDOMWindow self))
  
 domWindowGetPersonalbar ::
-                        (DOMWindowClass self) => self -> IO (Maybe BarInfo)
+                        (DOMWindowClass self) => self -> IO (Maybe BarProp)
 domWindowGetPersonalbar self
-  = maybeNull (makeNewGObject mkBarInfo)
+  = maybeNull (makeNewGObject mkBarProp)
       ({# call webkit_dom_dom_window_get_personalbar #}
          (toDOMWindow self))
  
 domWindowGetScrollbars ::
-                       (DOMWindowClass self) => self -> IO (Maybe BarInfo)
+                       (DOMWindowClass self) => self -> IO (Maybe BarProp)
 domWindowGetScrollbars self
-  = maybeNull (makeNewGObject mkBarInfo)
+  = maybeNull (makeNewGObject mkBarProp)
       ({# call webkit_dom_dom_window_get_scrollbars #}
          (toDOMWindow self))
  
 domWindowGetStatusbar ::
-                      (DOMWindowClass self) => self -> IO (Maybe BarInfo)
+                      (DOMWindowClass self) => self -> IO (Maybe BarProp)
 domWindowGetStatusbar self
-  = maybeNull (makeNewGObject mkBarInfo)
+  = maybeNull (makeNewGObject mkBarProp)
       ({# call webkit_dom_dom_window_get_statusbar #} (toDOMWindow self))
  
 domWindowGetToolbar ::
-                    (DOMWindowClass self) => self -> IO (Maybe BarInfo)
+                    (DOMWindowClass self) => self -> IO (Maybe BarProp)
 domWindowGetToolbar self
-  = maybeNull (makeNewGObject mkBarInfo)
+  = maybeNull (makeNewGObject mkBarProp)
       ({# call webkit_dom_dom_window_get_toolbar #} (toDOMWindow self))
- 
+#endif
+
 domWindowGetNavigator ::
                       (DOMWindowClass self) => self -> IO (Maybe Navigator)
 domWindowGetNavigator self
@@ -574,6 +590,14 @@
   = maybeNull (makeNewGObject mkConsole)
       ({# call webkit_dom_dom_window_get_console #} (toDOMWindow self))
  
+#if WEBKIT_CHECK_VERSION(2,2,2)
+domWindowGetCSS ::
+                (DOMWindowClass self) => self -> IO (Maybe DOMWindowCSS)
+domWindowGetCSS self
+  = maybeNull (makeNewGObject mkDOMWindowCSS)
+      ({# call webkit_dom_dom_window_get_css #} (toDOMWindow self))
+#endif
+
 domWindowOnabort ::
                  (DOMWindowClass self) => Signal self (EventM UIEvent self ())
 domWindowOnabort = (connect "abort")
@@ -706,6 +730,16 @@
                      (DOMWindowClass self) => Signal self (EventM MouseEvent self ())
 domWindowOnmousedown = (connect "mousedown")
  
+#if WEBKIT_CHECK_VERSION(2,2,2)
+domWindowOnmouseenter ::
+                      (DOMWindowClass self) => Signal self (EventM UIEvent self ())
+domWindowOnmouseenter = (connect "mouseenter")
+ 
+domWindowOnmouseleave ::
+                      (DOMWindowClass self) => Signal self (EventM UIEvent self ())
+domWindowOnmouseleave = (connect "mouseleave")
+#endif
+
 domWindowOnmousemove ::
                      (DOMWindowClass self) => Signal self (EventM MouseEvent self ())
 domWindowOnmousemove = (connect "mousemove")
@@ -843,6 +877,12 @@
                                (DOMWindowClass self) => Signal self (EventM UIEvent self ())
 domWindowOnwebkittransitionend = (connect "webkittransitionend")
  
+#if WEBKIT_CHECK_VERSION(2,2,2)
+domWindowOntransitionend ::
+                         (DOMWindowClass self) => Signal self (EventM UIEvent self ())
+domWindowOntransitionend = (connect "transitionend")
+#endif
+
 domWindowOntouchstart ::
                       (DOMWindowClass self) => Signal self (EventM UIEvent self ())
 domWindowOntouchstart = (connect "touchstart")
diff --git a/Graphics/UI/Gtk/WebKit/DOM/DOMWindowCSS.chs b/Graphics/UI/Gtk/WebKit/DOM/DOMWindowCSS.chs
new file mode 100644
--- /dev/null
+++ b/Graphics/UI/Gtk/WebKit/DOM/DOMWindowCSS.chs
@@ -0,0 +1,26 @@
+module Graphics.UI.Gtk.WebKit.DOM.DOMWindowCSS
+       (
+#if WEBKIT_CHECK_VERSION(2,2,2)
+       domWindowCSSSupports
+#endif
+       ) where
+import System.Glib.FFI
+import System.Glib.UTFString
+import Control.Applicative
+{#import Graphics.UI.Gtk.WebKit.Types#}
+import System.Glib.GError
+import Graphics.UI.Gtk.WebKit.DOM.EventM
+ 
+#if WEBKIT_CHECK_VERSION(2,2,2)
+domWindowCSSSupports ::
+                     (DOMWindowCSSClass self) => self -> String -> String -> IO Bool
+domWindowCSSSupports self property value
+  = toBool <$>
+      (withUTFString value $
+         \ valuePtr ->
+           withUTFString property $
+             \ propertyPtr ->
+               {# call webkit_dom_dom_window_css_supports #} (toDOMWindowCSS self)
+                 propertyPtr
+             valuePtr)
+#endif
diff --git a/Graphics/UI/Gtk/WebKit/DOM/Document.chs b/Graphics/UI/Gtk/WebKit/DOM/Document.chs
--- a/Graphics/UI/Gtk/WebKit/DOM/Document.chs
+++ b/Graphics/UI/Gtk/WebKit/DOM/Document.chs
@@ -16,6 +16,9 @@
         documentElementFromPoint, documentCaretRangeFromPoint,
         documentCreateCSSStyleDeclaration, documentGetElementsByClassName,
         documentQuerySelector, documentQuerySelectorAll,
+#if WEBKIT_CHECK_VERSION(2,2,2)
+        documentWebkitExitPointerLock, documentWebkitGetNamedFlows,
+#endif
         documentGetDoctype, documentGetImplementation,
         documentGetDocumentElement, documentGetInputEncoding,
         documentGetXmlEncoding, documentSetXmlVersion,
@@ -42,6 +45,9 @@
         documentOnerror, documentOnfocus, documentOninput,
         documentOninvalid, documentOnkeydown, documentOnkeypress,
         documentOnkeyup, documentOnload, documentOnmousedown,
+#if WEBKIT_CHECK_VERSION(2,2,2)
+        documentOnmouseenter, documentOnmouseleave,
+#endif
         documentOnmousemove, documentOnmouseout, documentOnmouseover,
         documentOnmouseup, documentOnmousewheel,
         documentOnreadystatechange, documentOnscroll, documentOnselect,
@@ -55,11 +61,17 @@
 #if WEBKIT_CHECK_VERSION(1,10,0)
         documentOnwebkitpointerlockchange, documentOnwebkitpointerlockerror,
 #endif
-        documentGetWebkitVisibilityState,
-        documentGetWebkitHidden
+#if WEBKIT_CHECK_VERSION(2,2,2)
+        documentOnsecuritypolicyviolation,
+#endif
+        documentGetVisibilityState,
+        documentGetHidden
 #if WEBKIT_CHECK_VERSION(1,10,0)
       , documentGetSecurityPolicy
 #endif
+#if WEBKIT_CHECK_VERSION(2,2,2)
+      , documentGetCurrentScript
+#endif
         )
        where
 import System.Glib.FFI
@@ -492,6 +504,21 @@
                  selectorsPtr
              errorPtr_)
 
+#if WEBKIT_CHECK_VERSION(2,2,2)
+documentWebkitExitPointerLock ::
+                              (DocumentClass self) => self -> IO ()
+documentWebkitExitPointerLock self
+  = {# call webkit_dom_document_webkit_exit_pointer_lock #}
+      (toDocument self)
+ 
+documentWebkitGetNamedFlows ::
+                            (DocumentClass self) => self -> IO (Maybe DOMNamedFlowCollection)
+documentWebkitGetNamedFlows self
+  = maybeNull (makeNewGObject mkDOMNamedFlowCollection)
+      ({# call webkit_dom_document_webkit_get_named_flows #}
+         (toDocument self))
+#endif
+
 documentGetDoctype ::
                    (DocumentClass self) => self -> IO (Maybe DocumentType)
 documentGetDoctype self
@@ -853,6 +880,16 @@
                     (DocumentClass self) => Signal self (EventM MouseEvent self ())
 documentOnmousedown = (connect "mousedown")
 
+#if WEBKIT_CHECK_VERSION(2,2,2)
+documentOnmouseenter ::
+                     (DocumentClass self) => Signal self (EventM UIEvent self ())
+documentOnmouseenter = (connect "mouseenter")
+
+documentOnmouseleave ::
+                     (DocumentClass self) => Signal self (EventM UIEvent self ())
+documentOnmouseleave = (connect "mouseleave")
+#endif
+
 documentOnmousemove ::
                     (DocumentClass self) => Signal self (EventM MouseEvent self ())
 documentOnmousemove = (connect "mousemove")
@@ -966,22 +1003,48 @@
   = (connect "webkitpointerlockerror")
 #endif
 
-documentGetWebkitVisibilityState ::
-                                 (DocumentClass self) => self -> IO String
-documentGetWebkitVisibilityState self
+#if WEBKIT_CHECK_VERSION(2,2,2)
+documentOnsecuritypolicyviolation ::
+                                  (DocumentClass self) => Signal self (EventM UIEvent self ())
+documentOnsecuritypolicyviolation
+  = (connect "securitypolicyviolation")
+#endif
+
+documentGetVisibilityState ::
+                           (DocumentClass self) => self -> IO String
+documentGetVisibilityState self
+#if WEBKIT_CHECK_VERSION(2,2,2)
+  = ({# call webkit_dom_document_get_visibility_state #}
+#else
   = ({# call webkit_dom_document_get_webkit_visibility_state #}
+#endif
        (toDocument self))
       >>=
       readUTFString
 
-documentGetWebkitHidden :: (DocumentClass self) => self -> IO Bool
-documentGetWebkitHidden self
+documentGetHidden :: (DocumentClass self) => self -> IO Bool
+documentGetHidden self
   = toBool <$>
-      ({# call webkit_dom_document_get_webkit_hidden #}
+#if WEBKIT_CHECK_VERSION(2,2,2)
+      ({# call webkit_dom_document_get_hidden #} (toDocument self))
+#else
+      ({# call webkit_dom_document_get_webkit_hidden #} (toDocument self))
+#endif
+ 
+#if WEBKIT_CHECK_VERSION(1,10,0)
+documentGetSecurityPolicy ::
+                          (DocumentClass self) => self -> IO (Maybe DOMSecurityPolicy)
+documentGetSecurityPolicy self
+  = maybeNull (makeNewGObject mkDOMSecurityPolicy)
+      ({# call webkit_dom_document_get_security_policy #}
          (toDocument self))
+#endif
 
-#if WEBKIT_CHECK_VERSION(1,10,0)
-documentGetSecurityPolicy :: (DocumentClass self) => self -> IO (Maybe DOMSecurityPolicy)
-documentGetSecurityPolicy =
-    maybeNull (makeNewGObject mkDOMSecurityPolicy) . {# call webkit_dom_document_get_security_policy #} . toDocument
+#if WEBKIT_CHECK_VERSION(2,2,2)
+documentGetCurrentScript ::
+                         (DocumentClass self) => self -> IO (Maybe HTMLScriptElement)
+documentGetCurrentScript self
+  = maybeNull (makeNewGObject mkHTMLScriptElement)
+      ({# call webkit_dom_document_get_current_script #}
+         (toDocument self))
 #endif
diff --git a/Graphics/UI/Gtk/WebKit/DOM/Element.chs b/Graphics/UI/Gtk/WebKit/DOM/Element.chs
--- a/Graphics/UI/Gtk/WebKit/DOM/Element.chs
+++ b/Graphics/UI/Gtk/WebKit/DOM/Element.chs
@@ -2,6 +2,9 @@
        (elementGetAttribute, elementSetAttribute, elementRemoveAttribute,
         elementGetAttributeNode, elementSetAttributeNode,
         elementRemoveAttributeNode, elementGetElementsByTagName,
+#if WEBKIT_CHECK_VERSION(2,2,2)
+        elementHasAttributes,
+#endif
         elementGetAttributeNS, elementSetAttributeNS,
         elementRemoveAttributeNS, elementGetElementsByTagNameNS,
         elementGetAttributeNodeNS, elementSetAttributeNodeNS,
@@ -10,7 +13,18 @@
         elementScrollByLines, elementScrollByPages,
         elementGetElementsByClassName, elementQuerySelector,
         elementQuerySelectorAll, elementWebkitMatchesSelector,
-        elementGetTagName, elementGetStyle, elementGetOffsetLeft,
+#if WEBKIT_CHECK_VERSION(2,2,2)
+        elementWebkitRequestPointerLock,
+#endif
+        elementGetTagName,
+#if WEBKIT_CHECK_VERSION(2,2,2)
+        elementGetAttributes,
+#endif
+        elementGetStyle,
+#if WEBKIT_CHECK_VERSION(2,2,2)
+        elementSetId, elementGetId,
+#endif
+        elementGetOffsetLeft,
         elementGetOffsetTop, elementGetOffsetWidth, elementGetOffsetHeight,
         elementGetOffsetParent, elementGetClientLeft, elementGetClientTop,
         elementGetClientWidth, elementGetClientHeight,
@@ -31,7 +45,11 @@
         elementOndragover, elementOndragstart, elementOndrop,
         elementOnerror, elementOnfocus, elementOninput, elementOninvalid,
         elementOnkeydown, elementOnkeypress, elementOnkeyup, elementOnload,
-        elementOnmousedown, elementOnmousemove, elementOnmouseout,
+        elementOnmousedown,
+#if WEBKIT_CHECK_VERSION(2,2,2)
+        elementOnmouseenter, elementOnmouseleave,
+#endif
+        elementOnmousemove, elementOnmouseout,
         elementOnmouseover, elementOnmouseup, elementOnmousewheel,
         elementOnscroll, elementOnselect, elementOnsubmit,
         elementOnbeforecut, elementOncut, elementOnbeforecopy,
@@ -122,6 +140,13 @@
              (toElement self)
              namePtr)
  
+#if WEBKIT_CHECK_VERSION(2,2,2)
+elementHasAttributes :: (ElementClass self) => self -> IO Bool
+elementHasAttributes self
+  = toBool <$>
+      ({# call webkit_dom_element_has_attributes #} (toElement self))
+#endif
+
 elementGetAttributeNS ::
                       (ElementClass self) => self -> String -> String -> IO String
 elementGetAttributeNS self namespaceURI localName
@@ -302,17 +327,46 @@
                  selectorsPtr
              errorPtr_)
  
+#if WEBKIT_CHECK_VERSION(2,2,2)
+elementWebkitRequestPointerLock ::
+                                (ElementClass self) => self -> IO ()
+elementWebkitRequestPointerLock self
+  = {# call webkit_dom_element_webkit_request_pointer_lock #}
+      (toElement self)
+#endif
+
 elementGetTagName :: (ElementClass self) => self -> IO String
 elementGetTagName self
   = ({# call webkit_dom_element_get_tag_name #} (toElement self)) >>=
       readUTFString
  
+#if WEBKIT_CHECK_VERSION(2,2,2)
+elementGetAttributes ::
+                     (ElementClass self) => self -> IO (Maybe NamedNodeMap)
+elementGetAttributes self
+  = maybeNull (makeNewGObject mkNamedNodeMap)
+      ({# call webkit_dom_element_get_attributes #} (toElement self))
+#endif
+
 elementGetStyle ::
                 (ElementClass self) => self -> IO (Maybe CSSStyleDeclaration)
 elementGetStyle self
   = maybeNull (makeNewGObject mkCSSStyleDeclaration)
       ({# call webkit_dom_element_get_style #} (toElement self))
  
+#if WEBKIT_CHECK_VERSION(2,2,2)
+elementSetId :: (ElementClass self) => self -> String -> IO ()
+elementSetId self val
+  = withUTFString val $
+      \ valPtr ->
+        {# call webkit_dom_element_set_id #} (toElement self) valPtr
+ 
+elementGetId :: (ElementClass self) => self -> IO String
+elementGetId self
+  = ({# call webkit_dom_element_get_id #} (toElement self)) >>=
+      readUTFString
+#endif
+
 elementGetOffsetLeft :: (ElementClass self) => self -> IO Int
 elementGetOffsetLeft self
   = fromIntegral <$>
@@ -544,6 +598,16 @@
                    (ElementClass self) => Signal self (EventM MouseEvent self ())
 elementOnmousedown = (connect "mousedown")
  
+#if WEBKIT_CHECK_VERSION(2,2,2)
+elementOnmouseenter ::
+                    (ElementClass self) => Signal self (EventM UIEvent self ())
+elementOnmouseenter = (connect "mouseenter")
+ 
+elementOnmouseleave ::
+                    (ElementClass self) => Signal self (EventM UIEvent self ())
+elementOnmouseleave = (connect "mouseleave")
+#endif
+
 elementOnmousemove ::
                    (ElementClass self) => Signal self (EventM MouseEvent self ())
 elementOnmousemove = (connect "mousemove")
diff --git a/Graphics/UI/Gtk/WebKit/DOM/File.chs b/Graphics/UI/Gtk/WebKit/DOM/File.chs
--- a/Graphics/UI/Gtk/WebKit/DOM/File.chs
+++ b/Graphics/UI/Gtk/WebKit/DOM/File.chs
@@ -1,4 +1,9 @@
-module Graphics.UI.Gtk.WebKit.DOM.File (fileGetName) where
+module Graphics.UI.Gtk.WebKit.DOM.File
+       (fileGetName,
+#if WEBKIT_CHECK_VERSION(2,2,2)
+        fileGetWebkitRelativePath
+#endif
+       ) where
 import System.Glib.FFI
 import System.Glib.UTFString
 import Control.Applicative
@@ -10,3 +15,12 @@
 fileGetName self
   = ({# call webkit_dom_file_get_name #} (toFile self)) >>=
       readUTFString
+ 
+#if WEBKIT_CHECK_VERSION(2,2,2)
+fileGetWebkitRelativePath :: (FileClass self) => self -> IO String
+fileGetWebkitRelativePath self
+  = ({# call webkit_dom_file_get_webkit_relative_path #}
+       (toFile self))
+      >>=
+      readUTFString
+#endif
diff --git a/Graphics/UI/Gtk/WebKit/DOM/Geolocation.chs b/Graphics/UI/Gtk/WebKit/DOM/Geolocation.chs
--- a/Graphics/UI/Gtk/WebKit/DOM/Geolocation.chs
+++ b/Graphics/UI/Gtk/WebKit/DOM/Geolocation.chs
@@ -9,7 +9,7 @@
  
 geolocationClearWatch ::
                       (GeolocationClass self) => self -> Int -> IO ()
-geolocationClearWatch self watchId
+geolocationClearWatch self watchID
   = {# call webkit_dom_geolocation_clear_watch #}
       (toGeolocation self)
-      (fromIntegral watchId)
+      (fromIntegral watchID)
diff --git a/Graphics/UI/Gtk/WebKit/DOM/HTMLCollection.chs b/Graphics/UI/Gtk/WebKit/DOM/HTMLCollection.chs
--- a/Graphics/UI/Gtk/WebKit/DOM/HTMLCollection.chs
+++ b/Graphics/UI/Gtk/WebKit/DOM/HTMLCollection.chs
@@ -1,5 +1,10 @@
 module Graphics.UI.Gtk.WebKit.DOM.HTMLCollection
-       (htmlCollectionItem, htmlCollectionGetLength) where
+       (htmlCollectionItem,
+#if WEBKIT_CHECK_VERSION(2,2,2)
+        htmlCollectionNamedItem,
+#endif
+        htmlCollectionGetLength)
+       where
 import System.Glib.FFI
 import System.Glib.UTFString
 import Control.Applicative
@@ -14,6 +19,18 @@
       ({# call webkit_dom_html_collection_item #} (toHTMLCollection self)
          (fromIntegral index))
  
+#if WEBKIT_CHECK_VERSION(2,2,2)
+htmlCollectionNamedItem ::
+                        (HTMLCollectionClass self) => self -> String -> IO (Maybe Node)
+htmlCollectionNamedItem self name
+  = maybeNull (makeNewGObject mkNode)
+      (withUTFString name $
+         \ namePtr ->
+           {# call webkit_dom_html_collection_named_item #}
+             (toHTMLCollection self)
+             namePtr)
+#endif
+
 htmlCollectionGetLength ::
                         (HTMLCollectionClass self) => self -> IO Word
 htmlCollectionGetLength self
diff --git a/Graphics/UI/Gtk/WebKit/DOM/HTMLDocument.chs b/Graphics/UI/Gtk/WebKit/DOM/HTMLDocument.chs
--- a/Graphics/UI/Gtk/WebKit/DOM/HTMLDocument.chs
+++ b/Graphics/UI/Gtk/WebKit/DOM/HTMLDocument.chs
@@ -1,17 +1,16 @@
 module Graphics.UI.Gtk.WebKit.DOM.HTMLDocument
-       (htmlDocumentOpen, htmlDocumentClose, htmlDocumentClear,
-        htmlDocumentCaptureEvents, htmlDocumentReleaseEvents,
-        htmlDocumentHasFocus, htmlDocumentGetEmbeds,
-        htmlDocumentGetPlugins, htmlDocumentGetScripts,
-        htmlDocumentGetWidth, htmlDocumentGetHeight, htmlDocumentSetDir,
-        htmlDocumentGetDir, htmlDocumentSetDesignMode,
-        htmlDocumentGetDesignMode, htmlDocumentGetCompatMode,
-        htmlDocumentGetActiveElement, htmlDocumentSetBgColor,
-        htmlDocumentGetBgColor, htmlDocumentSetFgColor,
-        htmlDocumentGetFgColor, htmlDocumentSetAlinkColor,
-        htmlDocumentGetAlinkColor, htmlDocumentSetLinkColor,
-        htmlDocumentGetLinkColor, htmlDocumentSetVlinkColor,
-        htmlDocumentGetVlinkColor)
+       (htmlDocumentClose, htmlDocumentClear, htmlDocumentCaptureEvents,
+        htmlDocumentReleaseEvents, htmlDocumentHasFocus,
+        htmlDocumentGetEmbeds, htmlDocumentGetPlugins,
+        htmlDocumentGetScripts, htmlDocumentGetWidth,
+        htmlDocumentGetHeight, htmlDocumentSetDir, htmlDocumentGetDir,
+        htmlDocumentSetDesignMode, htmlDocumentGetDesignMode,
+        htmlDocumentGetCompatMode, htmlDocumentGetActiveElement,
+        htmlDocumentSetBgColor, htmlDocumentGetBgColor,
+        htmlDocumentSetFgColor, htmlDocumentGetFgColor,
+        htmlDocumentSetAlinkColor, htmlDocumentGetAlinkColor,
+        htmlDocumentSetLinkColor, htmlDocumentGetLinkColor,
+        htmlDocumentSetVlinkColor, htmlDocumentGetVlinkColor)
        where
 import System.Glib.FFI
 import System.Glib.UTFString
@@ -19,10 +18,6 @@
 {#import Graphics.UI.Gtk.WebKit.Types#}
 import System.Glib.GError
 import Graphics.UI.Gtk.WebKit.DOM.EventM
- 
-htmlDocumentOpen :: (HTMLDocumentClass self) => self -> IO ()
-htmlDocumentOpen self
-  = {# call webkit_dom_html_document_open #} (toHTMLDocument self)
  
 htmlDocumentClose :: (HTMLDocumentClass self) => self -> IO ()
 htmlDocumentClose self
diff --git a/Graphics/UI/Gtk/WebKit/DOM/HTMLElement.chs b/Graphics/UI/Gtk/WebKit/DOM/HTMLElement.chs
--- a/Graphics/UI/Gtk/WebKit/DOM/HTMLElement.chs
+++ b/Graphics/UI/Gtk/WebKit/DOM/HTMLElement.chs
@@ -1,8 +1,8 @@
 module Graphics.UI.Gtk.WebKit.DOM.HTMLElement
        (htmlElementInsertAdjacentElement, htmlElementInsertAdjacentHTML,
-        htmlElementInsertAdjacentText, htmlElementClick, htmlElementSetId,
-        htmlElementGetId, htmlElementSetTitle, htmlElementGetTitle,
-        htmlElementSetLang, htmlElementGetLang, htmlElementSetTranslate,
+        htmlElementInsertAdjacentText, htmlElementClick,
+        htmlElementSetTitle, htmlElementGetTitle, htmlElementSetLang,
+        htmlElementGetLang, htmlElementSetTranslate,
         htmlElementGetTranslate, htmlElementSetDir, htmlElementGetDir,
         htmlElementSetTabIndex, htmlElementGetTabIndex,
         htmlElementSetDraggable, htmlElementGetDraggable,
@@ -15,10 +15,7 @@
         htmlElementSetOuterText, htmlElementGetOuterText,
         htmlElementGetChildren, htmlElementSetContentEditable,
         htmlElementGetContentEditable, htmlElementGetIsContentEditable,
-        htmlElementSetSpellcheck, htmlElementGetSpellcheck,
-        htmlElementSetItemScope, htmlElementGetItemScope,
-        htmlElementGetItemType, htmlElementSetItemId, htmlElementGetItemId,
-        htmlElementGetItemRef, htmlElementGetItemProp)
+        htmlElementSetSpellcheck, htmlElementGetSpellcheck)
        where
 import System.Glib.FFI
 import System.Glib.UTFString
@@ -76,20 +73,6 @@
 htmlElementClick self
   = {# call webkit_dom_html_element_click #} (toHTMLElement self)
  
-htmlElementSetId ::
-                 (HTMLElementClass self) => self -> String -> IO ()
-htmlElementSetId self val
-  = withUTFString val $
-      \ valPtr ->
-        {# call webkit_dom_html_element_set_id #} (toHTMLElement self)
-          valPtr
- 
-htmlElementGetId :: (HTMLElementClass self) => self -> IO String
-htmlElementGetId self
-  = ({# call webkit_dom_html_element_get_id #} (toHTMLElement self))
-      >>=
-      readUTFString
- 
 htmlElementSetTitle ::
                     (HTMLElementClass self) => self -> String -> IO ()
 htmlElementSetTitle self val
@@ -348,55 +331,4 @@
 htmlElementGetSpellcheck self
   = toBool <$>
       ({# call webkit_dom_html_element_get_spellcheck #}
-         (toHTMLElement self))
- 
-htmlElementSetItemScope ::
-                        (HTMLElementClass self) => self -> Bool -> IO ()
-htmlElementSetItemScope self val
-  = {# call webkit_dom_html_element_set_item_scope #}
-      (toHTMLElement self)
-      (fromBool val)
- 
-htmlElementGetItemScope ::
-                        (HTMLElementClass self) => self -> IO Bool
-htmlElementGetItemScope self
-  = toBool <$>
-      ({# call webkit_dom_html_element_get_item_scope #}
-         (toHTMLElement self))
- 
-htmlElementGetItemType ::
-                       (HTMLElementClass self) => self -> IO (Maybe DOMSettableTokenList)
-htmlElementGetItemType self
-  = maybeNull (makeNewGObject mkDOMSettableTokenList)
-      ({# call webkit_dom_html_element_get_item_type #}
-         (toHTMLElement self))
- 
-htmlElementSetItemId ::
-                     (HTMLElementClass self) => self -> String -> IO ()
-htmlElementSetItemId self val
-  = withUTFString val $
-      \ valPtr ->
-        {# call webkit_dom_html_element_set_item_id #} (toHTMLElement self)
-          valPtr
- 
-htmlElementGetItemId ::
-                     (HTMLElementClass self) => self -> IO String
-htmlElementGetItemId self
-  = ({# call webkit_dom_html_element_get_item_id #}
-       (toHTMLElement self))
-      >>=
-      readUTFString
- 
-htmlElementGetItemRef ::
-                      (HTMLElementClass self) => self -> IO (Maybe DOMSettableTokenList)
-htmlElementGetItemRef self
-  = maybeNull (makeNewGObject mkDOMSettableTokenList)
-      ({# call webkit_dom_html_element_get_item_ref #}
-         (toHTMLElement self))
- 
-htmlElementGetItemProp ::
-                       (HTMLElementClass self) => self -> IO (Maybe DOMSettableTokenList)
-htmlElementGetItemProp self
-  = maybeNull (makeNewGObject mkDOMSettableTokenList)
-      ({# call webkit_dom_html_element_get_item_prop #}
          (toHTMLElement self))
diff --git a/Graphics/UI/Gtk/WebKit/DOM/HTMLImageElement.chs b/Graphics/UI/Gtk/WebKit/DOM/HTMLImageElement.chs
--- a/Graphics/UI/Gtk/WebKit/DOM/HTMLImageElement.chs
+++ b/Graphics/UI/Gtk/WebKit/DOM/HTMLImageElement.chs
@@ -9,6 +9,9 @@
         htmlImageElementSetIsMap, htmlImageElementGetIsMap,
         htmlImageElementSetLongDesc, htmlImageElementGetLongDesc,
         htmlImageElementSetSrc, htmlImageElementGetSrc,
+#if WEBKIT_CHECK_VERSION(2,2,2)
+        htmlImageElementSetSrcset, htmlImageElementGetSrcset,
+#endif
         htmlImageElementSetUseMap, htmlImageElementGetUseMap,
         htmlImageElementSetVspace, htmlImageElementGetVspace,
         htmlImageElementSetWidth, htmlImageElementGetWidth,
@@ -185,6 +188,25 @@
       >>=
       readUTFString
  
+#if WEBKIT_CHECK_VERSION(2,2,2)
+htmlImageElementSetSrcset ::
+                          (HTMLImageElementClass self) => self -> String -> IO ()
+htmlImageElementSetSrcset self val
+  = withUTFString val $
+      \ valPtr ->
+        {# call webkit_dom_html_image_element_set_srcset #}
+          (toHTMLImageElement self)
+          valPtr
+ 
+htmlImageElementGetSrcset ::
+                          (HTMLImageElementClass self) => self -> IO String
+htmlImageElementGetSrcset self
+  = ({# call webkit_dom_html_image_element_get_srcset #}
+       (toHTMLImageElement self))
+      >>=
+      readUTFString
+#endif
+
 htmlImageElementSetUseMap ::
                           (HTMLImageElementClass self) => self -> String -> IO ()
 htmlImageElementSetUseMap self val
diff --git a/Graphics/UI/Gtk/WebKit/DOM/HTMLInputElement.chs b/Graphics/UI/Gtk/WebKit/DOM/HTMLInputElement.chs
--- a/Graphics/UI/Gtk/WebKit/DOM/HTMLInputElement.chs
+++ b/Graphics/UI/Gtk/WebKit/DOM/HTMLInputElement.chs
@@ -1,7 +1,11 @@
 module Graphics.UI.Gtk.WebKit.DOM.HTMLInputElement
        (htmlInputElementStepUp, htmlInputElementStepDown,
         htmlInputElementCheckValidity, htmlInputElementSetCustomValidity,
-        htmlInputElementSelect, htmlInputElementSetValueForUser,
+        htmlInputElementSelect,
+#if WEBKIT_CHECK_VERSION(2,2,2)
+        htmlInputElementSetRangeText,
+#endif
+        htmlInputElementSetValueForUser,
         htmlInputElementSetAccept, htmlInputElementGetAccept,
         htmlInputElementSetAlt, htmlInputElementGetAlt,
         htmlInputElementSetAutocomplete, htmlInputElementGetAutocomplete,
@@ -107,6 +111,27 @@
 htmlInputElementSelect self
   = {# call webkit_dom_html_input_element_select #}
       (toHTMLInputElement self)
+ 
+#if WEBKIT_CHECK_VERSION(2,2,2)
+htmlInputElementSetRangeText ::
+                             (HTMLInputElementClass self) =>
+                               self -> String -> Word -> Word -> String -> IO ()
+htmlInputElementSetRangeText self replacement start end
+  selectionMode
+  = propagateGError $
+      \ errorPtr_ ->
+        withUTFString selectionMode $
+          \ selectionModePtr ->
+            withUTFString replacement $
+              \ replacementPtr ->
+                {# call webkit_dom_html_input_element_set_range_text #}
+                  (toHTMLInputElement self)
+                  replacementPtr
+              (fromIntegral start)
+              (fromIntegral end)
+              selectionModePtr
+          errorPtr_
+#endif
 
 htmlInputElementSetValueForUser ::
                                 (HTMLInputElementClass self) => self -> String -> IO ()
diff --git a/Graphics/UI/Gtk/WebKit/DOM/HTMLMediaElement.chs b/Graphics/UI/Gtk/WebKit/DOM/HTMLMediaElement.chs
--- a/Graphics/UI/Gtk/WebKit/DOM/HTMLMediaElement.chs
+++ b/Graphics/UI/Gtk/WebKit/DOM/HTMLMediaElement.chs
@@ -29,6 +29,9 @@
         htmlMediaElementGetWebkitClosedCaptionsVisible,
         htmlMediaElementGetWebkitAudioDecodedByteCount,
         htmlMediaElementGetWebkitVideoDecodedByteCount,
+#if WEBKIT_CHECK_VERSION(2,2,2)
+        htmlMediaElementOnwebkitneedkey,
+#endif
         htmlMediaElementSetMediaGroup, htmlMediaElementGetMediaGroup)
        where
 import System.Glib.FFI
@@ -162,7 +165,7 @@
          (toHTMLMediaElement self))
 
 htmlMediaElementSetCurrentTime ::
-                               (HTMLMediaElementClass self) => self -> Float -> IO ()
+                               (HTMLMediaElementClass self) => self -> Double -> IO ()
 htmlMediaElementSetCurrentTime self val
   = propagateGError $
       \ errorPtr_ ->
@@ -172,7 +175,7 @@
           errorPtr_
 
 htmlMediaElementGetCurrentTime ::
-                               (HTMLMediaElementClass self) => self -> IO Float
+                               (HTMLMediaElementClass self) => self -> IO Double
 htmlMediaElementGetCurrentTime self
   = realToFrac <$>
       ({# call webkit_dom_html_media_element_get_current_time #}
@@ -186,14 +189,14 @@
          (toHTMLMediaElement self))
 
 htmlMediaElementGetStartTime ::
-                             (HTMLMediaElementClass self) => self -> IO Float
+                             (HTMLMediaElementClass self) => self -> IO Double
 htmlMediaElementGetStartTime self
   = realToFrac <$>
       ({# call webkit_dom_html_media_element_get_start_time #}
          (toHTMLMediaElement self))
 
 htmlMediaElementGetDuration ::
-                            (HTMLMediaElementClass self) => self -> IO Float
+                            (HTMLMediaElementClass self) => self -> IO Double
 htmlMediaElementGetDuration self
   = realToFrac <$>
       ({# call webkit_dom_html_media_element_get_duration #}
@@ -207,7 +210,7 @@
          (toHTMLMediaElement self))
 
 htmlMediaElementSetDefaultPlaybackRate ::
-                                       (HTMLMediaElementClass self) => self -> Float -> IO ()
+                                       (HTMLMediaElementClass self) => self -> Double -> IO ()
 htmlMediaElementSetDefaultPlaybackRate self val
   = {# call webkit_dom_html_media_element_set_default_playback_rate
       #}
@@ -215,21 +218,21 @@
       (realToFrac val)
 
 htmlMediaElementGetDefaultPlaybackRate ::
-                                       (HTMLMediaElementClass self) => self -> IO Float
+                                       (HTMLMediaElementClass self) => self -> IO Double
 htmlMediaElementGetDefaultPlaybackRate self
   = realToFrac <$>
       ({# call webkit_dom_html_media_element_get_default_playback_rate #}
          (toHTMLMediaElement self))
 
 htmlMediaElementSetPlaybackRate ::
-                                (HTMLMediaElementClass self) => self -> Float -> IO ()
+                                (HTMLMediaElementClass self) => self -> Double -> IO ()
 htmlMediaElementSetPlaybackRate self val
   = {# call webkit_dom_html_media_element_set_playback_rate #}
       (toHTMLMediaElement self)
       (realToFrac val)
 
 htmlMediaElementGetPlaybackRate ::
-                                (HTMLMediaElementClass self) => self -> IO Float
+                                (HTMLMediaElementClass self) => self -> IO Double
 htmlMediaElementGetPlaybackRate self
   = realToFrac <$>
       ({# call webkit_dom_html_media_element_get_playback_rate #}
@@ -299,7 +302,7 @@
          (toHTMLMediaElement self))
 
 htmlMediaElementSetVolume ::
-                          (HTMLMediaElementClass self) => self -> Float -> IO ()
+                          (HTMLMediaElementClass self) => self -> Double -> IO ()
 htmlMediaElementSetVolume self val
   = propagateGError $
       \ errorPtr_ ->
@@ -309,7 +312,7 @@
           errorPtr_
 
 htmlMediaElementGetVolume ::
-                          (HTMLMediaElementClass self) => self -> IO Float
+                          (HTMLMediaElementClass self) => self -> IO Double
 htmlMediaElementGetVolume self
   = realToFrac <$>
       ({# call webkit_dom_html_media_element_get_volume #}
@@ -403,6 +406,13 @@
          webkit_dom_html_media_element_get_webkit_video_decoded_byte_count
          #}
          (toHTMLMediaElement self))
+
+#if WEBKIT_CHECK_VERSION(2,2,2)
+htmlMediaElementOnwebkitneedkey ::
+                                (HTMLMediaElementClass self) =>
+                                  Signal self (EventM UIEvent self ())
+htmlMediaElementOnwebkitneedkey = (connect "webkitneedkey")
+#endif
 
 htmlMediaElementSetMediaGroup ::
                               (HTMLMediaElementClass self) => self -> String -> IO ()
diff --git a/Graphics/UI/Gtk/WebKit/DOM/HTMLOptionsCollection.chs b/Graphics/UI/Gtk/WebKit/DOM/HTMLOptionsCollection.chs
--- a/Graphics/UI/Gtk/WebKit/DOM/HTMLOptionsCollection.chs
+++ b/Graphics/UI/Gtk/WebKit/DOM/HTMLOptionsCollection.chs
@@ -1,5 +1,9 @@
 module Graphics.UI.Gtk.WebKit.DOM.HTMLOptionsCollection
-       (htmlOptionsCollectionSetSelectedIndex,
+       (
+#if WEBKIT_CHECK_VERSION(2,2,2)
+        htmlOptionsCollectionNamedItem,
+#endif
+        htmlOptionsCollectionSetSelectedIndex,
         htmlOptionsCollectionGetSelectedIndex)
        where
 import System.Glib.FFI
@@ -9,6 +13,19 @@
 import System.Glib.GError
 import Graphics.UI.Gtk.WebKit.DOM.EventM
  
+#if WEBKIT_CHECK_VERSION(2,2,2)
+htmlOptionsCollectionNamedItem ::
+                               (HTMLOptionsCollectionClass self) =>
+                                 self -> String -> IO (Maybe Node)
+htmlOptionsCollectionNamedItem self name
+  = maybeNull (makeNewGObject mkNode)
+      (withUTFString name $
+         \ namePtr ->
+           {# call webkit_dom_html_options_collection_named_item #}
+             (toHTMLOptionsCollection self)
+             namePtr)
+#endif
+
 htmlOptionsCollectionSetSelectedIndex ::
                                       (HTMLOptionsCollectionClass self) => self -> Int -> IO ()
 htmlOptionsCollectionSetSelectedIndex self val
diff --git a/Graphics/UI/Gtk/WebKit/DOM/HTMLTextAreaElement.chs b/Graphics/UI/Gtk/WebKit/DOM/HTMLTextAreaElement.chs
--- a/Graphics/UI/Gtk/WebKit/DOM/HTMLTextAreaElement.chs
+++ b/Graphics/UI/Gtk/WebKit/DOM/HTMLTextAreaElement.chs
@@ -1,6 +1,9 @@
 module Graphics.UI.Gtk.WebKit.DOM.HTMLTextAreaElement
        (htmlTextAreaElementCheckValidity,
         htmlTextAreaElementSetCustomValidity, htmlTextAreaElementSelect,
+#if WEBKIT_CHECK_VERSION(2,2,2)
+        htmlTextAreaElementSetRangeText,
+#endif
         htmlTextAreaElementSetSelectionRange,
         htmlTextAreaElementSetAutofocus, htmlTextAreaElementGetAutofocus,
         htmlTextAreaElementSetCols, htmlTextAreaElementGetCols,
@@ -54,6 +57,27 @@
   = {# call webkit_dom_html_text_area_element_select #}
       (toHTMLTextAreaElement self)
  
+#if WEBKIT_CHECK_VERSION(2,2,2)
+htmlTextAreaElementSetRangeText ::
+                                (HTMLTextAreaElementClass self) =>
+                                  self -> String -> Word -> Word -> String -> IO ()
+htmlTextAreaElementSetRangeText self replacement start end
+  selectionMode
+  = propagateGError $
+      \ errorPtr_ ->
+        withUTFString selectionMode $
+          \ selectionModePtr ->
+            withUTFString replacement $
+              \ replacementPtr ->
+                {# call webkit_dom_html_text_area_element_set_range_text #}
+                  (toHTMLTextAreaElement self)
+                  replacementPtr
+              (fromIntegral start)
+              (fromIntegral end)
+              selectionModePtr
+          errorPtr_
+#endif
+
 htmlTextAreaElementSetSelectionRange ::
                                      (HTMLTextAreaElementClass self) =>
                                        self -> Int -> Int -> String -> IO ()
diff --git a/Graphics/UI/Gtk/WebKit/DOM/KeyboardEvent.chs b/Graphics/UI/Gtk/WebKit/DOM/KeyboardEvent.chs
new file mode 100644
--- /dev/null
+++ b/Graphics/UI/Gtk/WebKit/DOM/KeyboardEvent.chs
@@ -0,0 +1,114 @@
+module Graphics.UI.Gtk.WebKit.DOM.KeyboardEvent
+       (
+#if WEBKIT_CHECK_VERSION(2,2,2)
+        keyboardEventGetModifierState, keyboardEventInitKeyboardEvent,
+        cKEY_LOCATION_STANDARD, cKEY_LOCATION_LEFT, cKEY_LOCATION_RIGHT,
+        cKEY_LOCATION_NUMPAD, keyboardEventGetKeyIdentifier,
+        keyboardEventGetKeyLocation, keyboardEventGetCtrlKey,
+        keyboardEventGetShiftKey, keyboardEventGetAltKey,
+        keyboardEventGetMetaKey, keyboardEventGetAltGraphKey
+#endif
+       )
+       where
+
+#if WEBKIT_CHECK_VERSION(2,2,2)
+import System.Glib.FFI
+import System.Glib.UTFString
+import Control.Applicative
+{#import Graphics.UI.Gtk.WebKit.Types#}
+import System.Glib.GError
+import Graphics.UI.Gtk.WebKit.DOM.EventM
+ 
+keyboardEventGetModifierState ::
+                              (KeyboardEventClass self) => self -> String -> IO Bool
+keyboardEventGetModifierState self keyIdentifierArg
+  = toBool <$>
+      (withUTFString keyIdentifierArg $
+         \ keyIdentifierArgPtr ->
+           {# call webkit_dom_keyboard_event_get_modifier_state #}
+             (toKeyboardEvent self)
+             keyIdentifierArgPtr)
+ 
+keyboardEventInitKeyboardEvent ::
+                               (KeyboardEventClass self, DOMWindowClass view) =>
+                                 self ->
+                                   String ->
+                                     Bool ->
+                                       Bool ->
+                                         Maybe view ->
+                                           String ->
+                                             Word -> Bool -> Bool -> Bool -> Bool -> Bool -> IO ()
+keyboardEventInitKeyboardEvent self type' canBubble cancelable view
+  keyIdentifier location ctrlKey altKey shiftKey metaKey altGraphKey
+  = withUTFString keyIdentifier $
+      \ keyIdentifierPtr ->
+        withUTFString type' $
+          \ typePtr ->
+            {# call webkit_dom_keyboard_event_init_keyboard_event #}
+              (toKeyboardEvent self)
+              typePtr
+          (fromBool canBubble)
+          (fromBool cancelable)
+          (maybe (DOMWindow nullForeignPtr) toDOMWindow view)
+          keyIdentifierPtr
+      (fromIntegral location)
+      (fromBool ctrlKey)
+      (fromBool altKey)
+      (fromBool shiftKey)
+      (fromBool metaKey)
+      (fromBool altGraphKey)
+cKEY_LOCATION_STANDARD = 0
+cKEY_LOCATION_LEFT = 1
+cKEY_LOCATION_RIGHT = 2
+cKEY_LOCATION_NUMPAD = 3
+ 
+keyboardEventGetKeyIdentifier ::
+                              (KeyboardEventClass self) => self -> IO String
+keyboardEventGetKeyIdentifier self
+  = ({# call webkit_dom_keyboard_event_get_key_identifier #}
+       (toKeyboardEvent self))
+      >>=
+      readUTFString
+ 
+keyboardEventGetKeyLocation ::
+                            (KeyboardEventClass self) => self -> IO Word
+keyboardEventGetKeyLocation self
+  = fromIntegral <$>
+      ({# call webkit_dom_keyboard_event_get_key_location #}
+         (toKeyboardEvent self))
+ 
+keyboardEventGetCtrlKey ::
+                        (KeyboardEventClass self) => self -> IO Bool
+keyboardEventGetCtrlKey self
+  = toBool <$>
+      ({# call webkit_dom_keyboard_event_get_ctrl_key #}
+         (toKeyboardEvent self))
+ 
+keyboardEventGetShiftKey ::
+                         (KeyboardEventClass self) => self -> IO Bool
+keyboardEventGetShiftKey self
+  = toBool <$>
+      ({# call webkit_dom_keyboard_event_get_shift_key #}
+         (toKeyboardEvent self))
+ 
+keyboardEventGetAltKey ::
+                       (KeyboardEventClass self) => self -> IO Bool
+keyboardEventGetAltKey self
+  = toBool <$>
+      ({# call webkit_dom_keyboard_event_get_alt_key #}
+         (toKeyboardEvent self))
+ 
+keyboardEventGetMetaKey ::
+                        (KeyboardEventClass self) => self -> IO Bool
+keyboardEventGetMetaKey self
+  = toBool <$>
+      ({# call webkit_dom_keyboard_event_get_meta_key #}
+         (toKeyboardEvent self))
+ 
+keyboardEventGetAltGraphKey ::
+                            (KeyboardEventClass self) => self -> IO Bool
+keyboardEventGetAltGraphKey self
+  = toBool <$>
+      ({# call webkit_dom_keyboard_event_get_alt_graph_key #}
+         (toKeyboardEvent self))
+#endif
diff --git a/Graphics/UI/Gtk/WebKit/DOM/MemoryInfo.chs b/Graphics/UI/Gtk/WebKit/DOM/MemoryInfo.chs
deleted file mode 100644
--- a/Graphics/UI/Gtk/WebKit/DOM/MemoryInfo.chs
+++ /dev/null
@@ -1,31 +0,0 @@
-module Graphics.UI.Gtk.WebKit.DOM.MemoryInfo
-       (memoryInfoGetTotalJSHeapSize, memoryInfoGetUsedJSHeapSize,
-        memoryInfoGetJsHeapSizeLimit)
-       where
-import System.Glib.FFI
-import System.Glib.UTFString
-import Control.Applicative
-{#import Graphics.UI.Gtk.WebKit.Types#}
-import System.Glib.GError
-import Graphics.UI.Gtk.WebKit.DOM.EventM
- 
-memoryInfoGetTotalJSHeapSize ::
-                             (MemoryInfoClass self) => self -> IO Word
-memoryInfoGetTotalJSHeapSize self
-  = fromIntegral <$>
-      ({# call webkit_dom_memory_info_get_total_js_heap_size #}
-         (toMemoryInfo self))
- 
-memoryInfoGetUsedJSHeapSize ::
-                            (MemoryInfoClass self) => self -> IO Word
-memoryInfoGetUsedJSHeapSize self
-  = fromIntegral <$>
-      ({# call webkit_dom_memory_info_get_used_js_heap_size #}
-         (toMemoryInfo self))
- 
-memoryInfoGetJsHeapSizeLimit ::
-                             (MemoryInfoClass self) => self -> IO Word
-memoryInfoGetJsHeapSizeLimit self
-  = fromIntegral <$>
-      ({# call webkit_dom_memory_info_get_js_heap_size_limit #}
-         (toMemoryInfo self))
diff --git a/Graphics/UI/Gtk/WebKit/DOM/MouseEvent.chs b/Graphics/UI/Gtk/WebKit/DOM/MouseEvent.chs
--- a/Graphics/UI/Gtk/WebKit/DOM/MouseEvent.chs
+++ b/Graphics/UI/Gtk/WebKit/DOM/MouseEvent.chs
@@ -1,10 +1,10 @@
 module Graphics.UI.Gtk.WebKit.DOM.MouseEvent
        (mouseEventInitMouseEvent, mouseEventGetScreenX,
         mouseEventGetScreenY, mouseEventGetClientX, mouseEventGetClientY,
-        mouseEventGetWebkitMovementX, mouseEventGetWebkitMovementY,
         mouseEventGetCtrlKey, mouseEventGetShiftKey, mouseEventGetAltKey,
         mouseEventGetMetaKey, mouseEventGetButton,
-        mouseEventGetRelatedTarget, mouseEventGetOffsetX,
+        mouseEventGetRelatedTarget, mouseEventGetWebkitMovementX,
+        mouseEventGetWebkitMovementY, mouseEventGetOffsetX,
         mouseEventGetOffsetY, mouseEventGetX, mouseEventGetY,
         mouseEventGetFromElement, mouseEventGetToElement)
        where
@@ -78,20 +78,6 @@
       ({# call webkit_dom_mouse_event_get_client_y #}
          (toMouseEvent self))
  
-mouseEventGetWebkitMovementX ::
-                             (MouseEventClass self) => self -> IO Int
-mouseEventGetWebkitMovementX self
-  = fromIntegral <$>
-      ({# call webkit_dom_mouse_event_get_webkit_movement_x #}
-         (toMouseEvent self))
- 
-mouseEventGetWebkitMovementY ::
-                             (MouseEventClass self) => self -> IO Int
-mouseEventGetWebkitMovementY self
-  = fromIntegral <$>
-      ({# call webkit_dom_mouse_event_get_webkit_movement_y #}
-         (toMouseEvent self))
- 
 mouseEventGetCtrlKey :: (MouseEventClass self) => self -> IO Bool
 mouseEventGetCtrlKey self
   = toBool <$>
@@ -125,6 +111,20 @@
 mouseEventGetRelatedTarget self
   = maybeNull (makeNewGObject mkEventTarget)
       ({# call webkit_dom_mouse_event_get_related_target #}
+         (toMouseEvent self))
+ 
+mouseEventGetWebkitMovementX ::
+                             (MouseEventClass self) => self -> IO Int
+mouseEventGetWebkitMovementX self
+  = fromIntegral <$>
+      ({# call webkit_dom_mouse_event_get_webkit_movement_x #}
+         (toMouseEvent self))
+ 
+mouseEventGetWebkitMovementY ::
+                             (MouseEventClass self) => self -> IO Int
+mouseEventGetWebkitMovementY self
+  = fromIntegral <$>
+      ({# call webkit_dom_mouse_event_get_webkit_movement_y #}
          (toMouseEvent self))
  
 mouseEventGetOffsetX :: (MouseEventClass self) => self -> IO Int
diff --git a/Graphics/UI/Gtk/WebKit/DOM/Node.chs b/Graphics/UI/Gtk/WebKit/DOM/Node.chs
--- a/Graphics/UI/Gtk/WebKit/DOM/Node.chs
+++ b/Graphics/UI/Gtk/WebKit/DOM/Node.chs
@@ -1,13 +1,13 @@
 module Graphics.UI.Gtk.WebKit.DOM.Node
        (nodeInsertBefore, nodeReplaceChild, nodeRemoveChild,
         nodeAppendChild, nodeHasChildNodes, nodeCloneNode, nodeNormalize,
-        nodeIsSupported, nodeHasAttributes, nodeIsSameNode,
-        nodeIsEqualNode, nodeLookupPrefix, nodeIsDefaultNamespace,
-        nodeLookupNamespaceURI, nodeCompareDocumentPosition, nodeContains,
-        nodeDispatchEvent, cELEMENT_NODE, cATTRIBUTE_NODE, cTEXT_NODE,
-        cCDATA_SECTION_NODE, cENTITY_REFERENCE_NODE, cENTITY_NODE,
-        cPROCESSING_INSTRUCTION_NODE, cCOMMENT_NODE, cDOCUMENT_NODE,
-        cDOCUMENT_TYPE_NODE, cDOCUMENT_FRAGMENT_NODE, cNOTATION_NODE,
+        nodeIsSupported, nodeIsSameNode, nodeIsEqualNode, nodeLookupPrefix,
+        nodeIsDefaultNamespace, nodeLookupNamespaceURI,
+        nodeCompareDocumentPosition, nodeContains, nodeDispatchEvent,
+        cELEMENT_NODE, cATTRIBUTE_NODE, cTEXT_NODE, cCDATA_SECTION_NODE,
+        cENTITY_REFERENCE_NODE, cENTITY_NODE, cPROCESSING_INSTRUCTION_NODE,
+        cCOMMENT_NODE, cDOCUMENT_NODE, cDOCUMENT_TYPE_NODE,
+        cDOCUMENT_FRAGMENT_NODE, cNOTATION_NODE,
         cDOCUMENT_POSITION_DISCONNECTED, cDOCUMENT_POSITION_PRECEDING,
         cDOCUMENT_POSITION_FOLLOWING, cDOCUMENT_POSITION_CONTAINS,
         cDOCUMENT_POSITION_CONTAINED_BY,
@@ -15,8 +15,8 @@
         nodeSetNodeValue, nodeGetNodeValue, nodeGetNodeType,
         nodeGetParentNode, nodeGetChildNodes, nodeGetFirstChild,
         nodeGetLastChild, nodeGetPreviousSibling, nodeGetNextSibling,
-        nodeGetAttributes, nodeGetOwnerDocument, nodeGetNamespaceURI,
-        nodeSetPrefix, nodeGetPrefix, nodeGetLocalName, nodeGetBaseURI,
+        nodeGetOwnerDocument, nodeGetNamespaceURI, nodeSetPrefix,
+        nodeGetPrefix, nodeGetLocalName, nodeGetBaseURI,
         nodeSetTextContent, nodeGetTextContent, nodeGetParentElement)
        where
 import System.Glib.FFI
@@ -99,11 +99,6 @@
                {# call webkit_dom_node_is_supported #} (toNode self) featurePtr
              versionPtr)
  
-nodeHasAttributes :: (NodeClass self) => self -> IO Bool
-nodeHasAttributes self
-  = toBool <$>
-      ({# call webkit_dom_node_has_attributes #} (toNode self))
- 
 nodeIsSameNode ::
                (NodeClass self, NodeClass other) => self -> Maybe other -> IO Bool
 nodeIsSameNode self other
@@ -244,12 +239,6 @@
 nodeGetNextSibling self
   = maybeNull (makeNewGObject mkNode)
       ({# call webkit_dom_node_get_next_sibling #} (toNode self))
- 
-nodeGetAttributes ::
-                  (NodeClass self) => self -> IO (Maybe NamedNodeMap)
-nodeGetAttributes self
-  = maybeNull (makeNewGObject mkNamedNodeMap)
-      ({# call webkit_dom_node_get_attributes #} (toNode self))
  
 nodeGetOwnerDocument ::
                      (NodeClass self) => self -> IO (Maybe Document)
diff --git a/Graphics/UI/Gtk/WebKit/DOM/TimeRanges.chs b/Graphics/UI/Gtk/WebKit/DOM/TimeRanges.chs
--- a/Graphics/UI/Gtk/WebKit/DOM/TimeRanges.chs
+++ b/Graphics/UI/Gtk/WebKit/DOM/TimeRanges.chs
@@ -8,7 +8,7 @@
 import Graphics.UI.Gtk.WebKit.DOM.EventM
  
 timeRangesStart ::
-                (TimeRangesClass self) => self -> Word -> IO Float
+                (TimeRangesClass self) => self -> Word -> IO Double
 timeRangesStart self index
   = realToFrac <$>
       (propagateGError $
@@ -17,7 +17,8 @@
              (fromIntegral index)
              errorPtr_)
  
-timeRangesEnd :: (TimeRangesClass self) => self -> Word -> IO Float
+timeRangesEnd ::
+              (TimeRangesClass self) => self -> Word -> IO Double
 timeRangesEnd self index
   = realToFrac <$>
       (propagateGError $
diff --git a/Graphics/UI/Gtk/WebKit/DOM/ValidityState.chs b/Graphics/UI/Gtk/WebKit/DOM/ValidityState.chs
--- a/Graphics/UI/Gtk/WebKit/DOM/ValidityState.chs
+++ b/Graphics/UI/Gtk/WebKit/DOM/ValidityState.chs
@@ -2,8 +2,11 @@
        (validityStateGetValueMissing, validityStateGetTypeMismatch,
         validityStateGetPatternMismatch, validityStateGetTooLong,
         validityStateGetRangeUnderflow, validityStateGetRangeOverflow,
-        validityStateGetStepMismatch, validityStateGetCustomError,
-        validityStateGetValid)
+        validityStateGetStepMismatch,
+#if WEBKIT_CHECK_VERSION(2,2,2)
+        validityStateGetBadInput,
+#endif
+        validityStateGetCustomError, validityStateGetValid)
        where
 import System.Glib.FFI
 import System.Glib.UTFString
@@ -60,6 +63,15 @@
   = toBool <$>
       ({# call webkit_dom_validity_state_get_step_mismatch #}
          (toValidityState self))
+ 
+#if WEBKIT_CHECK_VERSION(2,2,2)
+validityStateGetBadInput ::
+                         (ValidityStateClass self) => self -> IO Bool
+validityStateGetBadInput self
+  = toBool <$>
+      ({# call webkit_dom_validity_state_get_bad_input #}
+         (toValidityState self))
+#endif
  
 validityStateGetCustomError ::
                             (ValidityStateClass self) => self -> IO Bool
diff --git a/Graphics/UI/Gtk/WebKit/DOM/Window.chs b/Graphics/UI/Gtk/WebKit/DOM/Window.chs
deleted file mode 100644
--- a/Graphics/UI/Gtk/WebKit/DOM/Window.chs
+++ /dev/null
@@ -1,8 +0,0 @@
-module Graphics.UI.Gtk.WebKit.DOM.Window (BarInfo, BarInfoClass)
-       where
- 
-data BarInfo = BarInfo
- 
-class BarInfoClass a
- 
-instance BarInfoClass BarInfo
diff --git a/Graphics/UI/Gtk/WebKit/Types.chs b/Graphics/UI/Gtk/WebKit/Types.chs
--- a/Graphics/UI/Gtk/WebKit/Types.chs
+++ b/Graphics/UI/Gtk/WebKit/Types.chs
@@ -111,10 +111,10 @@
   toGeolocationPolicyDecision, 
   mkGeolocationPolicyDecision, unGeolocationPolicyDecision,
   castToGeolocationPolicyDecision, gTypeGeolocationPolicyDecision,
-  BarInfo(BarInfo), BarInfoClass,
-  toBarInfo, 
-  mkBarInfo, unBarInfo,
-  castToBarInfo, gTypeBarInfo,
+  BarProp(BarProp), BarPropClass,
+  toBarProp, 
+  mkBarProp, unBarProp,
+  castToBarProp, gTypeBarProp,
   Blob(Blob), BlobClass,
   toBlob, 
   mkBlob, unBlob,
@@ -159,6 +159,10 @@
   toDOMMimeTypeArray, 
   mkDOMMimeTypeArray, unDOMMimeTypeArray,
   castToDOMMimeTypeArray, gTypeDOMMimeTypeArray,
+  DOMNamedFlowCollection(DOMNamedFlowCollection), DOMNamedFlowCollectionClass,
+  toDOMNamedFlowCollection, 
+  mkDOMNamedFlowCollection, unDOMNamedFlowCollection,
+  castToDOMNamedFlowCollection, gTypeDOMNamedFlowCollection,
   DOMPlugin(DOMPlugin), DOMPluginClass,
   toDOMPlugin, 
   mkDOMPlugin, unDOMPlugin,
@@ -191,6 +195,10 @@
   toDOMWindow, 
   mkDOMWindow, unDOMWindow,
   castToDOMWindow, gTypeDOMWindow,
+  DOMWindowCSS(DOMWindowCSS), DOMWindowCSSClass,
+  toDOMWindowCSS, 
+  mkDOMWindowCSS, unDOMWindowCSS,
+  castToDOMWindowCSS, gTypeDOMWindowCSS,
   Event(Event), EventClass,
   toEvent, 
   mkEvent, unEvent,
@@ -203,6 +211,10 @@
   toMouseEvent, 
   mkMouseEvent, unMouseEvent,
   castToMouseEvent, gTypeMouseEvent,
+  KeyboardEvent(KeyboardEvent), KeyboardEventClass,
+  toKeyboardEvent, 
+  mkKeyboardEvent, unKeyboardEvent,
+  castToKeyboardEvent, gTypeKeyboardEvent,
   EventTarget(EventTarget), EventTargetClass,
   toEventTarget, 
   mkEventTarget, unEventTarget,
@@ -243,10 +255,6 @@
   toMediaQueryList, 
   mkMediaQueryList, unMediaQueryList,
   castToMediaQueryList, gTypeMediaQueryList,
-  MemoryInfo(MemoryInfo), MemoryInfoClass,
-  toMemoryInfo, 
-  mkMemoryInfo, unMemoryInfo,
-  castToMemoryInfo, gTypeMemoryInfo,
   MessagePort(MessagePort), MessagePortClass,
   toMessagePort, 
   mkMessagePort, unMessagePort,
@@ -1093,28 +1101,28 @@
 gTypeGeolocationPolicyDecision =
   {# call fun unsafe webkit_geolocation_policy_decision_get_type #}
 
--- ******************************************************************** BarInfo
+-- ******************************************************************** BarProp
 
-{#pointer *WebKitDOMBarInfo as BarInfo foreign newtype #} deriving (Eq,Ord)
+{#pointer *WebKitDOMBarProp as BarProp foreign newtype #} deriving (Eq,Ord)
 
-mkBarInfo = (BarInfo, objectUnrefFromMainloop)
-unBarInfo (BarInfo o) = o
+mkBarProp = (BarProp, objectUnrefFromMainloop)
+unBarProp (BarProp o) = o
 
-class GObjectClass o => BarInfoClass o
-toBarInfo :: BarInfoClass o => o -> BarInfo
-toBarInfo = unsafeCastGObject . toGObject
+class GObjectClass o => BarPropClass o
+toBarProp :: BarPropClass o => o -> BarProp
+toBarProp = unsafeCastGObject . toGObject
 
-instance BarInfoClass BarInfo
-instance GObjectClass BarInfo where
-  toGObject = GObject . castForeignPtr . unBarInfo
-  unsafeCastGObject = BarInfo . castForeignPtr . unGObject
+instance BarPropClass BarProp
+instance GObjectClass BarProp where
+  toGObject = GObject . castForeignPtr . unBarProp
+  unsafeCastGObject = BarProp . castForeignPtr . unGObject
 
-castToBarInfo :: GObjectClass obj => obj -> BarInfo
-castToBarInfo = castTo gTypeBarInfo "BarInfo"
+castToBarProp :: GObjectClass obj => obj -> BarProp
+castToBarProp = castTo gTypeBarProp "BarProp"
 
-gTypeBarInfo :: GType
-gTypeBarInfo =
-  {# call fun unsafe webkit_dom_bar_info_get_type #}
+gTypeBarProp :: GType
+gTypeBarProp =
+  {# call fun unsafe webkit_dom_bar_prop_get_type #}
 
 -- *********************************************************************** Blob
 
@@ -1370,6 +1378,29 @@
 gTypeDOMMimeTypeArray =
   {# call fun unsafe webkit_dom_dom_mime_type_array_get_type #}
 
+-- ***************************************************** DOMNamedFlowCollection
+
+{#pointer *WebKitDOMDOMNamedFlowCollection as DOMNamedFlowCollection foreign newtype #} deriving (Eq,Ord)
+
+mkDOMNamedFlowCollection = (DOMNamedFlowCollection, objectUnrefFromMainloop)
+unDOMNamedFlowCollection (DOMNamedFlowCollection o) = o
+
+class GObjectClass o => DOMNamedFlowCollectionClass o
+toDOMNamedFlowCollection :: DOMNamedFlowCollectionClass o => o -> DOMNamedFlowCollection
+toDOMNamedFlowCollection = unsafeCastGObject . toGObject
+
+instance DOMNamedFlowCollectionClass DOMNamedFlowCollection
+instance GObjectClass DOMNamedFlowCollection where
+  toGObject = GObject . castForeignPtr . unDOMNamedFlowCollection
+  unsafeCastGObject = DOMNamedFlowCollection . castForeignPtr . unGObject
+
+castToDOMNamedFlowCollection :: GObjectClass obj => obj -> DOMNamedFlowCollection
+castToDOMNamedFlowCollection = castTo gTypeDOMNamedFlowCollection "DOMNamedFlowCollection"
+
+gTypeDOMNamedFlowCollection :: GType
+gTypeDOMNamedFlowCollection =
+  {# call fun unsafe webkit_dom_dom_named_flow_collection_get_type #}
+
 -- ****************************************************************** DOMPlugin
 
 {#pointer *WebKitDOMDOMPlugin as DOMPlugin foreign newtype #} deriving (Eq,Ord)
@@ -1555,6 +1586,29 @@
 gTypeDOMWindow =
   {# call fun unsafe webkit_dom_dom_window_get_type #}
 
+-- *************************************************************** DOMWindowCSS
+
+{#pointer *WebKitDOMDOMWindowCSS as DOMWindowCSS foreign newtype #} deriving (Eq,Ord)
+
+mkDOMWindowCSS = (DOMWindowCSS, objectUnrefFromMainloop)
+unDOMWindowCSS (DOMWindowCSS o) = o
+
+class GObjectClass o => DOMWindowCSSClass o
+toDOMWindowCSS :: DOMWindowCSSClass o => o -> DOMWindowCSS
+toDOMWindowCSS = unsafeCastGObject . toGObject
+
+instance DOMWindowCSSClass DOMWindowCSS
+instance GObjectClass DOMWindowCSS where
+  toGObject = GObject . castForeignPtr . unDOMWindowCSS
+  unsafeCastGObject = DOMWindowCSS . castForeignPtr . unGObject
+
+castToDOMWindowCSS :: GObjectClass obj => obj -> DOMWindowCSS
+castToDOMWindowCSS = castTo gTypeDOMWindowCSS "DOMWindowCSS"
+
+gTypeDOMWindowCSS :: GType
+gTypeDOMWindowCSS =
+  {# call fun unsafe webkit_dom_dom_window_css_get_type #}
+
 -- ********************************************************************** Event
 
 {#pointer *WebKitDOMEvent as Event foreign newtype #} deriving (Eq,Ord)
@@ -1627,6 +1681,31 @@
 gTypeMouseEvent =
   {# call fun unsafe webkit_dom_mouse_event_get_type #}
 
+-- ************************************************************** KeyboardEvent
+
+{#pointer *WebKitDOMKeyboardEvent as KeyboardEvent foreign newtype #} deriving (Eq,Ord)
+
+mkKeyboardEvent = (KeyboardEvent, objectUnrefFromMainloop)
+unKeyboardEvent (KeyboardEvent o) = o
+
+class UIEventClass o => KeyboardEventClass o
+toKeyboardEvent :: KeyboardEventClass o => o -> KeyboardEvent
+toKeyboardEvent = unsafeCastGObject . toGObject
+
+instance KeyboardEventClass KeyboardEvent
+instance UIEventClass KeyboardEvent
+instance EventClass KeyboardEvent
+instance GObjectClass KeyboardEvent where
+  toGObject = GObject . castForeignPtr . unKeyboardEvent
+  unsafeCastGObject = KeyboardEvent . castForeignPtr . unGObject
+
+castToKeyboardEvent :: GObjectClass obj => obj -> KeyboardEvent
+castToKeyboardEvent = castTo gTypeKeyboardEvent "KeyboardEvent"
+
+gTypeKeyboardEvent :: GType
+gTypeKeyboardEvent =
+  {# call fun unsafe webkit_dom_keyboard_event_get_type #}
+
 -- **************************************************************** EventTarget
 
 {#pointer *WebKitDOMEventTarget as EventTarget foreign newtype #} deriving (Eq,Ord)
@@ -1857,29 +1936,6 @@
 gTypeMediaQueryList :: GType
 gTypeMediaQueryList =
   {# call fun unsafe webkit_dom_media_query_list_get_type #}
-
--- ***************************************************************** MemoryInfo
-
-{#pointer *WebKitDOMMemoryInfo as MemoryInfo foreign newtype #} deriving (Eq,Ord)
-
-mkMemoryInfo = (MemoryInfo, objectUnrefFromMainloop)
-unMemoryInfo (MemoryInfo o) = o
-
-class GObjectClass o => MemoryInfoClass o
-toMemoryInfo :: MemoryInfoClass o => o -> MemoryInfo
-toMemoryInfo = unsafeCastGObject . toGObject
-
-instance MemoryInfoClass MemoryInfo
-instance GObjectClass MemoryInfo where
-  toGObject = GObject . castForeignPtr . unMemoryInfo
-  unsafeCastGObject = MemoryInfo . castForeignPtr . unGObject
-
-castToMemoryInfo :: GObjectClass obj => obj -> MemoryInfo
-castToMemoryInfo = castTo gTypeMemoryInfo "MemoryInfo"
-
-gTypeMemoryInfo :: GType
-gTypeMemoryInfo =
-  {# call fun unsafe webkit_dom_memory_info_get_type #}
 
 -- **************************************************************** MessagePort
 
diff --git a/hierarchy3.list b/hierarchy3.list
--- a/hierarchy3.list
+++ b/hierarchy3.list
@@ -339,7 +339,7 @@
         WebKitWebWindowFeatures as WebWindowFeatures, webkit_web_window_features_get_type if webkit
         WebKitGeolocationPolicyDecision as GeolocationPolicyDecision, webkit_geolocation_policy_decision_get_type if webkit
 
-        WebKitDOMBarInfo as BarInfo, webkit_dom_bar_info_get_type if webkit-dom
+        WebKitDOMBarProp as BarProp, webkit_dom_bar_prop_get_type if webkitgtk-2.2
         WebKitDOMBlob as Blob, webkit_dom_blob_get_type if webkit-dom
             WebKitDOMFile as File, webkit_dom_file_get_type if webkit-dom
         WebKitDOMCSSRule as CSSRule, webkit_dom_css_rule_get_type if webkit-dom
@@ -351,6 +351,7 @@
         WebKitDOMDOMImplementation as DOMImplementation, webkit_dom_dom_implementation_get_type if webkit-dom
         WebKitDOMDOMMimeType as DOMMimeType, webkit_dom_dom_mime_type_get_type if webkit-dom
         WebKitDOMDOMMimeTypeArray as DOMMimeTypeArray, webkit_dom_dom_mime_type_array_get_type if webkit-dom
+        WebKitDOMDOMNamedFlowCollection as DOMNamedFlowCollection, webkit_dom_dom_named_flow_collection_get_type if webkitgtk-2.2
         WebKitDOMDOMPlugin as DOMPlugin, webkit_dom_dom_plugin_get_type if webkit-dom
         WebKitDOMDOMPluginArray as DOMPluginArray, webkit_dom_dom_plugin_array_get_type if webkit-dom
         WebKitDOMDOMSecurityPolicy as DOMSecurityPolicy, webkit_dom_dom_security_policy_get_type if webkitgtk-1.10
@@ -359,9 +360,11 @@
         WebKitDOMDOMTokenList as DOMTokenList, webkit_dom_dom_token_list_get_type if webkit-dom
             WebKitDOMDOMSettableTokenList as DOMSettableTokenList, webkit_dom_dom_settable_token_list_get_type if webkit-dom
         WebKitDOMDOMWindow as DOMWindow, webkit_dom_dom_window_get_type if webkit-dom
+        WebKitDOMDOMWindowCSS as DOMWindowCSS, webkit_dom_dom_window_css_get_type if webkitgtk-2.2
         WebKitDOMEvent as Event, webkit_dom_event_get_type if webkit-dom
             WebKitDOMUIEvent as UIEvent, webkit_dom_ui_event_get_type if webkit-dom
                 WebKitDOMMouseEvent as MouseEvent, webkit_dom_mouse_event_get_type if webkit-dom
+                WebKitDOMKeyboardEvent as KeyboardEvent, webkit_dom_keyboard_event_get_type if webkitgtk-2.2
         WebKitDOMEventTarget as EventTarget, webkit_dom_event_target_get_type if webkit-dom
         WebKitDOMFileList as FileList, webkit_dom_file_list_get_type if webkit-dom
         WebKitDOMGeolocation as Geolocation, webkit_dom_geolocation_get_type if webkit-dom
@@ -372,7 +375,6 @@
         WebKitDOMMediaError as MediaError, webkit_dom_media_error_get_type if webkit-dom
         WebKitDOMMediaList as MediaList, webkit_dom_media_list_get_type if webkit-dom
         WebKitDOMMediaQueryList as MediaQueryList, webkit_dom_media_query_list_get_type if webkit-dom
-        WebKitDOMMemoryInfo as MemoryInfo, webkit_dom_memory_info_get_type if webkit-dom
         WebKitDOMMessagePort as MessagePort, webkit_dom_message_port_get_type if webkit-dom
         WebKitDOMNamedNodeMap as NamedNodeMap, webkit_dom_named_node_map_get_type if webkit-dom
         WebKitDOMNavigator as Navigator, webkit_dom_navigator_get_type if webkit-dom
diff --git a/webkitgtk3.cabal b/webkitgtk3.cabal
--- a/webkitgtk3.cabal
+++ b/webkitgtk3.cabal
@@ -1,5 +1,5 @@
 Name:           webkitgtk3
-Version:        0.12.5
+Version:        0.12.5.1
 License:        LGPL-2.1
 License-file:   COPYING
 Copyright:      (c) 2001-2013 The Gtk2Hs Team
@@ -77,7 +77,7 @@
           Graphics.UI.Gtk.WebKit.WebView
           Graphics.UI.Gtk.WebKit.WebWindowFeatures
           Graphics.UI.Gtk.WebKit.DOM.Attr
-          Graphics.UI.Gtk.WebKit.DOM.BarInfo
+          Graphics.UI.Gtk.WebKit.DOM.BarProp
           Graphics.UI.Gtk.WebKit.DOM.Blob
           Graphics.UI.Gtk.WebKit.DOM.CharacterData
           Graphics.UI.Gtk.WebKit.DOM.Console
@@ -93,12 +93,14 @@
           Graphics.UI.Gtk.WebKit.DOM.DOMImplementation
           Graphics.UI.Gtk.WebKit.DOM.DOMMimeType
           Graphics.UI.Gtk.WebKit.DOM.DOMMimeTypeArray
+          Graphics.UI.Gtk.WebKit.DOM.DOMNamedFlowCollection
           Graphics.UI.Gtk.WebKit.DOM.DOMPlugin
           Graphics.UI.Gtk.WebKit.DOM.DOMPluginArray
           Graphics.UI.Gtk.WebKit.DOM.DOMSelection
           Graphics.UI.Gtk.WebKit.DOM.DOMSettableTokenList
           Graphics.UI.Gtk.WebKit.DOM.DOMTokenList
           Graphics.UI.Gtk.WebKit.DOM.DOMWindow
+          Graphics.UI.Gtk.WebKit.DOM.DOMWindowCSS
           Graphics.UI.Gtk.WebKit.DOM.Element
           Graphics.UI.Gtk.WebKit.DOM.Event
           Graphics.UI.Gtk.WebKit.DOM.EventM
@@ -163,10 +165,10 @@
           Graphics.UI.Gtk.WebKit.DOM.HTMLTextAreaElement
           Graphics.UI.Gtk.WebKit.DOM.HTMLTitleElement
           Graphics.UI.Gtk.WebKit.DOM.HTMLUListElement
+          Graphics.UI.Gtk.WebKit.DOM.KeyboardEvent
           Graphics.UI.Gtk.WebKit.DOM.Location
           Graphics.UI.Gtk.WebKit.DOM.MediaList
           Graphics.UI.Gtk.WebKit.DOM.MediaQueryList
-          Graphics.UI.Gtk.WebKit.DOM.MemoryInfo
           Graphics.UI.Gtk.WebKit.DOM.MouseEvent
           Graphics.UI.Gtk.WebKit.DOM.NamedNodeMap
           Graphics.UI.Gtk.WebKit.DOM.Navigator
@@ -190,7 +192,6 @@
           Graphics.UI.Gtk.WebKit.DOM.ValidityState
           Graphics.UI.Gtk.WebKit.DOM.WebKitNamedFlow
           Graphics.UI.Gtk.WebKit.DOM.WebKitPoint
-          Graphics.UI.Gtk.WebKit.DOM.Window
           Graphics.UI.Gtk.WebKit.DOM.XPathExpression
           Graphics.UI.Gtk.WebKit.DOM.XPathNSResolver
           Graphics.UI.Gtk.WebKit.DOM.XPathResult
