[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc

kevino at webkit.org kevino at webkit.org
Wed Dec 22 11:32:27 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit 02dbe35899f13ae7e53e52c028dff3a7ff9bc044
Author: kevino at webkit.org <kevino at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Wed Jul 28 20:51:21 2010 +0000

    Reviewed by Kevin Ollivier.
    
    Add DOM bindings support for wx port.
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@64229 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index d5fed82..f1cfb67 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,17 @@
+2010-07-28  Robin Dunn  <robin at alldunn.com>
+
+        Reviewed by Kevin Ollivier.
+
+        Add DOM bindings support for wx port.
+
+        * DerivedSources.make:
+        * bindings/scripts/CodeGeneratorCPP.pm:
+        * platform/graphics/wx/FontPlatformDataWx.cpp:
+        (WebCore::FontPlatformData::FontPlatformData):
+        * platform/wx/MouseEventWx.cpp:
+        (WebCore::PlatformMouseEvent::PlatformMouseEvent):
+        * wscript:
+
 2010-07-28  Stephen White  <senorblanco at chromium.org>
 
         Reviewed by Darin Fisher.
diff --git a/WebCore/DerivedSources.make b/WebCore/DerivedSources.make
index 8cecc2b..3b0f38d 100644
--- a/WebCore/DerivedSources.make
+++ b/WebCore/DerivedSources.make
@@ -476,10 +476,16 @@ INSPECTOR_CLASSES = Inspector
 
 JS_DOM_HEADERS=$(filter-out JSEventListener.h JSEventTarget.h,$(DOM_CLASSES:%=JS%.h) $(INSPECTOR_CLASSES:%=Remote%Frontend.h))
 
+WEB_DOM_HEADERS :=
+ifeq ($(findstring BUILDING_WX,$(FEATURE_DEFINES)), BUILDING_WX)
+WEB_DOM_HEADERS := $(filter-out WebDOMXSLTProcessor.h,$(DOM_CLASSES:%=WebDOM%.h))
+endif # BUILDING_WX
+
 all : \
     remove-stray-plugin-and-mime-type-files \
     \
     $(JS_DOM_HEADERS) \
+    $(WEB_DOM_HEADERS) \
     \
     JSJavaScriptCallFrame.h \
     \
@@ -812,6 +818,13 @@ Remote%Frontend.h : %.idl $(INSPECTOR_GENERATOR_SCRIPTS)
 
 -include $(JS_DOM_HEADERS:.h=.dep)
 
+ifeq ($(findstring BUILDING_WX,$(FEATURE_DEFINES)), BUILDING_WX)
+CPP_BINDINGS_SCRIPTS = $(GENERATE_SCRIPTS) bindings/scripts/CodeGeneratorCPP.pm
+
+WebDOM%.h : %.idl $(CPP_BINDINGS_SCRIPTS)
+	$(call generator_script, $(CPP_BINDINGS_SCRIPTS)) $(IDL_COMMON_ARGS) --defines "$(FEATURE_DEFINES) $(ADDITIONAL_IDL_DEFINES) LANGUAGE_CPP" --generator CPP $<
+endif # BUILDING_WX
+
 # ------------------------
 
 # Mac-specific rules
diff --git a/WebCore/bindings/scripts/CodeGeneratorCPP.pm b/WebCore/bindings/scripts/CodeGeneratorCPP.pm
index 9e254af..27cf854 100644
--- a/WebCore/bindings/scripts/CodeGeneratorCPP.pm
+++ b/WebCore/bindings/scripts/CodeGeneratorCPP.pm
@@ -281,7 +281,7 @@ sub AddIncludesForType
     my $type = $codeGenerator->StripModule(shift);
 
     return if $codeGenerator->IsNonPointerType($type);
-    return if $type =~ /cconstructor/;
+    return if $type =~ /Constructor/;
 
     if ($codeGenerator->IsStringType($type)) {
         $implIncludes{"AtomicString.h"} = 1;
diff --git a/WebCore/platform/graphics/wx/FontPlatformDataWx.cpp b/WebCore/platform/graphics/wx/FontPlatformDataWx.cpp
index 2951223..b77a03b 100644
--- a/WebCore/platform/graphics/wx/FontPlatformDataWx.cpp
+++ b/WebCore/platform/graphics/wx/FontPlatformDataWx.cpp
@@ -81,23 +81,23 @@ FontPlatformData::FontPlatformData(const FontDescription& desc, const AtomicStri
 // this is a moot issue on Linux and Mac as they only accept the point argument. So,
 // we use the pixel size constructor on Windows, but we use point size on Linux and Mac.
 #if __WXMSW__
-    m_font = new FontHolder(new wxFont(   wxSize(0, -desc.computedPixelSize()), 
+    m_font = adoptRef(new FontHolder(new wxFont(   wxSize(0, -desc.computedPixelSize()), 
                                 fontFamilyToWxFontFamily(desc.genericFamily()), 
                                 italicToWxFontStyle(desc.italic()),
                                 fontWeightToWxFontWeight(desc.weight()),
                                 false,
                                 family.string()
                             )
-                        ); 
+                        )); 
 #else
-    m_font = new FontHolder(new wxFont(   desc.computedPixelSize(), 
+    m_font = adoptRef(new FontHolder(new wxFont(   desc.computedPixelSize(), 
                                 fontFamilyToWxFontFamily(desc.genericFamily()), 
                                 italicToWxFontStyle(desc.italic()),
                                 fontWeightToWxFontWeight(desc.weight()),
                                 false,
                                 family.string()
                             )
-                        ); 
+                        )); 
 #endif
 #if OS(DARWIN) && !defined(wxOSX_USE_CORE_TEXT)
 #if wxCHECK_VERSION(2,9,0)
diff --git a/WebCore/platform/wx/MouseEventWx.cpp b/WebCore/platform/wx/MouseEventWx.cpp
index 4f39598..8591ef5 100644
--- a/WebCore/platform/wx/MouseEventWx.cpp
+++ b/WebCore/platform/wx/MouseEventWx.cpp
@@ -37,7 +37,7 @@ PlatformMouseEvent::PlatformMouseEvent(const wxMouseEvent& event, const wxPoint&
     : m_position(event.GetPosition())
     , m_globalPosition(globalPoint)
     , m_shiftKey(event.ShiftDown())
-    , m_ctrlKey(event.CmdDown())
+    , m_ctrlKey(event.CmdDown() || event.ControlDown())
     , m_altKey(event.AltDown())
     , m_metaKey(event.MetaDown()) // FIXME: We'll have to test other browsers
 {
diff --git a/WebCore/wscript b/WebCore/wscript
index f923e87..bd058e4 100644
--- a/WebCore/wscript
+++ b/WebCore/wscript
@@ -30,7 +30,8 @@ from settings import *
 webcore_sources = {}
 
 if build_port == "wx":
-    webcore_sources['wx'] = ['platform/KillRingNone.cpp']
+    webcore_sources['wx'] = ['platform/KillRingNone.cpp']  
+
     if building_on_win32:
         # make sure platform/wx comes after this so we get the right
         # FontPlatformData.h
@@ -125,7 +126,9 @@ def build(bld):
     wk_includes = ['.', '..', 'DerivedSources',
                 wk_root, 
                 os.path.join(wk_root, 'JavaScriptCore'),
+                os.path.join(wk_root, 'JavaScriptCore', 'wtf', 'text'),
                 os.path.join(wk_root, 'WebCore'),
+                os.path.join(wk_root, 'WebKit/wx'),
                 'platform/image-decoders',
                 'platform/win',
                 'platform/wx/wxcode',
@@ -135,7 +138,7 @@ def build(bld):
     features = [build_port]
     exclude_patterns = ['*AllInOne.cpp', '*Brew.cpp', '*CFNet.cpp', '*Chromium*.cpp', 
             '*Gtk.cpp', '*Mac.cpp', '*None.cpp', '*Qt.cpp', '*Safari.cpp',
-            'test*bindings.*', '*Wince.cpp']
+            'test*bindings.*', '*Wince.cpp', "WebDOMSVG*.cpp"]
     if build_port == 'wx':
         features.append('curl')
         if not building_on_win32:
@@ -172,6 +175,7 @@ def build(bld):
         includes = ' '.join(wk_includes),
         source = ' '.join(flattenSources(webcore_sources.values())),
         cxxflags = cxxflags,
+        defines = ['WXMAKINGDLL_WEBKIT'],
         target = 'webcore',
         uselib = 'WX ICU XML XSLT CURL SQLITE3 ' + get_config(),
         uselib_local = '',
@@ -218,6 +222,15 @@ def build(bld):
         excludes.append('JSSVGTransformable.cpp')
         excludes.append('JSSVGURIReference.cpp')
         
+        excludes.append('WebDOMAbstractView.cpp')
+        excludes.append('WebDOMBlobBuilder.cpp')
+        excludes.append('WebDOMEventListenerCustom.cpp')
+        excludes.append('WebDOMElementTimeControl.cpp')
+        excludes.append('WebDOMImageData.cpp')
+        excludes.append('WebDOMScriptProfile.cpp')
+        excludes.append('WebDOMScriptProfileNode.cpp')
+        excludes.append('WebNativeEventListener.cpp')
+        
         if building_on_win32:
             excludes.append('SharedTimerWx.cpp')
             excludes.append('RenderThemeWin.cpp')
diff --git a/WebKit/wx/ChangeLog b/WebKit/wx/ChangeLog
index 5e373d1..1bf295a 100644
--- a/WebKit/wx/ChangeLog
+++ b/WebKit/wx/ChangeLog
@@ -1,3 +1,53 @@
+2010-07-28  Robin Dunn  <robin at alldunn.com>
+
+        Reviewed by Kevin Ollivier.
+
+        Add DOM bindings support for wx port.
+
+        * WebBrowserShell.cpp:
+        (wxWebBrowserShell::wxWebBrowserShell):
+        (wxWebBrowserShell::OnEditCommand):
+        (wxWebBrowserShell::OnGetEditCommandState):
+        * WebBrowserShell.h:
+        * WebDOMSelection.cpp: Added.
+        (wxWebKitSelection::wxWebKitSelection):
+        (wxWebKitSelection::GetRootEditableElement):
+        (wxWebKitSelection::GetAsRange):
+        * WebDOMSelection.h: Added.
+        * WebFrame.cpp:
+        (wxWebFrame::GetSelectionAsHTML):
+        (wxWebFrame::GetSelectionAsText):
+        (wxWebFrame::GetSelection):
+        (wxWebFrame::ExecuteEditCommand):
+        (wxWebFrame::GetEditCommandState):
+        (wxWebFrame::GetEditCommandValue):
+        (wxWebFrame::HitTest):
+        * WebFrame.h:
+        * WebKitDefines.h:
+        * WebKitSupport/EditorClientWx.cpp:
+        (WebCore::):
+        (WebCore::EditorClientWx::redo):
+        * WebKitSupport/FrameLoaderClientWx.cpp:
+        (WebCore::FrameLoaderClientWx::finishedLoading):
+        (WebCore::FrameLoaderClientWx::setMainDocumentError):
+        (WebCore::FrameLoaderClientWx::dispatchDidFailLoading):
+        * WebView.cpp:
+        (wxWebViewDOMElementInfo::wxWebViewDOMElementInfo):
+        (wxWebViewDOMElementInfo::~wxWebViewDOMElementInfo):
+        (wxWebView::Create):
+        (wxWebView::GetSelection):
+        (wxWebView::GetSelectionAsHTML):
+        (wxWebView::GetSelectionAsText):
+        (wxWebView::ExecuteEditCommand):
+        (wxWebView::GetEditCommandState):
+        (wxWebView::GetEditCommandValue):
+        (wxWebView::MakeEditable):
+        (wxWebView::IsEditable):
+        * WebView.h:
+        * bindings/python/webview.i:
+        * bindings/python/wscript:
+        * wscript:
+
 2010-07-26  Steve Block  <steveblock at google.com>
 
         Reviewed by Jeremy Orlow.
diff --git a/WebKit/wx/WebBrowserShell.cpp b/WebKit/wx/WebBrowserShell.cpp
index 8853051..b1ff578 100644
--- a/WebKit/wx/WebBrowserShell.cpp
+++ b/WebKit/wx/WebBrowserShell.cpp
@@ -35,8 +35,9 @@
 
 #include "wx/artprov.h"
 
-#include "WebView.h"
 #include "WebBrowserShell.h"
+#include "WebFrame.h"
+#include "WebView.h"
 #include "WebViewPrivate.h"
 
 wxPageSourceViewFrame::wxPageSourceViewFrame(const wxString& source)
@@ -63,7 +64,9 @@ enum {
     ID_BROWSE = wxID_HIGHEST + 15,
     ID_EDIT = wxID_HIGHEST + 16,
     ID_RUN_SCRIPT = wxID_HIGHEST + 17,
-    ID_WEBVIEW = wxID_HIGHEST + 18
+    ID_WEBVIEW = wxID_HIGHEST + 18,
+    ID_EDIT_COMMAND = wxID_HIGHEST + 19,
+    ID_GET_EDIT_COMMAND_STATE = wxID_HIGHEST + 20
 };
 
 BEGIN_EVENT_TABLE(wxWebBrowserShell, wxFrame)
@@ -88,6 +91,8 @@ BEGIN_EVENT_TABLE(wxWebBrowserShell, wxFrame)
     EVT_MENU(ID_BROWSE, wxWebBrowserShell::OnBrowse)
     EVT_MENU(ID_EDIT, wxWebBrowserShell::OnEdit)
     EVT_MENU(ID_RUN_SCRIPT, wxWebBrowserShell::OnRunScript)
+    EVT_MENU(ID_EDIT_COMMAND, wxWebBrowserShell::OnEditCommand)
+    EVT_MENU(ID_GET_EDIT_COMMAND_STATE, wxWebBrowserShell::OnGetEditCommandState)
 END_EVENT_TABLE()
 
 
@@ -123,6 +128,8 @@ wxWebBrowserShell::wxWebBrowserShell(const wxString& title) :
     m_debugMenu = new wxMenu;
     m_debugMenu->Append(ID_SET_SOURCE, _("Test SetPageSource"));
     m_debugMenu->Append(ID_RUN_SCRIPT, _("Test RunScript"));
+    m_debugMenu->Append(ID_EDIT_COMMAND, _("Test EditCommand::Execute"));
+    m_debugMenu->Append(ID_GET_EDIT_COMMAND_STATE, _("Test EditCommand::GetState"));
 
     // the "About" item should be in the help menu
     wxMenu *helpMenu = new wxMenu;
@@ -339,7 +346,8 @@ void wxWebBrowserShell::OnEdit(wxCommandEvent& event)
         webview->MakeEditable(event.IsChecked());
 }
 
-void wxWebBrowserShell::OnRunScript(wxCommandEvent& myEvent){
+void wxWebBrowserShell::OnRunScript(wxCommandEvent& myEvent)
+{
     if (webview) {
         wxTextEntryDialog* dialog = new wxTextEntryDialog(this, _("Type in a JavaScript to exectute."));
         if (dialog->ShowModal() == wxID_OK)
@@ -348,3 +356,43 @@ void wxWebBrowserShell::OnRunScript(wxCommandEvent& myEvent){
         dialog->Destroy();
     }
 }
+
+void wxWebBrowserShell::OnEditCommand(wxCommandEvent& myEvent)
+{
+    if (webview) {
+        if (!webview->IsEditable()) {
+            wxMessageBox(wxT("Please enable editing before running editing commands."));
+            return;
+        }
+        
+        wxTextEntryDialog* dialog = new wxTextEntryDialog(this, _("Type in a editing command to exectute."));
+        if (dialog->ShowModal() == wxID_OK) {
+            bool result = webview->ExecuteEditCommand(dialog->GetValue());
+            if (!result)
+                wxMessageBox(wxT("Editing command failed."));
+        }
+        dialog->Destroy();
+    }
+}
+
+void wxWebBrowserShell::OnGetEditCommandState(wxCommandEvent& myEvent)
+{
+    if (webview) {
+        if (!webview->IsEditable()) {
+            wxMessageBox(wxT("Please enable editing before running editing commands."));
+            return;
+        }
+        
+        wxTextEntryDialog* dialog = new wxTextEntryDialog(this, _("Type in a editing command whose state you want to get."));
+        if (dialog->ShowModal() == wxID_OK) {
+            EditState result = webview->GetEditCommandState(dialog->GetValue());
+            if (result == EditStateTrue)
+                wxMessageBox(wxT("State is true."));
+            else if (result == EditStateFalse)
+                wxMessageBox(wxT("State is false."));
+            else if (result == EditStateMixed)
+                wxMessageBox(wxT("State is mixed."));
+        }
+        dialog->Destroy();
+    }
+}
diff --git a/WebKit/wx/WebBrowserShell.h b/WebKit/wx/WebBrowserShell.h
index 2f43ffb..4fe9c03 100644
--- a/WebKit/wx/WebBrowserShell.h
+++ b/WebKit/wx/WebBrowserShell.h
@@ -80,6 +80,8 @@ protected:
     // debug menu items
     void OnSetSource(wxCommandEvent& event);
     void OnRunScript(wxCommandEvent& myEvent);
+    void OnEditCommand(wxCommandEvent& myEvent);
+    void OnGetEditCommandState(wxCommandEvent& myEvent);
 
 private:
     wxTextCtrl* addressBar;
diff --git a/WebKit/wx/WebDOMSelection.cpp b/WebKit/wx/WebDOMSelection.cpp
new file mode 100644
index 0000000..ce35ea4
--- /dev/null
+++ b/WebKit/wx/WebDOMSelection.cpp
@@ -0,0 +1,71 @@
+/*
+ * Copyright (C) 2008 Kevin Ollivier <kevino at theolliviers.com>
+ *
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+ 
+#include "config.h"
+#include "WebDOMSelection.h"
+
+#include "Element.h"
+#include "SelectionController.h"
+#include "WebDOMElement.h"
+#include "WebDOMRange.h"
+
+#include <wtf/RefPtr.h>
+
+#include "wx/wxprec.h"
+#ifndef WX_PRECOMP
+    #include "wx/wx.h"
+#endif
+
+IMPLEMENT_DYNAMIC_CLASS(wxWebKitSelection, wxObject)
+
+wxWebKitSelection::wxWebKitSelection(const wxWebKitSelection& other)
+{
+    m_selection = other.m_selection;
+}
+
+WebDOMElement* wxWebKitSelection::GetRootEditableElement() const
+{
+    if (m_selection)
+        return new WebDOMElement(m_selection->rootEditableElement());
+        
+    return 0;
+}
+
+WebDOMRange* wxWebKitSelection::GetAsRange()
+{
+    if (m_selection) {
+        WTF::RefPtr<WebCore::Range> range = m_selection->toNormalizedRange();
+        // keep it alive until it reaches wxWebKitDOMRange, which takes ownership
+        
+        if (range) {
+            range->ref();
+            return new WebDOMRange(range.get());
+        }
+    }
+        
+    return 0;
+}
diff --git a/WebKit/wx/WebDOMSelection.h b/WebKit/wx/WebDOMSelection.h
new file mode 100644
index 0000000..f9a2aa5
--- /dev/null
+++ b/WebKit/wx/WebDOMSelection.h
@@ -0,0 +1,69 @@
+/*
+ * Copyright (C) 2008 Kevin Ollivier <kevino at theolliviers.com>
+ *
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+ 
+#ifndef WebDOMSelection_h
+#define WebDOMSelection_h
+
+#include "wx/wxprec.h"
+#ifndef WX_PRECOMP
+    #include "wx/wx.h"
+#endif
+
+#include "WebKitDefines.h"
+
+class WebDOMElement;
+class WebDOMRange;
+
+namespace WebCore {
+
+class SelectionController;
+
+}
+
+class WXDLLIMPEXP_WEBKIT wxWebKitSelection : public wxObject {
+#ifndef SWIG
+DECLARE_DYNAMIC_CLASS(wxWebKitDOMSelection)
+#endif
+
+public:
+    wxWebKitSelection() {}
+    wxWebKitSelection(WebCore::SelectionController* selection)
+        : m_selection(selection) 
+        { }
+        
+    wxWebKitSelection(const wxWebKitSelection&);
+    ~wxWebKitSelection() { m_selection = 0; }
+
+    WebDOMElement* GetRootEditableElement() const;
+    WebDOMRange* GetAsRange();
+
+private:
+    WebCore::SelectionController* m_selection;
+
+};
+
+#endif
diff --git a/WebKit/wx/WebFrame.cpp b/WebKit/wx/WebFrame.cpp
index e1f7ecc..b8d2ac2 100644
--- a/WebKit/wx/WebFrame.cpp
+++ b/WebKit/wx/WebFrame.cpp
@@ -59,6 +59,9 @@
     #include "wx/wx.h"
 #endif
 
+#include "WebDOMNode.h"
+
+#include "WebDOMSelection.h"
 #include "WebFrame.h"
 #include "WebView.h"
 #include "WebFramePrivate.h"
@@ -193,6 +196,30 @@ wxString wxWebFrame::GetExternalRepresentation()
     return externalRepresentation(m_impl->frame);
 }
 
+wxString wxWebFrame::GetSelectionAsHTML()
+{
+    if (m_impl->frame)
+        return m_impl->frame->selection()->toNormalizedRange()->toHTML();
+        
+    return wxEmptyString;
+}
+
+wxString wxWebFrame::GetSelectionAsText()
+{
+    if (m_impl->frame)
+        return m_impl->frame->selection()->toNormalizedRange()->text();
+        
+    return wxEmptyString;
+}
+
+wxWebKitSelection wxWebFrame::GetSelection()
+{
+    if (m_impl->frame)
+        return wxWebKitSelection(m_impl->frame->selection());
+        
+    return 0;
+}
+
 wxString wxWebFrame::RunScript(const wxString& javascript)
 {
     wxString returnValue = wxEmptyString;
@@ -213,6 +240,36 @@ wxString wxWebFrame::RunScript(const wxString& javascript)
     return returnValue;
 }
 
+bool wxWebFrame::ExecuteEditCommand(const wxString& command, const wxString& parameter)
+{
+    if (m_impl->frame && IsEditable())
+        return m_impl->frame->editor()->command(command).execute(parameter);
+}
+
+EditState wxWebFrame::GetEditCommandState(const wxString& command) const
+{
+    if (m_impl->frame && IsEditable()) { 
+        WebCore::TriState state = m_impl->frame->editor()->command(command).state();
+        if (state == WebCore::TrueTriState)
+            return EditStateTrue;
+        if (state == WebCore::FalseTriState)
+            return EditStateFalse;
+
+        return EditStateMixed;
+    }
+        
+    return EditStateFalse;
+}
+
+wxString wxWebFrame::GetEditCommandValue(const wxString& command) const
+{
+    if (m_impl->frame && IsEditable())
+        return m_impl->frame->editor()->command(command).value();
+        
+    return wxEmptyString;
+}
+
+
 bool wxWebFrame::FindString(const wxString& string, bool forward, bool caseSensitive, bool wrapSelection, bool startInSelection)
 {
     if (m_impl->frame)
@@ -401,6 +458,7 @@ wxWebViewDOMElementInfo wxWebFrame::HitTest(const wxPoint& pos) const
     if (m_impl->frame->view()) {
         WebCore::HitTestResult result = m_impl->frame->eventHandler()->hitTestResultAtPoint(m_impl->frame->view()->windowToContents(pos), false);
         if (result.innerNode()) {
+            domInfo.SetInnerNode(new WebDOMNode(result.innerNode()));
             domInfo.SetLink(result.absoluteLinkURL().string());
             domInfo.SetText(result.textContent());
             domInfo.SetImageSrc(result.absoluteImageURL().string());
diff --git a/WebKit/wx/WebFrame.h b/WebKit/wx/WebFrame.h
index fec6257..f09c884 100644
--- a/WebKit/wx/WebFrame.h
+++ b/WebKit/wx/WebFrame.h
@@ -35,23 +35,31 @@
 
 #include "WebKitDefines.h"
 
+class WebDOMElement;
+class WebDOMNode;
+
+#include "WebDOMSelection.h"
+
+class Element;
+
 class WebFramePrivate;
 class WebViewFrameData;
 class wxWebView;
 
 namespace WebCore {
     class ChromeClientWx;
-    class FrameLoaderClientWx;
     class EditorClientWx;
-    class Frame;
+    class FrameLoaderClientWx;
+    class Frame;    
 }
 
 class WXDLLIMPEXP_WEBKIT wxWebViewDOMElementInfo
 {
 public:
     wxWebViewDOMElementInfo();
+    wxWebViewDOMElementInfo(const wxWebViewDOMElementInfo& other);
 
-    ~wxWebViewDOMElementInfo() { }
+    ~wxWebViewDOMElementInfo();
 
     wxString GetTagName() const { return m_tagName; }
     void SetTagName(const wxString& name) { m_tagName = name; }
@@ -67,9 +75,16 @@ public:
 
     wxString GetLink() const { return m_link; }
     void SetLink(const wxString& link) { m_link = link; }
+    
+    WebDOMNode* GetInnerNode() { return m_innerNode; }
+    void SetInnerNode(WebDOMNode* node) { m_innerNode = node; }
+    
+    WebDOMElement* GetURLElement() { return m_urlElement; }
+    void SetURLElement(WebDOMElement* url) { m_urlElement = url; }
 
 private:
-    void* m_domElement;
+    WebDOMNode* m_innerNode;
+    WebDOMElement* m_urlElement;
     bool m_isSelected;
     wxString m_tagName;
     wxString m_text;
@@ -82,6 +97,7 @@ enum wxWebKitParseMode { Compat, AlmostStrict, Strict, NoDocument };
 
 class WXDLLIMPEXP_WEBKIT wxWebFrame
 {
+public:
     // ChromeClientWx needs to get the Page* stored by the wxWebView
     // for the createWindow function. 
     friend class WebCore::ChromeClientWx;
@@ -124,7 +140,14 @@ public:
     wxString GetAsMarkup();
     wxString GetExternalRepresentation();
     
+    wxWebKitSelection GetSelection();
+    wxString GetSelectionAsHTML();
+    wxString GetSelectionAsText();
+    
     wxString RunScript(const wxString& javascript);
+    bool ExecuteEditCommand(const wxString& command, const wxString& parameter = wxEmptyString);
+    EditState GetEditCommandState(const wxString& command) const;
+    wxString GetEditCommandValue(const wxString& command) const;
     
     bool FindString(const wxString& string, bool forward = true,
         bool caseSensitive = false, bool wrapSelection = true,
diff --git a/WebKit/wx/WebKitDefines.h b/WebKit/wx/WebKitDefines.h
index d973063..67ad868 100644
--- a/WebKit/wx/WebKitDefines.h
+++ b/WebKit/wx/WebKitDefines.h
@@ -42,4 +42,7 @@
 #define WXDLLIMPEXP_WEBKIT
 #endif // SWIG
 
+// enums
+enum EditState { EditStateTrue, EditStateFalse, EditStateMixed };
+
 #endif // WebKitDefines_h
diff --git a/WebKit/wx/WebKitSupport/EditorClientWx.cpp b/WebKit/wx/WebKitSupport/EditorClientWx.cpp
index 2355141..64bfd06 100644
--- a/WebKit/wx/WebKitSupport/EditorClientWx.cpp
+++ b/WebKit/wx/WebKitSupport/EditorClientWx.cpp
@@ -109,7 +109,7 @@ static const KeyDownEntry keyDownEntries[] = {
     { VK_RETURN, 0,                  "InsertNewline"                               },
     { VK_RETURN, CtrlKey,            "InsertNewline"                               },
     { VK_RETURN, AltKey,             "InsertNewline"                               },
-    { VK_RETURN, AltKey | ShiftKey,  "InsertNewline"                               },
+    { VK_RETURN, ShiftKey,           "InsertLineBreak"                               },
     { 'A',       CtrlKey,            "SelectAll"                                   },
     { 'Z',       CtrlKey,            "Undo"                                        },
     { 'Z',       CtrlKey | ShiftKey, "Redo"                                        },
@@ -363,8 +363,8 @@ void EditorClientWx::redo()
     if (frame) {    
         wxWebView* webKitWin = dynamic_cast<wxWebView*>(frame->view()->hostWindow()->platformPageClient());
         if (webKitWin) {
-            webKitWin->m_impl->redoStack.first().editCommand()->reapply();
-            webKitWin->m_impl->redoStack.remove(0);
+            webKitWin->m_impl->redoStack.last().editCommand()->reapply();
+            webKitWin->m_impl->redoStack.removeLast();
         }
     }
 }
diff --git a/WebKit/wx/WebKitSupport/FrameLoaderClientWx.cpp b/WebKit/wx/WebKitSupport/FrameLoaderClientWx.cpp
index a163727..5b708c2 100644
--- a/WebKit/wx/WebKitSupport/FrameLoaderClientWx.cpp
+++ b/WebKit/wx/WebKitSupport/FrameLoaderClientWx.cpp
@@ -430,9 +430,15 @@ void FrameLoaderClientWx::didChangeTitle(DocumentLoader *l)
 }
 
 
-void FrameLoaderClientWx::finishedLoading(DocumentLoader*)
+void FrameLoaderClientWx::finishedLoading(DocumentLoader* loader)
 {
-    if (m_pluginView) {
+    if (!m_pluginView) {
+        if (m_firstData) {
+            FrameLoader* fl = loader->frameLoader();
+            fl->writer()->setEncoding(m_response.textEncodingName(), false);
+            m_firstData = false;
+        }
+    } else {
         m_pluginView->didFinishLoading();
         m_pluginView = 0;
         m_hasSentResponseToPlugin = false;
@@ -598,9 +604,12 @@ bool FrameLoaderClientWx::canCachePage() const
     return false;
 }
 
-void FrameLoaderClientWx::setMainDocumentError(WebCore::DocumentLoader*, const WebCore::ResourceError&)
+void FrameLoaderClientWx::setMainDocumentError(WebCore::DocumentLoader* loader, const WebCore::ResourceError&)
 {
-    notImplemented();
+    if (m_firstData) {
+        loader->frameLoader()->writer()->setEncoding(m_response.textEncodingName(), false);
+        m_firstData = false;
+    }
 }
 
 void FrameLoaderClientWx::committedLoad(WebCore::DocumentLoader* loader, const char* data, int length)
@@ -722,8 +731,13 @@ void FrameLoaderClientWx::dispatchDidFinishLoading(DocumentLoader*, unsigned lon
     notImplemented();
 }
 
-void FrameLoaderClientWx::dispatchDidFailLoading(DocumentLoader*, unsigned long, const ResourceError&)
+void FrameLoaderClientWx::dispatchDidFailLoading(DocumentLoader* loader, unsigned long, const ResourceError&)
 {
+    if (m_firstData) {
+        FrameLoader* fl = loader->frameLoader();
+        fl->writer()->setEncoding(m_response.textEncodingName(), false);
+        m_firstData = false;
+    }
     if (m_webView) {
         wxWebViewLoadEvent wkEvent(m_webView);
         wkEvent.SetState(wxWEBVIEW_LOAD_FAILED);
diff --git a/WebKit/wx/WebView.cpp b/WebKit/wx/WebView.cpp
index cd16662..88d0ad9 100644
--- a/WebKit/wx/WebView.cpp
+++ b/WebKit/wx/WebView.cpp
@@ -83,6 +83,9 @@
     #include "wx/wx.h"
 #endif
 
+#include "WebDOMElement.h"
+#include "WebDOMNode.h"
+
 #include "WebFrame.h"
 #include "WebView.h"
 #include "WebViewPrivate.h"
@@ -229,7 +232,6 @@ wxWebViewWindowObjectClearedEvent::wxWebViewWindowObjectClearedEvent(wxWindow* w
 //---------------------------------------------------------
 
 wxWebViewDOMElementInfo::wxWebViewDOMElementInfo() :
-    m_domElement(NULL),
     m_isSelected(false),
     m_text(wxEmptyString),
     m_imageSrc(wxEmptyString),
@@ -257,6 +259,25 @@ wxWebViewCachePolicy wxWebView::GetCachePolicy()
     return gs_cachePolicy;
 }
 
+wxWebViewDOMElementInfo::wxWebViewDOMElementInfo(const wxWebViewDOMElementInfo& other)
+{
+    m_isSelected = other.m_isSelected;
+    m_text = other.m_text;
+    m_imageSrc = other.m_imageSrc;
+    m_link = other.m_link;
+    m_innerNode = other.m_innerNode;
+    m_urlElement = other.m_urlElement;
+}
+
+wxWebViewDOMElementInfo::~wxWebViewDOMElementInfo() 
+{
+    if (m_innerNode)
+        delete m_innerNode;
+        
+    if (m_urlElement)
+        delete m_urlElement;
+}
+
 #if OS(DARWIN)
 // prototype - function is in WebSystemInterface.mm
 void InitWebCoreSystemInterface(void);
@@ -364,9 +385,6 @@ bool wxWebView::Create(wxWindow* parent, int id, const wxPoint& position,
     // initialized so that the activate handler is run properly.
     LoadURL(wxT("about:blank"));
     
-    wxWindow* tlw = wxGetTopLevelParent(this);
-    tlw->Connect(-1, wxEVT_ACTIVATE, wxActivateEventHandler(wxWebView::OnTLWActivated));
-
     m_isInitialized = true;
 
     return true;
@@ -386,6 +404,9 @@ wxWebView::~wxWebView()
     m_impl->page = 0;   
 }
 
+// NOTE: binding to this event in the wxWebView constructor is too early in 
+// some cases, but leave the event handler here so that users can bind to it
+// at a later time if they have activation state problems.
 void wxWebView::OnTLWActivated(wxActivateEvent& event)
 {        
     if (m_impl && m_impl->page && m_impl->page->focusController())
@@ -445,6 +466,30 @@ wxString wxWebView::GetExternalRepresentation()
     return wxEmptyString;
 }
 
+wxWebKitSelection wxWebView::GetSelection()
+{
+    if (m_mainFrame)
+        return m_mainFrame->GetSelection();
+        
+    return 0;
+}
+
+wxString wxWebView::GetSelectionAsHTML()
+{
+    if (m_mainFrame)
+        return m_mainFrame->GetSelectionAsHTML();
+        
+    return wxEmptyString;
+}
+
+wxString wxWebView::GetSelectionAsText()
+{
+    if (m_mainFrame)
+        return m_mainFrame->GetSelectionAsText();
+        
+    return wxEmptyString;
+}
+
 void wxWebView::SetTransparent(bool transparent)
 {
     WebCore::Frame* frame = 0;
@@ -477,6 +522,26 @@ wxString wxWebView::RunScript(const wxString& javascript)
     return wxEmptyString;
 }
 
+bool wxWebView::ExecuteEditCommand(const wxString& command, const wxString& parameter)
+{
+    if (m_mainFrame)
+        return m_mainFrame->ExecuteEditCommand(command, parameter);
+}
+
+EditState wxWebView::GetEditCommandState(const wxString& command) const
+{
+    if (m_mainFrame)
+        return m_mainFrame->GetEditCommandState(command);
+}
+
+wxString wxWebView::GetEditCommandValue(const wxString& command) const
+{
+    if (m_mainFrame)
+        return m_mainFrame->GetEditCommandValue(command);
+ 
+    return wxEmptyString;
+}
+
 void wxWebView::LoadURL(const wxString& url)
 {
     if (m_mainFrame)
@@ -551,9 +616,19 @@ void wxWebView::ResetTextSize()
 
 void wxWebView::MakeEditable(bool enable)
 {
-    m_isEditable = enable;
+    if (m_mainFrame)
+        m_mainFrame->MakeEditable(enable);
 }
 
+bool wxWebView::IsEditable() const
+{
+    if (m_mainFrame)
+        return m_mainFrame->IsEditable();
+    
+    return false;
+}
+
+
 
 /* 
  * Event forwarding functions to send events down to WebCore.
diff --git a/WebKit/wx/WebView.h b/WebKit/wx/WebView.h
index 075deaf..d7f23b6 100644
--- a/WebKit/wx/WebView.h
+++ b/WebKit/wx/WebView.h
@@ -33,8 +33,9 @@
     #include "wx/wx.h"
 #endif
 
-#include "WebFrame.h"
 #include "WebKitDefines.h"
+#include "WebDOMSelection.h"
+#include "WebFrame.h"
 #include "WebSettings.h"
 
 class WebViewPrivate;
@@ -161,10 +162,17 @@ public:
     wxString GetAsMarkup();
     wxString GetExternalRepresentation();
     
+    wxWebKitSelection GetSelection();
+    wxString GetSelectionAsHTML();
+    wxString GetSelectionAsText();
+    
     void SetTransparent(bool transparent);
     bool IsTransparent() const;
     
     wxString RunScript(const wxString& javascript);
+    bool ExecuteEditCommand(const wxString& command, const wxString& parameter = wxEmptyString);
+    EditState GetEditCommandState(const wxString& command) const;
+    wxString GetEditCommandValue(const wxString& command) const;
 
     bool FindString(const wxString& string, bool forward = true,
         bool caseSensitive = false, bool wrapSelection = true,
@@ -176,7 +184,7 @@ public:
     void DecreaseTextSize();
     void ResetTextSize();
     void MakeEditable(bool enable);
-    bool IsEditable() const { return m_isEditable; }
+    bool IsEditable() const;
 
     wxString GetPageTitle() const { return m_title; }
     void SetPageTitle(const wxString& title) { m_title = title; }
diff --git a/WebKit/wx/bindings/python/webview.i b/WebKit/wx/bindings/python/webview.i
index bdc5561..95a6ff8 100644
--- a/WebKit/wx/bindings/python/webview.i
+++ b/WebKit/wx/bindings/python/webview.i
@@ -22,33 +22,100 @@
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
  */
-
+ 
 %module webview
 
 %{
 #include "wx/wxPython/wxPython.h"
 #include "wx/wxPython/pyclasses.h"
-
 #include "WebBrowserShell.h"
+#include "WebDOMSelection.h"
+#include "WebEdit.h"
 #include "WebFrame.h"
-#include "WebKitDefines.h"
+#include "WebDOMDefines.h"
 #include "WebSettings.h"
 #include "WebView.h"
+
+#include "WebDOMAttr.h"
+#include "WebDOMCSSStyleDeclaration.h"
+#include "WebDOMDocument.h"
+#include "WebDOMDocumentFragment.h"
+#include "WebDOMDOMSelection.h"
+#include "WebDOMElement.h"
+#include "WebDOMEventListener.h"
+#include "WebDOMNamedNodeMap.h"
+#include "WebDOMNode.h"
+#include "WebDOMNodeList.h"
+#include "WebDOMObject.h"
+#include "WebDOMRange.h"
+
+PyObject* createDOMNodeSubtype(WebDOMNode* ptr, bool setThisOwn)
+{
+    //static wxPyTypeInfoHashMap* typeInfoCache = NULL;
+
+    //if (typeInfoCache == NULL)
+    //    typeInfoCache = new wxPyTypeInfoHashMap;
+
+    swig_type_info* swigType = 0; //(*typeInfoCache)[name];
+    char* name = 0;
+    if (ptr) {
+        // it wasn't in the cache, so look it up from SWIG
+        switch (ptr->nodeType()) {
+            case WebDOMNode::WEBDOM_ELEMENT_NODE:
+                name = "WebDOMElement*";
+                break;
+            case WebDOMNode::WEBDOM_ATTRIBUTE_NODE:
+                name = "WebDOMAttr*";
+                break;
+            default:
+                name = "WebDOMNode*";
+        }
+        swigType = SWIG_TypeQuery(name);
+        if (swigType)
+            return SWIG_Python_NewPointerObj(ptr, swigType, setThisOwn);
+        
+        // if it still wasn't found, try looking for a mapped name
+        //if (swigType) {
+            // and add it to the map if found
+        //    (*typeInfoCache)[className] = swigType;
+        //}
+    }
+    
+    Py_INCREF(Py_None);
+    
+    return Py_None;
+}
+
 %}
 //---------------------------------------------------------------------------
 
 %import core.i
 %import windows.i
 
+%typemap(out) WebDOMNode*             { $result = createDOMNodeSubtype($1, (bool)$owner); }
+%typemap(out) WebDOMElement*             { $result = createDOMNodeSubtype($1, (bool)$owner); }
+
 MAKE_CONST_WXSTRING(WebViewNameStr);
 
 MustHaveApp(wxWebBrowserShell);
 MustHaveApp(wxWebFrame);
 MustHaveApp(wxWebView);
 
+%include WebDOMDefines.h
 %include WebKitDefines.h
 
+%include WebDOMObject.h
+%include WebDOMNode.h
+
+%include WebDOMAttr.h
+%include WebDOMDOMSelection.h
+%include WebDOMElement.h
+%include WebDOMNodeList.h
+%include WebDOMRange.h
+
 %include WebBrowserShell.h
+%include WebDOMSelection.h
+%include WebEdit.h
 %include WebFrame.h
 %include WebSettings.h
 %include WebView.h
diff --git a/WebKit/wx/bindings/python/wscript b/WebKit/wx/bindings/python/wscript
index 41e5d41..617a839 100644
--- a/WebKit/wx/bindings/python/wscript
+++ b/WebKit/wx/bindings/python/wscript
@@ -30,6 +30,9 @@ import Logs
 import Options
 
 include_paths = [
+            os.path.join(wk_root, 'JavaScriptCore'),
+            os.path.join(wk_root, 'WebCore', 'bindings', 'cpp'),
+            os.path.join(wk_root, 'WebCore', 'DerivedSources'),
             os.path.join(wk_root, 'WebKit', 'wx'),
             os.path.join(wx_root, 'wxPython', 'include'),
             os.path.join(wx_root, '..', 'wxPython', 'include'),
@@ -95,4 +98,5 @@ def build(bld):
             
             libpath = [output_dir],
             uselib_local = '',
-            install_path = output_dir)
+            install_path = output_dir
+            )
diff --git a/WebKit/wx/wscript b/WebKit/wx/wscript
index d0594b3..fa3e06f 100644
--- a/WebKit/wx/wscript
+++ b/WebKit/wx/wscript
@@ -32,6 +32,8 @@ include_paths = webkit_dirs + common_includes + ['.', '..',
                 wk_root,
                 os.path.join(wk_root, 'JavaScriptCore'),
                 os.path.join(wk_root, 'WebCore'),
+                os.path.join(wk_root, 'WebCore', 'bindings', 'wx'),
+                os.path.join(wk_root, 'WebCore', 'DerivedSources'),
                 os.path.join(output_dir),
                 os.path.join(wk_root, 'WebCore', 'page', 'wx'),
                 os.path.join(wk_root, 'WebCore', 'platform', 'network', 'curl'),
diff --git a/WebKitTools/ChangeLog b/WebKitTools/ChangeLog
index 0238ac0..b73d12f 100644
--- a/WebKitTools/ChangeLog
+++ b/WebKitTools/ChangeLog
@@ -1,3 +1,13 @@
+2010-07-28  Robin Dunn  <robin at alldunn.com>
+
+        Reviewed by Kevin Ollivier.
+
+        Add DOM bindings support for wx port.
+
+        * DumpRenderTree/wscript:
+        * wx/browser/wscript:
+        * wx/build/settings.py:
+
 2010-07-28  Tony Chang  <tony at chromium.org>
 
         Reviewed by Kent Tamura.
diff --git a/WebKitTools/DumpRenderTree/wscript b/WebKitTools/DumpRenderTree/wscript
index 5e6c597..75d208f 100644
--- a/WebKitTools/DumpRenderTree/wscript
+++ b/WebKitTools/DumpRenderTree/wscript
@@ -33,6 +33,7 @@ include_paths = [
                 os.path.join(output_dir),
                 os.path.join(wk_root, 'JavaScriptCore'),
                 os.path.join(wk_root, 'WebCore'),
+                os.path.join(wk_root, 'WebCore', 'bindings', 'wx'),
                 os.path.join(wk_root, 'WebKit', 'wx'), 
                 '.', 
                 'wx'
diff --git a/WebKitTools/wx/browser/wscript b/WebKitTools/wx/browser/wscript
index a2a24e0..bd2640c 100644
--- a/WebKitTools/wx/browser/wscript
+++ b/WebKitTools/wx/browser/wscript
@@ -29,7 +29,8 @@ import sys
 
 from settings import *
 
-include_paths = [os.path.join(wk_root, 'WebKit', 'wx')]
+include_paths = [os.path.join(wk_root, 'WebCore', 'bindings', 'wx'),
+                os.path.join(wk_root, 'WebKit', 'wx')]
 
 def set_options(opt):
     common_set_options(opt)
diff --git a/WebKitTools/wx/build/settings.py b/WebKitTools/wx/build/settings.py
index b703967..2d144f6 100644
--- a/WebKitTools/wx/build/settings.py
+++ b/WebKitTools/wx/build/settings.py
@@ -99,6 +99,7 @@ jscore_dirs = [
 webcore_dirs = [
     'accessibility',
     'bindings',
+    'bindings/cpp',
     'bindings/generic',
     'bindings/js',
     'bridge', 
@@ -168,7 +169,7 @@ def get_config():
             waf_configname = waf_configname + ' CRT_MULTITHREADED_DLL'
         else:
             waf_configname = waf_configname + ' CRT_MULTITHREADED_DLL_DBG'
-            
+
     return waf_configname
 
 create_hash_table = wk_root + "/JavaScriptCore/create_hash_table"
@@ -176,7 +177,10 @@ if building_on_win32:
     create_hash_table = get_output('cygpath --unix "%s"' % create_hash_table)
 os.environ['CREATE_HASH_TABLE'] = create_hash_table
 
-feature_defines = ['ENABLE_DATABASE', 'ENABLE_XSLT', 'ENABLE_JAVASCRIPT_DEBUGGER', 'ENABLE_SVG', 'ENABLE_SVG_USE', 'ENABLE_FILTERS', 'ENABLE_SVG_FONTS', 'ENABLE_SVG_ANIMATION', 'ENABLE_SVG_AS_IMAGE', 'ENABLE_SVG_FOREIGN_OBJECT', 'EXECUTABLE_ALLOCATOR_DEMAND']
+feature_defines = ['ENABLE_DATABASE', 'ENABLE_XSLT', 'ENABLE_JAVASCRIPT_DEBUGGER',
+                    'ENABLE_SVG', 'ENABLE_SVG_USE', 'ENABLE_FILTERS', 'ENABLE_SVG_FONTS',
+                    'ENABLE_SVG_ANIMATION', 'ENABLE_SVG_AS_IMAGE', 'ENABLE_SVG_FOREIGN_OBJECT',
+                    'ENABLE_JIT', 'ENABLE_EXECUTABLE_ALLOCATOR_DEMAND', 'BUILDING_%s' % build_port.upper()]
 
 msvc_version = 'msvc2008'
 

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list