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>*)