Title: [119774] trunk/Source/WebKit/blackberry
Revision
119774
Author
[email protected]
Date
2012-06-07 17:00:04 -0700 (Thu, 07 Jun 2012)

Log Message

[BlackBerry] Should Use the WebPage Already Created by Client, No Need to Create New One.
https://bugs.webkit.org/show_bug.cgi?id=88576

Patch by Crystal Zhang <[email protected]> on 2012-06-07
Reviewed by Rob Buis.

When PagePopupBlackBerry::init() is called, a WebPage is already created, we can just use
this to load popup, no need to create a new one. The old code is based on an old solution
which has been abandoned.

* WebCoreSupport/ChromeClientBlackBerry.cpp:
(WebCore::ChromeClientBlackBerry::openPagePopup):
* WebCoreSupport/PagePopupBlackBerry.cpp:
(WebCore::PagePopupBlackBerry::init):
(WebCore::setValueAndClosePopupCallback):
(WebCore::PagePopupBlackBerry::handleMouseEvent):
(WebCore::PagePopupBlackBerry::closePopup):
* WebCoreSupport/PagePopupBlackBerry.h:
(PagePopupBlackBerry):

Modified Paths

Diff

Modified: trunk/Source/WebKit/blackberry/ChangeLog (119773 => 119774)


--- trunk/Source/WebKit/blackberry/ChangeLog	2012-06-07 23:59:48 UTC (rev 119773)
+++ trunk/Source/WebKit/blackberry/ChangeLog	2012-06-08 00:00:04 UTC (rev 119774)
@@ -1,3 +1,24 @@
+2012-06-07  Crystal Zhang  <[email protected]>
+
+        [BlackBerry] Should Use the WebPage Already Created by Client, No Need to Create New One.
+        https://bugs.webkit.org/show_bug.cgi?id=88576
+
+        Reviewed by Rob Buis.
+
+        When PagePopupBlackBerry::init() is called, a WebPage is already created, we can just use 
+        this to load popup, no need to create a new one. The old code is based on an old solution 
+        which has been abandoned.
+
+        * WebCoreSupport/ChromeClientBlackBerry.cpp:
+        (WebCore::ChromeClientBlackBerry::openPagePopup):
+        * WebCoreSupport/PagePopupBlackBerry.cpp:
+        (WebCore::PagePopupBlackBerry::init):
+        (WebCore::setValueAndClosePopupCallback):
+        (WebCore::PagePopupBlackBerry::handleMouseEvent):
+        (WebCore::PagePopupBlackBerry::closePopup):
+        * WebCoreSupport/PagePopupBlackBerry.h:
+        (PagePopupBlackBerry):
+
 2012-06-07  Jacky Jiang  <[email protected]>
 
         [BlackBerry] Get rid of unused maximumLayoutSize in WebPage

Modified: trunk/Source/WebKit/blackberry/WebCoreSupport/ChromeClientBlackBerry.cpp (119773 => 119774)


--- trunk/Source/WebKit/blackberry/WebCoreSupport/ChromeClientBlackBerry.cpp	2012-06-07 23:59:48 UTC (rev 119773)
+++ trunk/Source/WebKit/blackberry/WebCoreSupport/ChromeClientBlackBerry.cpp	2012-06-08 00:00:04 UTC (rev 119774)
@@ -307,10 +307,9 @@
         webPopup = new PagePopupBlackBerry(m_webPagePrivate, client,
                 rootViewToScreen(originBoundsInRootView));
         m_webPagePrivate->m_webPage->popupOpened(webPopup);
-    } else {
+    } else
         webPopup = m_webPagePrivate->m_webPage->popup();
-        webPopup->closeWebPage();
-    }
+
     webPopup->sendCreatePopupWebViewRequest();
     return webPopup;
 }

Modified: trunk/Source/WebKit/blackberry/WebCoreSupport/PagePopupBlackBerry.cpp (119773 => 119774)


--- trunk/Source/WebKit/blackberry/WebCoreSupport/PagePopupBlackBerry.cpp	2012-06-07 23:59:48 UTC (rev 119773)
+++ trunk/Source/WebKit/blackberry/WebCoreSupport/PagePopupBlackBerry.cpp	2012-06-08 00:00:04 UTC (rev 119774)
@@ -19,10 +19,8 @@
 
 #include "PagePopupBlackBerry.h"
 
-#include "ChromeClientBlackBerry.h"
 #include "EmptyClients.h"
 #include "FrameView.h"
-#include "InspectorClientBlackBerry.h"
 #include "JSDOMBinding.h"
 #include "JSDOMWindowBase.h"
 #include "JSObject.h"
@@ -47,30 +45,6 @@
 using namespace BlackBerry::WebKit;
 namespace WebCore {
 
-class PagePopupChromeClient : public ChromeClientBlackBerry {
-public:
-    explicit PagePopupChromeClient(WebPagePrivate* webpage, PagePopupBlackBerry* popup)
-        : ChromeClientBlackBerry(webpage)
-        , m_popup(popup)
-        , m_webPage(webpage)
-    {
-    }
-
-    virtual void closeWindowSoon()
-    {
-        m_popup->closePopup();
-    }
-
-    WebPagePrivate* webPage()
-    {
-        return m_webPage;
-    }
-
-    PagePopupBlackBerry* m_popup;
-    WebPagePrivate* m_webPage;
-    IntRect m_rect;
-};
-
 PagePopupBlackBerry::PagePopupBlackBerry(BlackBerry::WebKit::WebPagePrivate* webPage, PagePopupClient* client, const IntRect& rect)
     : m_webPagePrivate(webPage)
     , m_client(adoptPtr(client))
@@ -89,40 +63,10 @@
 
 bool PagePopupBlackBerry::init(WebPage* webpage)
 {
-    static FrameLoaderClient* emptyFrameLoaderClient = new EmptyFrameLoaderClient;
-    Page::PageClients pageClients;
-    m_chromeClient = adoptPtr(new PagePopupChromeClient(webpage->d, this));
-    static EditorClient* emptyEditorClient = new EmptyEditorClient;
-    pageClients.chromeClient = m_chromeClient.get();
-    pageClients.editorClient = emptyEditorClient;
-#if ENABLE(CONTEXT_MENUS)
-    static ContextMenuClient* emptyContextMenuClient = new EmptyContextMenuClient;
-    pageClients.contextMenuClient = emptyContextMenuClient;
-#endif
-#if ENABLE(DRAG_SUPPORT)
-    static DragClient* emptyDragClient = new EmptyDragClient;
-    pageClients.dragClient = emptyDragClient;
-#endif
-#if ENABLE(INSPECTOR)
-    static InspectorClient* emptyInspectorClient = new EmptyInspectorClient;
-    pageClients.inspectorClient = emptyInspectorClient;
-#endif
-
-    m_page = adoptPtr(new Page(pageClients));
-    m_page->settings()->setScriptEnabled(true);
-    m_page->settings()->setAllowScriptsToCloseWindows(true);
-
-    RefPtr<Frame> frame = Frame::create(m_page.get(), 0,
-            emptyFrameLoaderClient);
-    frame->setView(FrameView::create(frame.get()));
-    frame->init();
-    frame->view()->resize(m_client->contentSize());
-
-    CString htmlSource = m_client->htmlSource().utf8();
-    DocumentWriter* writer = frame->loader()->activeDocumentLoader()->writer();
+    DocumentWriter* writer = webpage->d->mainFrame()->loader()->activeDocumentLoader()->writer();
     m_client->writeDocument(*writer);
 
-    installDomFunction(frame.get());
+    installDomFunction(webpage->d->mainFrame());
 
     webpage->d->setParentPopup(this);
 
@@ -139,7 +83,7 @@
 
     JSStringRef string = JSValueToStringCopy(context, arguments[0], 0);
     size_t sizeUTF8 = JSStringGetMaximumUTF8CStringSize(string);
-    WTF::Vector<char> strArgs(sizeUTF8 + 1);
+    Vector<char> strArgs(sizeUTF8 + 1);
     strArgs[sizeUTF8] = 0;
     JSStringGetUTF8CString(string, strArgs.data(), sizeUTF8);
     JSStringRelease(string);
@@ -217,16 +161,13 @@
 
 bool PagePopupBlackBerry::handleMouseEvent(PlatformMouseEvent& event)
 {
-    if (!m_page->mainFrame() || !m_page->mainFrame()->view())
-        return false;
-
     switch (event.type()) {
     case PlatformEvent::MouseMoved:
-        return m_page->mainFrame()->eventHandler()->handleMouseMoveEvent(event);
+        return m_webPagePrivate->mainFrame()->eventHandler()->handleMouseMoveEvent(event);
     case PlatformEvent::MousePressed:
-        return m_page->mainFrame()->eventHandler()->handleMousePressEvent(event);
+        return m_webPagePrivate->mainFrame()->eventHandler()->handleMousePressEvent(event);
     case PlatformEvent::MouseReleased:
-        return m_page->mainFrame()->eventHandler()->handleMouseReleaseEvent(event);
+        return m_webPagePrivate->mainFrame()->eventHandler()->handleMouseReleaseEvent(event);
     default:
         return false;
     }
@@ -234,21 +175,9 @@
 
 void PagePopupBlackBerry::closePopup()
 {
-    closeWebPage();
     m_client->didClosePopup();
     m_webPagePrivate->client()->closePopupWebView();
 }
 
-void PagePopupBlackBerry::closeWebPage()
-{
-    if (!m_page)
-        return;
-
-    m_page->setGroupName(String());
-    m_page->mainFrame()->loader()->stopAllLoaders();
-    m_page->mainFrame()->loader()->stopLoading(UnloadEventPolicyNone);
-    m_page->mainFrame()->view()->clear();
-    m_page.clear();
 }
-}
 

Modified: trunk/Source/WebKit/blackberry/WebCoreSupport/PagePopupBlackBerry.h (119773 => 119774)


--- trunk/Source/WebKit/blackberry/WebCoreSupport/PagePopupBlackBerry.h	2012-06-07 23:59:48 UTC (rev 119773)
+++ trunk/Source/WebKit/blackberry/WebCoreSupport/PagePopupBlackBerry.h	2012-06-08 00:00:04 UTC (rev 119774)
@@ -33,7 +33,6 @@
 namespace WebCore {
 class Frame;
 class Page;
-class PagePopupChromeClient;
 class PagePopupClient;
 class PlatformMouseEvent;
 
@@ -47,7 +46,6 @@
     void closePopup();
     void installDomFunction(Frame*);
     void setRect();
-    void closeWebPage();
 
     bool handleMouseEvent(PlatformMouseEvent&);
 
@@ -56,10 +54,6 @@
     BlackBerry::WebKit::WebPagePrivate* m_webPagePrivate;
     OwnPtr<PagePopupClient> m_client;
     IntRect m_rect;
-    OwnPtr<WebCore::Page> m_page;
-    OwnPtr<PagePopupChromeClient> m_chromeClient;
-
-    friend class PagePopupChromeClient;
 };
 
 }
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to