2006-10-12 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
authorbdash <bdash@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 12 Oct 2006 09:36:24 +0000 (09:36 +0000)
committerbdash <bdash@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 12 Oct 2006 09:36:24 +0000 (09:36 +0000)
        Reviewed by Maciej.

        Update Gdk\Linux build for recent changes, based on Qt code

        * platform/gdk/FrameGdk.cpp:
        (WebCore::FrameGdkClientDefault::FrameGdkClientDefault):
        (WebCore::FrameGdkClientDefault::~FrameGdkClientDefault):
        (WebCore::FrameGdkClientDefault::setFrame):
        (WebCore::FrameGdkClientDefault::openURL):
        (WebCore::FrameGdkClientDefault::submitForm):
        (WebCore::FrameGdkClientDefault::receivedResponse):
        (WebCore::FrameGdkClientDefault::receivedData):
        (WebCore::FrameGdkClientDefault::receivedAllData):
        (WebCore::FrameGdk::FrameGdk):
        (WebCore::FrameGdk::openURL):
        (WebCore::FrameGdk::submitForm):
        (WebCore::FrameGdk::urlSelected):
        * platform/gdk/FrameGdk.h:
        * platform/gdk/TemporaryLinkStubs.cpp:
        (FrameGdk::createJavaAppletWidget):
        (FileChooser::create):

2006-10-12  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>

        Reviewed by Maciej.

        Also regenerate GdkLauncher makefiles, since not doing that might
        lead to mismatch between WebCore and GdkLauncher compiler settings.

        * Scripts/regenerate-makefiles:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@17003 268f45cc-cd09-0410-ab3c-d52691b4dbfc

WebCore/ChangeLog
WebCore/platform/gdk/FrameGdk.cpp
WebCore/platform/gdk/FrameGdk.h
WebCore/platform/gdk/TemporaryLinkStubs.cpp
WebKitTools/ChangeLog
WebKitTools/Scripts/regenerate-makefiles

index 509bd897603be33b67069b6052f23c4bb6b71b8b..d845e5300350120ee20a51c27ed636714a750078 100644 (file)
@@ -1,3 +1,27 @@
+2006-10-12  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
+
+        Reviewed by Maciej.
+
+        Update Gdk\Linux build for recent changes, based on Qt code
+
+        * platform/gdk/FrameGdk.cpp:
+        (WebCore::FrameGdkClientDefault::FrameGdkClientDefault):
+        (WebCore::FrameGdkClientDefault::~FrameGdkClientDefault):
+        (WebCore::FrameGdkClientDefault::setFrame):
+        (WebCore::FrameGdkClientDefault::openURL):
+        (WebCore::FrameGdkClientDefault::submitForm):
+        (WebCore::FrameGdkClientDefault::receivedResponse):
+        (WebCore::FrameGdkClientDefault::receivedData):
+        (WebCore::FrameGdkClientDefault::receivedAllData):
+        (WebCore::FrameGdk::FrameGdk):
+        (WebCore::FrameGdk::openURL):
+        (WebCore::FrameGdk::submitForm):
+        (WebCore::FrameGdk::urlSelected):
+        * platform/gdk/FrameGdk.h:
+        * platform/gdk/TemporaryLinkStubs.cpp:
+        (FrameGdk::createJavaAppletWidget):
+        (FileChooser::create):
+
 2006-10-12  Dave Hyatt  <hyatt@apple.com>
 
         Patch to add more clipping retrieval functionality for widgets.
index 14d8cdae7db48ae33295c35fc985675317361d33..7e795b655cbe8ccd956bada6888f4dac35610fb8 100644 (file)
@@ -43,6 +43,7 @@
 #include "GraphicsContext.h"
 #include "HTMLDocument.h"
 #include "ResourceLoader.h"
+#include "ResourceLoaderInternal.h"
 #include "PlatformMouseEvent.h"
 #include "PlatformKeyboardEvent.h"
 #include "PlatformWheelEvent.h"
@@ -69,6 +70,70 @@ Vector<char> loadResourceIntoArray(const char* resourceName)
 
 namespace WebCore {
 
+FrameGdkClientDefault::FrameGdkClientDefault()
+    : ResourceLoaderClient()
+    , m_frame(0)
+    , m_beginCalled(false)
+{
+}
+
+FrameGdkClientDefault::~FrameGdkClientDefault()
+{
+}
+
+void FrameGdkClientDefault::setFrame(const FrameGdk* frame)
+{
+    m_frame = const_cast<FrameGdk*>(frame);
+}
+
+void FrameGdkClientDefault::openURL(const KURL& url)
+{
+    m_frame->didOpenURL(url);
+    m_beginCalled = false;
+
+    RefPtr<ResourceLoader> loader = ResourceLoader::create(this, "GET", url);
+    loader->start(0);
+}
+
+void FrameGdkClientDefault::submitForm(const String& method, const KURL& url, const FormData* postData)
+{
+    m_beginCalled = false;
+
+    RefPtr<ResourceLoader> loader = ResourceLoader::create(this, method, url, *postData);
+    loader->start(0);
+}
+
+void FrameGdkClientDefault::receivedResponse(ResourceLoader*, PlatformResponse)
+{
+    // no-op
+}
+
+void FrameGdkClientDefault::receivedData(ResourceLoader* job, const char* data, int length)
+{
+    if (!m_beginCalled) {
+        m_beginCalled = true;
+
+#if 0  // FIXME: This is from Qt version, need to be removed or Gdk equivalent written
+        // Assign correct mimetype _before_ calling begin()!
+        ResourceLoaderInternal* d = job->getInternal();
+        if (d) {
+            ResourceRequest request(m_frame->resourceRequest());
+            request.m_responseMIMEType = d->m_mimetype;
+            m_frame->setResourceRequest(request);
+        }
+#endif
+        m_frame->begin(job->url());
+    }
+
+    m_frame->write(data, length);
+}
+
+void FrameGdkClientDefault::receivedAllData(ResourceLoader* job, PlatformData data)
+{
+    m_frame->end();
+    m_beginCalled = false;
+}
+
 static void doScroll(const RenderObject* r, float deltaX, float deltaY)
 {
     // FIXME: The scrolling done here should be done in the default handlers
@@ -110,6 +175,9 @@ FrameGdk::FrameGdk(GdkDrawable* gdkdrawable)
     IntRect geom = frameGeometry();
     view->resize(geom.width(), geom.height());
     view->ScrollView::setDrawable(gdkdrawable);
+
+    m_client = new FrameGdkClientDefault();
+    m_client->setFrame(this);
 }
 
 FrameGdk::FrameGdk(Page* page, Element* element)
@@ -119,6 +187,8 @@ FrameGdk::FrameGdk(Page* page, Element* element)
     Settings* settings = new Settings;
     settings->setAutoLoadImages(true);
     setSettings(settings);
+    m_client = new FrameGdkClientDefault();
+    m_client->setFrame(this);
 }
 
 FrameGdk::~FrameGdk()
@@ -128,26 +198,32 @@ FrameGdk::~FrameGdk()
 
 bool FrameGdk::openURL(const KURL& url)
 {
-    didOpenURL(url);
-    begin(url);
-    RefPtr<ResourceLoader> loader = ResourceLoader::create(this, "GET", url);
-    loader->start(document()->docLoader());
+    if (!m_client)
+        return false;
+
+    m_client->openURL(url);
     return true;
 }
 
-void FrameGdk::submitForm(const ResourceRequest&)
+void FrameGdk::submitForm(const ResourceRequest& request)
 {
+    // FIXME: this is a hack inherited from FrameMac, and should be pushed into Frame
+    if (d->m_submittedFormURL == request.url())
+        return;
+
+    d->m_submittedFormURL = request.url();
+
+    if (m_client)
+        m_client->submitForm(request.doPost() ? "POST" : "GET", request.url(), &request.postData);
+    clearRecordedFormValues();
 }
 
 void FrameGdk::urlSelected(const ResourceRequest& request)
 {
-    //need to potentially updateLocationBar(str.ascii()); or notify sys of new url mybe event or callback
-    const KURL url = request.url();
-    printf("------------------> LOADING NEW URL %s \n", url.url().ascii());
-    didOpenURL(url);
-    begin(url);
-    RefPtr<ResourceLoader> loader = ResourceLoader::create(this, "GET", url);
-    loader->start(document()->docLoader());
+    if (!m_client)
+        return;
+
+    m_client->openURL(request.url());
 }
 
 String FrameGdk::userAgent() const
@@ -298,16 +374,6 @@ void FrameGdk::handleGdkEvent(GdkEvent* event)
     }
 }
 
-void FrameGdk::receivedData(ResourceLoader* job, const char* data, int length)
-{
-    write(data, length);
-}
-
-void FrameGdk::receivedAllData(ResourceLoader* job, PlatformData data)
-{
-    end();
-}
-
 void FrameGdk::setFrameGeometry(const IntRect &r)
 {
     if (!m_drawable || !GDK_IS_WINDOW(m_drawable))
index a196d504300c7a93781fe6d9444dc0309605a21b..912ccdc7a5d1f048490339cc9fc3c4fab98a371d 100644 (file)
 namespace WebCore {
 
 class Element;
+class FrameGdk;
 
 class FrameGdkClient {
 public:
-    virtual void openURL(const DeprecatedString&) = 0;
+    virtual ~FrameGdkClient() = 0;
+
+    virtual void setFrame(const FrameGdk*) = 0;
+
+    virtual void openURL(const KURL&) = 0;
+    virtual void submitForm(const String& method, const KURL&, const FormData*) = 0;
+};
+
+class FrameGdkClientDefault : public FrameGdkClient,
+                              public  ResourceLoaderClient 
+{
+public:
+
+    FrameGdkClientDefault();
+    virtual ~FrameGdkClientDefault();
+
+    // FrameGdkClient
+    virtual void setFrame(const FrameGdk*);
+    virtual void openURL(const KURL&);
+    virtual void submitForm(const String& method, const KURL&, const FormData*);
+
+    // ResourceLoaderClient
+    virtual void receivedResponse(ResourceLoader*, PlatformResponse);
+    virtual void receivedData(ResourceLoader*, const char*, int);
+    virtual void receivedAllData(ResourceLoader*, PlatformData);
+
+private:
+    FrameGdk* m_frame;
+    bool m_beginCalled : 1;
+
 };
 
-class FrameGdk : public Frame, ResourceLoaderClient {
+class FrameGdk : public Frame {
 public:
     FrameGdk(Page*, Element*);
     FrameGdk(GdkDrawable*);
@@ -129,12 +159,10 @@ public:
     bool keyPress(const PlatformKeyboardEvent&);
     virtual KURL originalRequestURL() const;
 
-    virtual void receivedData(ResourceLoader*, const char*, int);
-    virtual void receivedAllData(ResourceLoader*,PlatformData);
-
     IntRect frameGeometry() const;
     void setFrameGeometry(const IntRect&);
     virtual Frame* createFrame(const KURL&, const String& name, Element* ownerElement, const String& referrer);
+    Widget* createJavaAppletWidget(const IntSize&, Element*, const HashMap<String, String>&);
 
 private:
     virtual bool isLoadTypeReload();
index 139bfff04aa4931c5c182272b85c152fcef4d909..a681fd26094bb6d2bf3c6b1ac64e392dc8fcb2ad 100644 (file)
@@ -47,7 +47,6 @@
 #include "KURL.h"
 #include "PlatformScrollBar.h"
 #include "ScrollBar.h"
-#include "JavaAppletWidget.h"
 #include "Path.h"
 #include "PlatformMouseEvent.h"
 #include "CookieJar.h"
@@ -88,8 +87,6 @@ GraphicsContext* Widget::lockDrawingFocus() { notImplemented(); return 0; }
 void Widget::unlockDrawingFocus(GraphicsContext*) { notImplemented(); }
 void Widget::removeFromParent() { }
 
-JavaAppletWidget::JavaAppletWidget(IntSize const&, Element*, WTF::HashMap<String, String> const&) { notImplemented(); }
-
 void TextField::selectAll() { notImplemented(); }
 void TextField::addSearchResult() { notImplemented(); }
 int TextField::selectionStart() const { notImplemented(); return 0; }
@@ -146,6 +143,7 @@ void FrameGdk::issueRedoCommand(void) { notImplemented(); }
 KJS::Bindings::Instance* FrameGdk::getObjectInstanceForWidget(Widget *) { notImplemented(); return 0; }
 KJS::Bindings::Instance* FrameGdk::getEmbedInstanceForWidget(Widget *) { notImplemented(); return 0; }
 KJS::Bindings::RootObject* FrameGdk::bindingRootObject() { notImplemented(); return 0; }
+Widget* FrameGdk::createJavaAppletWidget(const IntSize&, Element*, const HashMap<String, String>&) { notImplemented(); return 0; }
 bool FrameGdk::canRedo() const { notImplemented(); return 0; }
 bool FrameGdk::canUndo() const { notImplemented(); return 0; }
 void FrameGdk::registerCommandForRedo(PassRefPtr<WebCore::EditCommand>) { notImplemented(); }
@@ -341,6 +339,7 @@ void ListBox::setFont(WebCore::Font const&) { }
 
 FileChooser::FileChooser(Document*, RenderFileUploadControl*) { notImplemented(); }
 FileChooser::~FileChooser() { notImplemented(); }
+PassRefPtr<FileChooser> FileChooser::create(Document*, RenderFileUploadControl*) { notImplemented(); return 0; }
 void FileChooser::openFileChooser() { notImplemented(); }
 String FileChooser::basenameForWidth(int width) const { notImplemented(); return String(); }
 void FileChooser::uploadControlDetaching() { notImplemented(); }
index 51526347588e5114d89b4bdc2dfbb391a883baf7..47446a8d4609a85e94d765d4222f21c2213c0ab0 100644 (file)
@@ -1,3 +1,12 @@
+2006-10-12  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
+
+        Reviewed by Maciej.
+
+        Also regenerate GdkLauncher makefiles, since not doing that might
+        lead to mismatch between WebCore and GdkLauncher compiler settings.
+
+        * Scripts/regenerate-makefiles:
+
 2006-10-10  David Smith  <catfish.man@gmail.com>
 
         Reviewed by Tim H.
index e0dab694a474ef228ed5f83b773a9ec6322967fb..49f344b2610b39a0278392f280f0be5c64e90930 100755 (executable)
@@ -69,3 +69,5 @@ fi
 
 cd ../../Bakefiles
 bakefile_gen
+cd ../WebKitTools/GdkLauncher
+bakefile_gen