Title: [106899] trunk/Source/WebCore
- Revision
- 106899
- Author
- [email protected]
- Date
- 2012-02-06 20:16:50 -0800 (Mon, 06 Feb 2012)
Log Message
Avoid Page::updateViewportArguments() if the causing frame is not the main frame
https://bugs.webkit.org/show_bug.cgi?id=77387
Reviewed by Kenneth Rohde Christiansen.
* dom/Document.cpp:
(WebCore::Document::processViewport):
(WebCore::Document::updateViewportArguments):
(WebCore::Document::setInPageCache):
* dom/Document.h:
(Document):
* html/HTMLBodyElement.cpp:
(WebCore::HTMLBodyElement::insertedIntoDocument):
* page/Frame.cpp:
(WebCore::Frame::setDocument):
* page/Page.cpp:
(WebCore::Page::viewportArguments):
(WebCore):
* page/Page.h:
(Page):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (106898 => 106899)
--- trunk/Source/WebCore/ChangeLog 2012-02-07 04:05:21 UTC (rev 106898)
+++ trunk/Source/WebCore/ChangeLog 2012-02-07 04:16:50 UTC (rev 106899)
@@ -1,3 +1,26 @@
+2012-02-06 Xianzhu Wang <[email protected]>
+
+ Avoid Page::updateViewportArguments() if the causing frame is not the main frame
+ https://bugs.webkit.org/show_bug.cgi?id=77387
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ * dom/Document.cpp:
+ (WebCore::Document::processViewport):
+ (WebCore::Document::updateViewportArguments):
+ (WebCore::Document::setInPageCache):
+ * dom/Document.h:
+ (Document):
+ * html/HTMLBodyElement.cpp:
+ (WebCore::HTMLBodyElement::insertedIntoDocument):
+ * page/Frame.cpp:
+ (WebCore::Frame::setDocument):
+ * page/Page.cpp:
+ (WebCore::Page::viewportArguments):
+ (WebCore):
+ * page/Page.h:
+ (Page):
+
2012-02-06 Martin Robinson <[email protected]>
Fix some miscellaneous 'make dist' error for WebKitGTK+.
Modified: trunk/Source/WebCore/dom/Document.cpp (106898 => 106899)
--- trunk/Source/WebCore/dom/Document.cpp 2012-02-07 04:05:21 UTC (rev 106898)
+++ trunk/Source/WebCore/dom/Document.cpp 2012-02-07 04:16:50 UTC (rev 106899)
@@ -2794,11 +2794,13 @@
m_viewportArguments = ViewportArguments(ViewportArguments::ViewportMeta);
processArguments(features, (void*)&m_viewportArguments, &setViewportFeature);
- Frame* frame = this->frame();
- if (!frame || !frame->page())
- return;
+ updateViewportArguments();
+}
- frame->page()->updateViewportArguments();
+void Document::updateViewportArguments()
+{
+ if (page() && page()->mainFrame() == frame())
+ page()->chrome()->dispatchViewportPropertiesDidChange(m_viewportArguments);
}
void Document::processReferrerPolicy(const String& policy)
@@ -4076,8 +4078,7 @@
setRenderer(m_savedRenderer);
m_savedRenderer = 0;
- if (frame() && frame()->page())
- frame()->page()->updateViewportArguments();
+ updateViewportArguments();
if (childNeedsStyleRecalc())
scheduleStyleRecalc();
Modified: trunk/Source/WebCore/dom/Document.h (106898 => 106899)
--- trunk/Source/WebCore/dom/Document.h 2012-02-07 04:05:21 UTC (rev 106898)
+++ trunk/Source/WebCore/dom/Document.h 2012-02-07 04:16:50 UTC (rev 106899)
@@ -803,6 +803,7 @@
*/
void processHttpEquiv(const String& equiv, const String& content);
void processViewport(const String& features);
+ void updateViewportArguments();
void processReferrerPolicy(const String& policy);
// Returns the owning element in the parent document.
Modified: trunk/Source/WebCore/html/HTMLBodyElement.cpp (106898 => 106899)
--- trunk/Source/WebCore/html/HTMLBodyElement.cpp 2012-02-07 04:05:21 UTC (rev 106898)
+++ trunk/Source/WebCore/html/HTMLBodyElement.cpp 2012-02-07 04:16:50 UTC (rev 106899)
@@ -163,6 +163,8 @@
{
HTMLElement::insertedIntoDocument();
+ ASSERT(document());
+
// FIXME: Perhaps this code should be in attach() instead of here.
Element* ownerElement = document()->ownerElement();
if (ownerElement && (ownerElement->hasTagName(frameTag) || ownerElement->hasTagName(iframeTag))) {
@@ -180,8 +182,7 @@
if (FrameView* view = document()->view())
view->scheduleRelayout();
- if (document() && document()->page())
- document()->page()->updateViewportArguments();
+ document()->updateViewportArguments();
}
bool HTMLBodyElement::isURLAttribute(Attribute *attr) const
Modified: trunk/Source/WebCore/page/Frame.cpp (106898 => 106899)
--- trunk/Source/WebCore/page/Frame.cpp 2012-02-07 04:05:21 UTC (rev 106898)
+++ trunk/Source/WebCore/page/Frame.cpp 2012-02-07 04:16:50 UTC (rev 106899)
@@ -290,11 +290,11 @@
// Update the cached 'document' property, which is now stale.
m_script.updateDocument();
- if (m_page) {
- m_page->updateViewportArguments();
- if (m_page->mainFrame() == this)
- notifyChromeClientWheelEventHandlerCountChanged();
- }
+ if (m_doc)
+ m_doc->updateViewportArguments();
+
+ if (m_page && m_page->mainFrame() == this)
+ notifyChromeClientWheelEventHandlerCountChanged();
}
#if ENABLE(ORIENTATION_EVENTS)
Modified: trunk/Source/WebCore/page/Page.cpp (106898 => 106899)
--- trunk/Source/WebCore/page/Page.cpp 2012-02-07 04:05:21 UTC (rev 106898)
+++ trunk/Source/WebCore/page/Page.cpp 2012-02-07 04:16:50 UTC (rev 106899)
@@ -240,6 +240,11 @@
#endif
}
+ViewportArguments Page::viewportArguments() const
+{
+ return mainFrame() && mainFrame()->document() ? mainFrame()->document()->viewportArguments() : ViewportArguments();
+}
+
#if ENABLE(THREADED_SCROLLING)
ScrollingCoordinator* Page::scrollingCoordinator()
{
@@ -430,15 +435,6 @@
frame->document()->styleSelectorChanged(DeferRecalcStyle);
}
-void Page::updateViewportArguments()
-{
- if (!mainFrame() || !mainFrame()->document())
- return;
-
- m_viewportArguments = mainFrame()->document()->viewportArguments();
- chrome()->dispatchViewportPropertiesDidChange(m_viewportArguments);
-}
-
void Page::refreshPlugins(bool reload)
{
if (!allPages)
Modified: trunk/Source/WebCore/page/Page.h (106898 => 106899)
--- trunk/Source/WebCore/page/Page.h 2012-02-07 04:05:21 UTC (rev 106898)
+++ trunk/Source/WebCore/page/Page.h 2012-02-07 04:16:50 UTC (rev 106899)
@@ -133,8 +133,7 @@
RenderTheme* theme() const { return m_theme.get(); };
- ViewportArguments viewportArguments() const { return m_viewportArguments; }
- void updateViewportArguments();
+ ViewportArguments viewportArguments() const;
static void refreshPlugins(bool reload);
PluginData* pluginData() const;
@@ -464,8 +463,6 @@
ViewMode m_viewMode;
- ViewportArguments m_viewportArguments;
-
double m_minimumTimerInterval;
OwnPtr<ScrollableAreaSet> m_scrollableAreaSet;
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes