Title: [126338] trunk/Source/WebKit/blackberry
Revision
126338
Author
[email protected]
Date
2012-08-22 12:38:45 -0700 (Wed, 22 Aug 2012)

Log Message

[BlackBerry] Make all pickers non-zoomable
https://bugs.webkit.org/show_bug.cgi?id=94729

Patch by Crystal Zhang <[email protected]> on 2012-08-22
Reviewed by Antonio Gomes.

Move HTML header initialization to PagePopupBlackBerry as that part are all the same, and make all pickers non-zoomable.

* Api/WebPage.cpp:
(BlackBerry::WebKit::WebPagePrivate::screenSize):
(WebKit):
* Api/WebPage_p.h:
(WebPagePrivate):
* WebCoreSupport/DatePickerClient.cpp:
(WebCore::DatePickerClient::generateHTML):
(WebCore::DatePickerClient::writeDocument):
* WebCoreSupport/PagePopupBlackBerry.cpp:
(WebCore::PagePopupBlackBerry::init):
(WebCore::PagePopupBlackBerry::generateHTML):
(WebCore):
* WebCoreSupport/PagePopupBlackBerry.h:
(PagePopupBlackBerry):
* WebCoreSupport/SelectPopupClient.cpp:
(WebCore::SelectPopupClient::generateHTML):
(WebCore::SelectPopupClient::writeDocument):

Modified Paths

Diff

Modified: trunk/Source/WebKit/blackberry/Api/WebPage.cpp (126337 => 126338)


--- trunk/Source/WebKit/blackberry/Api/WebPage.cpp	2012-08-22 19:37:03 UTC (rev 126337)
+++ trunk/Source/WebKit/blackberry/Api/WebPage.cpp	2012-08-22 19:38:45 UTC (rev 126338)
@@ -6445,5 +6445,10 @@
     }
 }
 
+IntSize WebPagePrivate::screenSize() const
+{
+    return Platform::Graphics::Screen::primaryScreen()->size();
 }
+
 }
+}

Modified: trunk/Source/WebKit/blackberry/Api/WebPage_p.h (126337 => 126338)


--- trunk/Source/WebKit/blackberry/Api/WebPage_p.h	2012-08-22 19:37:03 UTC (rev 126337)
+++ trunk/Source/WebKit/blackberry/Api/WebPage_p.h	2012-08-22 19:38:45 UTC (rev 126338)
@@ -462,6 +462,8 @@
     void applySizeOverride(int overrideWidth, int overrideHeight);
     void setTextZoomFactor(float);
 
+    WebCore::IntSize screenSize() const;
+
     WebPage* m_webPage;
     WebPageClient* m_client;
     WebCore::InspectorClientBlackBerry* m_inspectorClient;

Modified: trunk/Source/WebKit/blackberry/ChangeLog (126337 => 126338)


--- trunk/Source/WebKit/blackberry/ChangeLog	2012-08-22 19:37:03 UTC (rev 126337)
+++ trunk/Source/WebKit/blackberry/ChangeLog	2012-08-22 19:38:45 UTC (rev 126338)
@@ -1,3 +1,30 @@
+2012-08-22  Crystal Zhang  <[email protected]>
+
+        [BlackBerry] Make all pickers non-zoomable
+        https://bugs.webkit.org/show_bug.cgi?id=94729
+
+        Reviewed by Antonio Gomes.
+
+        Move HTML header initialization to PagePopupBlackBerry as that part are all the same, and make all pickers non-zoomable.
+
+        * Api/WebPage.cpp:
+        (BlackBerry::WebKit::WebPagePrivate::screenSize):
+        (WebKit):
+        * Api/WebPage_p.h:
+        (WebPagePrivate):
+        * WebCoreSupport/DatePickerClient.cpp:
+        (WebCore::DatePickerClient::generateHTML):
+        (WebCore::DatePickerClient::writeDocument):
+        * WebCoreSupport/PagePopupBlackBerry.cpp:
+        (WebCore::PagePopupBlackBerry::init):
+        (WebCore::PagePopupBlackBerry::generateHTML):
+        (WebCore):
+        * WebCoreSupport/PagePopupBlackBerry.h:
+        (PagePopupBlackBerry):
+        * WebCoreSupport/SelectPopupClient.cpp:
+        (WebCore::SelectPopupClient::generateHTML):
+        (WebCore::SelectPopupClient::writeDocument):
+
 2012-08-21  Benjamin C Meyer  <[email protected]>
 
         [BlackBerry] Add option to only add _javascript_ object 'qnx' to private webviews

Modified: trunk/Source/WebKit/blackberry/WebCoreSupport/DatePickerClient.cpp (126337 => 126338)


--- trunk/Source/WebKit/blackberry/WebCoreSupport/DatePickerClient.cpp	2012-08-22 19:37:03 UTC (rev 126337)
+++ trunk/Source/WebKit/blackberry/WebCoreSupport/DatePickerClient.cpp	2012-08-22 19:38:45 UTC (rev 126338)
@@ -50,7 +50,7 @@
 void DatePickerClient::generateHTML(BlackBerry::Platform::BlackBerryInputType type, const BlackBerry::WebKit::WebString& value, const BlackBerry::WebKit::WebString& min, const BlackBerry::WebKit::WebString& max, double step)
 {
     StringBuilder source;
-    source.append("<html><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"/><style>\n");
+    source.append("<style>\n");
     // Include CSS file.
     source.append(popupControlBlackBerryCss,
             sizeof(popupControlBlackBerryCss));
@@ -134,9 +134,6 @@
 
 void DatePickerClient::writeDocument(DocumentWriter& writer)
 {
-    writer.setMIMEType("text/html");
-    writer.begin(KURL());
     writer.addData(m_source.utf8().data(), m_source.utf8().length());
-    writer.end();
 }
 }

Modified: trunk/Source/WebKit/blackberry/WebCoreSupport/PagePopupBlackBerry.cpp (126337 => 126338)


--- trunk/Source/WebKit/blackberry/WebCoreSupport/PagePopupBlackBerry.cpp	2012-08-22 19:37:03 UTC (rev 126337)
+++ trunk/Source/WebKit/blackberry/WebCoreSupport/PagePopupBlackBerry.cpp	2012-08-22 19:38:45 UTC (rev 126338)
@@ -40,6 +40,7 @@
 
 // Fixme: should get the height from runtime.
 #define URL_BAR_HEIGHT 70
+#define PADDING 80
 
 using namespace BlackBerry::Platform::Graphics;
 using namespace BlackBerry::WebKit;
@@ -63,14 +64,32 @@
 
 bool PagePopupBlackBerry::init(WebPage* webpage)
 {
-    DocumentWriter* writer = webpage->d->mainFrame()->loader()->activeDocumentLoader()->writer();
-    m_client->writeDocument(*writer);
+    generateHTML(webpage);
 
     installDomFunction(webpage->d->mainFrame());
 
     return true;
 }
 
+void PagePopupBlackBerry::generateHTML(WebPage* webpage)
+{
+    DocumentWriter* writer = webpage->d->mainFrame()->loader()->activeDocumentLoader()->writer();
+    writer->setMIMEType("text/html");
+    writer->begin(KURL());
+
+    // All the popups have the same html head and the page content should be non-zoomable.
+    StringBuilder source;
+    // FIXME: the hardcoding padding will be removed soon.
+    int screenWidth = webpage->d->screenSize().width() - PADDING;
+    source.append("<html><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"/>\n");
+    source.append("<meta name=\"viewport\" content=\"width=" + String::number(screenWidth));
+    source.append("; user-scalable=no\" />\n");
+    writer->addData(source.toString().utf8().data(), source.toString().utf8().length());
+
+    m_client->writeDocument(*writer);
+    writer->end();
+}
+
 static JSValueRef setValueAndClosePopupCallback(JSContextRef context,
         JSObjectRef, JSObjectRef, size_t argumentCount,
         const JSValueRef arguments[], JSValueRef*)

Modified: trunk/Source/WebKit/blackberry/WebCoreSupport/PagePopupBlackBerry.h (126337 => 126338)


--- trunk/Source/WebKit/blackberry/WebCoreSupport/PagePopupBlackBerry.h	2012-08-22 19:37:03 UTC (rev 126337)
+++ trunk/Source/WebKit/blackberry/WebCoreSupport/PagePopupBlackBerry.h	2012-08-22 19:38:45 UTC (rev 126338)
@@ -46,6 +46,7 @@
     void closePopup();
     void installDomFunction(Frame*);
     void setRect();
+    void generateHTML(BlackBerry::WebKit::WebPage*);
 
 private:
     BlackBerry::WebKit::WebPagePrivate* m_webPagePrivate;

Modified: trunk/Source/WebKit/blackberry/WebCoreSupport/SelectPopupClient.cpp (126337 => 126338)


--- trunk/Source/WebKit/blackberry/WebCoreSupport/SelectPopupClient.cpp	2012-08-22 19:37:03 UTC (rev 126337)
+++ trunk/Source/WebKit/blackberry/WebCoreSupport/SelectPopupClient.cpp	2012-08-22 19:38:45 UTC (rev 126338)
@@ -66,7 +66,7 @@
     const int* itemType, bool* selecteds)
 {
     StringBuilder source;
-    source.append("<html><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"/><style>\n");
+    source.append("<style>\n");
     // Include CSS file.
     source.append(popupControlBlackBerryCss,
             sizeof(popupControlBlackBerryCss));
@@ -188,10 +188,7 @@
 
 void SelectPopupClient::writeDocument(DocumentWriter& writer)
 {
-    writer.setMIMEType("text/html");
-    writer.begin(KURL());
     writer.addData(m_source.utf8().data(), m_source.utf8().length());
-    writer.end();
 }
 
 void SelectPopupClient::notifySelectionChange(WebCore::Timer<SelectPopupClient>*)
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to