Title: [167738] trunk/Source/WebKit2
- Revision
- 167738
- Author
- benja...@webkit.org
- Date
- 2014-04-23 19:37:05 -0700 (Wed, 23 Apr 2014)
Log Message
[iOS][WK2] Image and text documents sometime gets the webpage viewport configuration
https://bugs.webkit.org/show_bug.cgi?id=132099
Patch by Benjamin Poulain <bpoul...@apple.com> on 2014-04-23
Reviewed by Tim Horton.
When didReceiveMobileDocType(), if the doctype was not XHTML mobile, we were setting
the viewport configuration to webpageParameters(). This is obviously not correct for
Image and Text documents.
This patch moves the code deciding the default configuration out of WebPage::didCommitLoad()
and use it from WebPage::didCommitLoad() and WebPage::didReceiveMobileDocType().
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::didCommitLoad):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::didReceiveMobileDocType):
(WebKit::WebPage::resetViewportDefaultConfiguration):
Modified Paths
Diff
Modified: trunk/Source/WebKit2/ChangeLog (167737 => 167738)
--- trunk/Source/WebKit2/ChangeLog 2014-04-24 02:25:08 UTC (rev 167737)
+++ trunk/Source/WebKit2/ChangeLog 2014-04-24 02:37:05 UTC (rev 167738)
@@ -1,5 +1,26 @@
2014-04-23 Benjamin Poulain <bpoul...@apple.com>
+ [iOS][WK2] Image and text documents sometime gets the webpage viewport configuration
+ https://bugs.webkit.org/show_bug.cgi?id=132099
+
+ Reviewed by Tim Horton.
+
+ When didReceiveMobileDocType(), if the doctype was not XHTML mobile, we were setting
+ the viewport configuration to webpageParameters(). This is obviously not correct for
+ Image and Text documents.
+
+ This patch moves the code deciding the default configuration out of WebPage::didCommitLoad()
+ and use it from WebPage::didCommitLoad() and WebPage::didReceiveMobileDocType().
+
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::didCommitLoad):
+ * WebProcess/WebPage/WebPage.h:
+ * WebProcess/WebPage/ios/WebPageIOS.mm:
+ (WebKit::WebPage::didReceiveMobileDocType):
+ (WebKit::WebPage::resetViewportDefaultConfiguration):
+
+2014-04-23 Benjamin Poulain <bpoul...@apple.com>
+
[iOS][WK2] Fix a few mistakes affecting the initial layout and the initial unobscured rect
https://bugs.webkit.org/show_bug.cgi?id=132093
<rdar://problem/16703237>
Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp (167737 => 167738)
--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp 2014-04-24 02:25:08 UTC (rev 167737)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp 2014-04-24 02:37:05 UTC (rev 167738)
@@ -4254,14 +4254,7 @@
WebProcess::shared().eventDispatcher().clearQueuedTouchEventsForPage(*this);
- Document* document = frame->coreFrame()->document();
- if (document->isImageDocument())
- m_viewportConfiguration.setDefaultConfiguration(ViewportConfiguration::imageDocumentParameters());
- else if (document->isTextDocument())
- m_viewportConfiguration.setDefaultConfiguration(ViewportConfiguration::textDocumentParameters());
- else
- m_viewportConfiguration.setDefaultConfiguration(ViewportConfiguration::webpageParameters());
-
+ resetViewportDefaultConfiguration(frame);
m_viewportConfiguration.setViewportArguments(ViewportArguments());
m_viewportConfiguration.setContentsSize(IntSize());
viewportConfigurationChanged();
Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h (167737 => 167738)
--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h 2014-04-24 02:25:08 UTC (rev 167737)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h 2014-04-24 02:37:05 UTC (rev 167738)
@@ -698,7 +698,6 @@
void setViewportConfigurationMinimumLayoutSize(const WebCore::FloatSize&);
void setMinimumLayoutSizeForMinimalUI(const WebCore::FloatSize&);
void dynamicViewportSizeUpdate(const WebCore::FloatSize& minimumLayoutSize, const WebCore::FloatRect& targetExposedContentRect, const WebCore::FloatRect& targetUnobscuredRect, double scale);
- void viewportConfigurationChanged();
void updateVisibleContentRects(const VisibleContentRectUpdateInfo&);
bool scaleWasSetByUIProcess() const { return m_scaleWasSetByUIProcess; }
void willStartUserTriggeredZooming();
@@ -802,6 +801,9 @@
void didReceiveSyncWebPageMessage(IPC::Connection*, IPC::MessageDecoder&, std::unique_ptr<IPC::MessageEncoder>&);
#if PLATFORM(IOS)
+ void resetViewportDefaultConfiguration(WebFrame* mainFrame);
+ void viewportConfigurationChanged();
+
static void convertSelectionRectsToRootView(WebCore::FrameView*, Vector<WebCore::SelectionRect>&);
PassRefPtr<WebCore::Range> rangeForWebSelectionAtPosition(const WebCore::IntPoint&, const WebCore::VisiblePosition&, SelectionFlags&);
PassRefPtr<WebCore::Range> rangeForBlockAtPoint(const WebCore::IntPoint&);
Modified: trunk/Source/WebKit2/WebProcess/WebPage/ios/WebPageIOS.mm (167737 => 167738)
--- trunk/Source/WebKit2/WebProcess/WebPage/ios/WebPageIOS.mm 2014-04-24 02:25:08 UTC (rev 167737)
+++ trunk/Source/WebKit2/WebProcess/WebPage/ios/WebPageIOS.mm 2014-04-24 02:37:05 UTC (rev 167738)
@@ -134,7 +134,7 @@
if (isMobileDoctype)
m_viewportConfiguration.setDefaultConfiguration(ViewportConfiguration::xhtmlMobileParameters());
else
- m_viewportConfiguration.setDefaultConfiguration(ViewportConfiguration::webpageParameters());
+ resetViewportDefaultConfiguration(m_mainFrame.get());
}
double WebPage::minimumPageScaleFactor() const
@@ -1919,6 +1919,22 @@
send(Messages::WebPageProxy::DynamicViewportUpdateChangedTarget(scale, roundedUnobscuredContentRect.location()));
}
+void WebPage::resetViewportDefaultConfiguration(WebFrame* frame)
+{
+ if (!frame) {
+ m_viewportConfiguration.setDefaultConfiguration(ViewportConfiguration::webpageParameters());
+ return;
+ }
+
+ Document* document = frame->coreFrame()->document();
+ if (document->isImageDocument())
+ m_viewportConfiguration.setDefaultConfiguration(ViewportConfiguration::imageDocumentParameters());
+ else if (document->isTextDocument())
+ m_viewportConfiguration.setDefaultConfiguration(ViewportConfiguration::textDocumentParameters());
+ else
+ m_viewportConfiguration.setDefaultConfiguration(ViewportConfiguration::webpageParameters());
+}
+
void WebPage::viewportConfigurationChanged()
{
setFixedLayoutSize(m_viewportConfiguration.layoutSize());
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes