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