commit
84fe8cf6fbe8b5de9a06300ca3ef6d0ffc96948c, and associated
follow-up fixes:
"platform/mac/plugins/testplugin-onnew-onpaint.html failing after
r168668", commit
c17be3bf5127baf94310af4b4b9bf5a57d29aaf4
"[Win] Unreviewed build fix after r168668.", commit
4fa470ad12c38ee7d4c114541b6dd321181a8bc9
The original merged patch appears to have caused a regression in
fast/dom/HTMLObjectElement/object-as-frame.html.
<https://bugs.webkit.org/show_bug.cgi?id=132886>
Reviewed by Alexey Proskuryakov.
Source/WebCore:
* WebCore.exp.in:
* dom/Document.cpp:
(WebCore::Document::updateLayoutIgnorePendingStylesheets):
* dom/Document.h:
* html/HTMLAppletElement.cpp:
(WebCore::HTMLAppletElement::renderWidgetForJSBindings):
* html/HTMLEmbedElement.cpp:
(WebCore::HTMLEmbedElement::renderWidgetForJSBindings):
* html/HTMLObjectElement.cpp:
(WebCore::HTMLObjectElement::renderWidgetForJSBindings):
* page/FrameView.cpp:
(WebCore::FrameView::FrameView):
(WebCore::FrameView::reset):
(WebCore::FrameView::flushAnyPendingPostLayoutTasks):
(WebCore::FrameView::performPostLayoutTasks):
(WebCore::FrameView::updateEmbeddedObjectsTimerFired): Deleted.
* page/FrameView.h:
* testing/Internals.cpp:
(WebCore::Internals::updateLayoutIgnorePendingStylesheetsAndRunPostLayoutTasks): Deleted.
* testing/Internals.h:
* testing/Internals.idl:
Source/WebKit:
* WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:
LayoutTests:
* compositing/plugins/composited-plugin.html:
* compositing/plugins/no-backing-store.html:
* fast/dom/beforeload/flash-before-load.html:
* fast/events/beforeload-assertion-expected.txt: Removed.
* fast/events/beforeload-assertion.html: Removed.
* fast/events/beforeload-iframe-crash-expected.txt: Removed.
* fast/events/beforeload-iframe-crash.html: Removed.
* fast/events/beforeload-input-time-crash-expected.txt: Removed.
* fast/events/beforeload-input-time-crash.html: Removed.
* http/tests/security/contentSecurityPolicy/1.1/plugintypes-notype-data.html:
* http/tests/security/contentSecurityPolicy/1.1/plugintypes-nourl-blocked.html:
* http/tests/security/contentSecurityPolicy/object-src-no-url-allowed.html:
* http/tests/security/contentSecurityPolicy/object-src-no-url-blocked.html:
* http/tests/security/contentSecurityPolicy/object-src-none-allowed.html:
* http/tests/security/contentSecurityPolicy/object-src-none-blocked.html:
* http/tests/security/contentSecurityPolicy/resources/multiple-iframe-plugin-test.js:
(testImpl.iframe.onload):
(testImpl):
* http/tests/security/mixedContent/insecure-plugin-in-iframe.html:
* platform/mac/plugins/supports-carbon-event-model.html:
* platform/mac/plugins/testplugin-onnew-onpaint.html:
* plugins/get-user-agent-with-null-npp-from-npp-new.html:
* plugins/mouse-click-plugin-clears-selection.html:
* plugins/netscape-plugin-map-data-to-src.html:
* plugins/no-mime-with-valid-extension.html:
* plugins/plugin-initiate-popup-window.html:
* plugins/windowless_plugin_paint_test.html:
* resources/plugin.js: Removed.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@168843
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
+2014-05-13 Jon Honeycutt <jhoneycutt@apple.com>
+
+ Revert "Don't dispatch 'beforeload' event inside FrameView::layout()",
+ commit 84fe8cf6fbe8b5de9a06300ca3ef6d0ffc96948c, and associated
+ follow-up fixes:
+
+ "platform/mac/plugins/testplugin-onnew-onpaint.html failing after
+ r168668", commit c17be3bf5127baf94310af4b4b9bf5a57d29aaf4
+ "[Win] Unreviewed build fix after r168668.", commit
+ 4fa470ad12c38ee7d4c114541b6dd321181a8bc9
+
+ The original merged patch appears to have caused a regression in
+ fast/dom/HTMLObjectElement/object-as-frame.html.
+
+ <https://bugs.webkit.org/show_bug.cgi?id=132886>
+
+ Reviewed by Alexey Proskuryakov.
+
+ * compositing/plugins/composited-plugin.html:
+ * compositing/plugins/no-backing-store.html:
+ * fast/dom/beforeload/flash-before-load.html:
+ * fast/events/beforeload-assertion-expected.txt: Removed.
+ * fast/events/beforeload-assertion.html: Removed.
+ * fast/events/beforeload-iframe-crash-expected.txt: Removed.
+ * fast/events/beforeload-iframe-crash.html: Removed.
+ * fast/events/beforeload-input-time-crash-expected.txt: Removed.
+ * fast/events/beforeload-input-time-crash.html: Removed.
+ * http/tests/security/contentSecurityPolicy/1.1/plugintypes-notype-data.html:
+ * http/tests/security/contentSecurityPolicy/1.1/plugintypes-nourl-blocked.html:
+ * http/tests/security/contentSecurityPolicy/object-src-no-url-allowed.html:
+ * http/tests/security/contentSecurityPolicy/object-src-no-url-blocked.html:
+ * http/tests/security/contentSecurityPolicy/object-src-none-allowed.html:
+ * http/tests/security/contentSecurityPolicy/object-src-none-blocked.html:
+ * http/tests/security/contentSecurityPolicy/resources/multiple-iframe-plugin-test.js:
+ (testImpl.iframe.onload):
+ (testImpl):
+ * http/tests/security/mixedContent/insecure-plugin-in-iframe.html:
+ * platform/mac/plugins/supports-carbon-event-model.html:
+ * platform/mac/plugins/testplugin-onnew-onpaint.html:
+ * plugins/get-user-agent-with-null-npp-from-npp-new.html:
+ * plugins/mouse-click-plugin-clears-selection.html:
+ * plugins/netscape-plugin-map-data-to-src.html:
+ * plugins/no-mime-with-valid-extension.html:
+ * plugins/plugin-initiate-popup-window.html:
+ * plugins/windowless_plugin_paint_test.html:
+ * resources/plugin.js: Removed.
+
2014-05-14 Kiran <kiran.guduru@samsung.com>
alidation for getUserMedia() errorCallback is missing.
<!DOCTYPE html>
<html>
<body>
- <script src="../../resources/plugin.js"></script>
- <script>runAfterPluginLoad(null, NotifyDone);</script>
<embed type="application/x-webkit-test-netscape" drawingmodel="coreanimation">
</body>
</html>
margin: 10px;
}
</style>
- <script src="../../resources/plugin.js"></script>
<script type="text/javascript" charset="utf-8">
- if (window.testRunner)
+ if (window.testRunner) {
testRunner.dumpAsText();
-
- runAfterPluginLoad(doTest, DoNotNotifyDone);
+ testRunner.waitUntilDone();
+ }
function doTest()
{
}
}, 0)
}
+ window.addEventListener('load', doTest, false);
</script>
</head>
<body>
</head>
<body>
<div id="console"></div>
-<script src="../../../resources/plugin.js"></script>
<script>
- if (window.testRunner)
- testRunner.dumpAsText();
-
- runAfterPluginLoad(null, NotifyDone);
+if (window.testRunner)
+ testRunner.dumpAsText();
</script>
<object id="plugin" onbeforeload="return false" type="application/x-shockwave-flash" data="../../../plugins/resources/simple_blank.swf"
+++ /dev/null
-
-PASS if no assertion failure.
+++ /dev/null
-<div id="d1"></div>
-<script>
-if (window.testRunner)
- testRunner.dumpAsText();
-document.addEventListener('beforeload', function(event) {
- d1.appendChild(document.createElement('button'));
- d1.offsetLeft;
- d1.remove();
-}, true);
-</script>
-<embed src="data:image/png,"></embed>
-<p>PASS if no assertion failure.</p>
\ No newline at end of file
+++ /dev/null
-PASS if not crashed.
+++ /dev/null
-<iframe></iframe><object onbeforeload="crash()">
-<script>
-if (window.testRunner) {
- testRunner.dumpAsText();
- testRunner.waitUntilDone();
-}
-
-function crash() {
- document.getElementsByTagName("iframe")[0].contentWindow.scrollX;
- document.open();
-}
-
-document.body.offsetLeft;
-setTimeout(function() {
- document.close();
- document.body.innerHTML = 'PASS if not crashed.';
- testRunner.notifyDone();
-}, 1);
-</script>
\ No newline at end of file
+++ /dev/null
-PASS if not crashed.
+++ /dev/null
-<input id="t1" type="time">
-<script>
-var time1 = document.getElementById('t1');
-document.addEventListener('beforeload', function(event) {
- time1.value = time1.value ? '' : '23:59';
-}, true);
-
-if (window.testRunner) {
- testRunner.dumpAsText();
- testRunner.waitUntilDone();
-}
-setTimeout(function() {
- document.body.innerHTML = 'PASS if not crashed.';
- testRunner.notifyDone();
-}, 100);
-time1.focus();
-</script>
-<embed src="data:text/html,PASS"></embed>
\ No newline at end of file
<!DOCTYPE html>
<html>
<head>
-<script src="/js-test-resources/plugin.js"></script>
<script>
- if (window.testRunner) {
- testRunner.dumpAsText();
- testRunner.dumpChildFramesAsText();
- }
-
- runAfterPluginLoad(null, NotifyDone);
+if (window.testRunner) {
+ testRunner.dumpAsText();
+ testRunner.dumpChildFramesAsText();
+}
</script>
<script src="/plugins/resources/mock-plugin-logger.js"></script>
<meta http-equiv="X-WebKit-CSP" content="plugin-types application/x-invalid-type">
<!DOCTYPE html>
<html>
<head>
-<script src="/js-test-resources/plugin.js"></script>
<script>
- if (window.testRunner)
- testRunner.dumpAsText();
-
- runAfterPluginLoad(null, NotifyDone);
+if (window.testRunner)
+ testRunner.dumpAsText();
</script>
<meta http-equiv="X-WebKit-CSP" content="plugin-types text/plain">
</head>
<!DOCTYPE html>
<html>
<head>
-<script src="/js-test-resources/plugin.js"></script>
<script>
- if (window.testRunner)
- testRunner.dumpAsText();
-
- runAfterPluginLoad(null, NotifyDone);
+if (window.testRunner)
+ testRunner.dumpAsText();
</script>
<meta http-equiv="Content-Security-Policy" content="object-src 'self'">
</head>
<!DOCTYPE html>
<html>
<head>
-<script src="/js-test-resources/plugin.js"></script>
<script>
- if (window.testRunner)
- testRunner.dumpAsText();
-
- runAfterPluginLoad(null, NotifyDone);
+if (window.testRunner)
+ testRunner.dumpAsText();
</script>
<meta http-equiv="Content-Security-Policy" content="object-src 'none'">
</head>
<!DOCTYPE html>
<html>
<head>
-<script src="/js-test-resources/plugin.js"></script>
+<script>
+if (window.testRunner) {
+ testRunner.dumpAsText();
+ testRunner.dumpChildFramesAsText();
+}
+</script>
</head>
<body>
<iframe src="http://127.0.0.1:8000/security/contentSecurityPolicy/resources/echo-object-data.pl?plugin=data:application/x-webkit-test-netscape,logifloaded&log=PASS!&csp=img-src%20'none'"></iframe>
</body>
-<script>
- if (window.testRunner) {
- testRunner.dumpAsText();
- testRunner.dumpChildFramesAsText();
- }
-
- runAfterPluginLoad(null, NotifyDone, document.getElementsByTagName("iframe")[0]);
-</script>
</html>
<!DOCTYPE html>
<html>
<head>
-<script src="/js-test-resources/plugin.js"></script>
+<script>
+if (window.testRunner) {
+ testRunner.dumpAsText();
+ testRunner.dumpChildFramesAsText();
+}
+</script>
</head>
<body>
<iframe src="http://127.0.0.1:8000/security/contentSecurityPolicy/resources/echo-object-data.pl?plugin=data:application/x-webkit-test-netscape,logifloaded&log=FAIL&csp=object-src%20'none'"></iframe>
</body>
-<script>
- if (window.testRunner) {
- testRunner.dumpAsText();
- testRunner.dumpChildFramesAsText();
- }
-
- runAfterPluginLoad(null, NotifyDone, document.getElementsByTagName("iframe")[0]);
-</script>
</html>
else
iframe.src += "&type=application/x-webkit-test-netscape";
- iframe.onload = function() {
- if (window.internals)
- internals.updateLayoutIgnorePendingStylesheetsAndRunPostLayoutTasks(iframe);
- testImpl(experimental);
- };
+ iframe.onload = function() { testImpl(experimental); };
document.body.appendChild(iframe);
}
<script>
if (window.testRunner)
testRunner.dumpAsText();
-
-onload = function() {
- if (window.internals)
- internals.updateLayoutIgnorePendingStylesheetsAndRunPostLayoutTasks(document.querySelector('iframe'));
-};
</script>
<p>This test loads a secure iframe that loads an insecure plugin. We should
get a mixed content callback because the insecure plug-in can script the secure
-<script src="../../../resources/plugin.js"></script>
<script>
- if (window.testRunner)
- testRunner.dumpAsText();
-
- runAfterPluginLoad(null, NotifyDone);
+if (window.testRunner)
+ testRunner.dumpAsText();
</script>
<embed id="testPlugin"
<html>
<head>
- <script src="../../../resources/plugin.js"></script>
<script type="text/javascript" charset="utf-8">
if (window.testRunner)
testRunner.dumpAsText();
didPaint = true;
}
}
-
- runAfterPluginLoad(null, NotifyDone);
</script>
</head>
<body>
<!DOCTYPE html>
<html>
<head>
- <script src="../resources/plugin.js"></script>
<script>
if (window.testRunner)
testRunner.dumpAsText();
- runAfterPluginLoad(null, NotifyDone);
</script>
</head>
<body>
<html>
<head>
-<script src="../resources/plugin.js"></script>
<script>
-runAfterPluginLoad(function() {
+function runTest() {
inputElement = document.getElementById('frame');
inputElement.focus();
inputElement.select();
eventSender.mouseDown();
eventSender.mouseUp();
}
-}, NotifyDone);
+}
</script>
</head>
-<body>
+<body onload="runTest();">
<embed id="plg" type="application/x-webkit-test-netscape" width="100" height="100" windowedplugin="false"></embed><br>
<input id="frame" value="hello"/>
<div id="output"></div>
<html>
<head>
-<script src="../resources/plugin.js"></script>
<script>
if (window.testRunner)
testRunner.dumpAsText();
- runAfterPluginLoad(null, NotifyDone);
</script>
<body style="margin:0px;overflow:hidden">
<object name="testPlugin" type="application/x-webkit-test-netscape" logSrc="true" data="blah">
-<script src="../resources/plugin.js"></script>
<script>
- if (window.testRunner)
+ if (window.testRunner) {
testRunner.dumpAsText();
- runAfterPluginLoad(null, NotifyDone);
+ testRunner.waitUntilDone();
+ }
</script>
<p>
This test checks that <a href="https://bugs.webkit.org/show_bug.cgi?id=50657">bug 50568</a>
attribute.
</p>
<!-- Embed tag with missing type="" parameter -->
-<embed id="plugin" name="plugin" src="resources/test.testnetscape" logSrc="1">
\ No newline at end of file
+<embed id="plugin" name="plugin" src="resources/test.testnetscape" logSrc="1">
+<script>
+ if (window.testRunner)
+ testRunner.notifyDone();
+</script>
}
</script>
</head>
-<body onload="internals.updateLayoutIgnorePendingStylesheetsAndRunPostLayoutTasks(); test();">
+<body onload="window.setTimeout(test, 0);">
<embed type="application/x-webkit-test-netscape" width=100 height=40 evaluatescript="mouse::popup_by_mousedown()" windowedplugin="false"></embed><br>
<embed type="application/x-webkit-test-netscape" width=100 height=40 evaluatescript="key::popup_by_keydown()" windowedplugin="false"></embed><br>
Specify a script and a mouse/keyboard event to the plugin. The specified script will be evaluated in the browser when the specified event is received by the plugin. The test is for bug https://bugs.webkit.org/show_bug.cgi?id=41292.<br>
var pluginDiv = document.getElementById("pluginDiv");\r
// Create the plugin in the middle of the page.\r
pluginDiv.innerHTML = "<embed id=\"testPlugin\" type=\"application/x-webkit-test-netscape\" width=\"200\" height=\"200\" onpaintevent=\"didPaint()\" windowedPlugin=\"false\"></embed>";\r
- if (window.internals)\r
- internals.updateLayoutIgnorePendingStylesheetsAndRunPostLayoutTasks();\r
testRunner.displayInvalidatedRegion();\r
}\r
\r
+++ /dev/null
-// Wait for the load event, run post layout tasks, run the specified function,
-// and notify the test runner that the test is done.
-
-var NotifyDone = true;
-var DoNotNotifyDone = false;
-
-function runAfterPluginLoad(func, notifyDone, node) {
- if (window.testRunner)
- testRunner.waitUntilDone();
-
- window.addEventListener('load', function() {
- if (window.internals)
- internals.updateLayoutIgnorePendingStylesheetsAndRunPostLayoutTasks(node);
-
- if (func)
- func();
-
- if (notifyDone && window.testRunner)
- testRunner.notifyDone();
- }, false);
-}
+2014-05-13 Jon Honeycutt <jhoneycutt@apple.com>
+
+ Revert "Don't dispatch 'beforeload' event inside FrameView::layout()",
+ commit 84fe8cf6fbe8b5de9a06300ca3ef6d0ffc96948c, and associated
+ follow-up fixes:
+
+ "platform/mac/plugins/testplugin-onnew-onpaint.html failing after
+ r168668", commit c17be3bf5127baf94310af4b4b9bf5a57d29aaf4
+ "[Win] Unreviewed build fix after r168668.", commit
+ 4fa470ad12c38ee7d4c114541b6dd321181a8bc9
+
+ The original merged patch appears to have caused a regression in
+ fast/dom/HTMLObjectElement/object-as-frame.html.
+
+ <https://bugs.webkit.org/show_bug.cgi?id=132886>
+
+ Reviewed by Alexey Proskuryakov.
+
+ * WebCore.exp.in:
+ * dom/Document.cpp:
+ (WebCore::Document::updateLayoutIgnorePendingStylesheets):
+ * dom/Document.h:
+ * html/HTMLAppletElement.cpp:
+ (WebCore::HTMLAppletElement::renderWidgetForJSBindings):
+ * html/HTMLEmbedElement.cpp:
+ (WebCore::HTMLEmbedElement::renderWidgetForJSBindings):
+ * html/HTMLObjectElement.cpp:
+ (WebCore::HTMLObjectElement::renderWidgetForJSBindings):
+ * page/FrameView.cpp:
+ (WebCore::FrameView::FrameView):
+ (WebCore::FrameView::reset):
+ (WebCore::FrameView::flushAnyPendingPostLayoutTasks):
+ (WebCore::FrameView::performPostLayoutTasks):
+ (WebCore::FrameView::updateEmbeddedObjectsTimerFired): Deleted.
+ * page/FrameView.h:
+ * testing/Internals.cpp:
+ (WebCore::Internals::updateLayoutIgnorePendingStylesheetsAndRunPostLayoutTasks): Deleted.
+ * testing/Internals.h:
+ * testing/Internals.idl:
+
2014-05-14 Kiran <kiran.guduru@samsung.com>
alidation for getUserMedia() errorCallback is missing.
__ZN7WebCore8Document26didRemoveWheelEventHandlerEv
__ZN7WebCore8Document26pageSizeAndMarginsInPixelsEiRNS_7IntSizeERiS3_S3_S3_
__ZN7WebCore8Document27removeMediaCanStartListenerEPNS_21MediaCanStartListenerE
-__ZN7WebCore8Document36updateLayoutIgnorePendingStylesheetsENS0_18RunPostLayoutTasksE
+__ZN7WebCore8Document36updateLayoutIgnorePendingStylesheetsEv
__ZN7WebCore8Document4headEv
__ZN7WebCore8Document8iconURLsEi
__ZN7WebCore8FormData6createEPKvm
__ZNK7WebCore21BackForwardController12forwardCountEv
__ZNK7WebCore21BackForwardController18canGoBackOrForwardEi
__ZNK7WebCore21BackForwardController9backCountEv
-__ZNK7WebCore21HTMLFrameOwnerElement15contentDocumentEv
__ZNK7WebCore21NetworkStorageSession13cookieStorageEv
__ZNK7WebCore21RenderLayerCompositor11scrollLayerEv
__ZNK7WebCore21RenderLayerCompositor15rootRenderLayerEv
// stylesheets are loaded. Doing a layout ignoring the pending stylesheets
// lets us get reasonable answers. The long term solution to this problem is
// to instead suspend JavaScript execution.
-void Document::updateLayoutIgnorePendingStylesheets(Document::RunPostLayoutTasks runPostLayoutTasks)
+void Document::updateLayoutIgnorePendingStylesheets()
{
bool oldIgnore = m_ignorePendingStylesheets;
-
+
if (!haveStylesheetsLoaded()) {
m_ignorePendingStylesheets = true;
// FIXME: We are willing to attempt to suppress painting with outdated style info only once. Our assumption is that it would be
updateLayout();
- if (runPostLayoutTasks == RunPostLayoutTasksSynchronously && view())
- view()->flushAnyPendingPostLayoutTasks();
-
m_ignorePendingStylesheets = oldIgnore;
}
void updateStyleIfNeeded();
bool updateStyleIfNeededForNode(const Node&);
void updateLayout();
- enum RunPostLayoutTasks {
- RunPostLayoutTasksAsyhnchronously,
- RunPostLayoutTasksSynchronously,
- };
- void updateLayoutIgnorePendingStylesheets(RunPostLayoutTasks = RunPostLayoutTasksAsyhnchronously);
+ void updateLayoutIgnorePendingStylesheets();
PassRef<RenderStyle> styleForElementIgnoringPendingStylesheets(Element*);
// Returns true if page box (margin boxes and page borders) is visible.
if (!canEmbedJava())
return 0;
- // Needs to load the plugin immediatedly because this function is called
- // when JavaScript code accesses the plugin.
- // FIXME: <rdar://16893708> Check if dispatching events here is safe.
- document().updateLayoutIgnorePendingStylesheets(Document::RunPostLayoutTasksSynchronously);
+ document().updateLayoutIgnorePendingStylesheets();
return renderWidget();
}
RenderWidget* HTMLEmbedElement::renderWidgetForJSBindings() const
{
FrameView* view = document().view();
- if (!view || (!view->isInLayout() && !view->isPainting())) {
- // Needs to load the plugin immediatedly because this function is called
- // when JavaScript code accesses the plugin.
- // FIXME: <rdar://16893708> Check if dispatching events here is safe.
- document().updateLayoutIgnorePendingStylesheets(Document::RunPostLayoutTasksSynchronously);
- }
+ if (!view || (!view->isInLayout() && !view->isPainting()))
+ document().updateLayoutIgnorePendingStylesheets();
return findWidgetRenderer(this);
}
RenderWidget* HTMLObjectElement::renderWidgetForJSBindings() const
{
- // Needs to load the plugin immediatedly because this function is called
- // when JavaScript code accesses the plugin.
- // FIXME: <rdar://16893708> Check if dispatching events here is safe.
- document().updateLayoutIgnorePendingStylesheets(Document::RunPostLayoutTasksSynchronously);
+ document().updateLayoutIgnorePendingStylesheets();
return renderWidget(); // This will return 0 if the renderer is not a RenderWidget.
}
, m_layoutPhase(OutsideLayout)
, m_inSynchronousPostLayout(false)
, m_postLayoutTasksTimer(this, &FrameView::postLayoutTimerFired)
- , m_updateEmbeddedObjectsTimer(this, &FrameView::updateEmbeddedObjectsTimerFired)
, m_isTransparent(false)
, m_baseBackgroundColor(Color::white)
, m_mediaType("screen")
m_layoutCount = 0;
m_nestedLayoutCount = 0;
m_postLayoutTasksTimer.stop();
- m_updateEmbeddedObjectsTimer.stop();
m_firstLayout = true;
m_firstLayoutCallbackPending = false;
m_wasScrolledByUser = false;
return m_embeddedObjectsToUpdate->isEmpty();
}
-void FrameView::updateEmbeddedObjectsTimerFired(Timer<FrameView>*)
-{
- RefPtr<FrameView> protect(this);
- m_updateEmbeddedObjectsTimer.stop();
- for (unsigned i = 0; i < maxUpdateEmbeddedObjectsIterations; i++) {
- if (updateEmbeddedObjects())
- break;
- }
-}
-
void FrameView::flushAnyPendingPostLayoutTasks()
{
- if (m_postLayoutTasksTimer.isActive())
- performPostLayoutTasks();
- if (m_updateEmbeddedObjectsTimer.isActive())
- updateEmbeddedObjectsTimerFired(nullptr);
+ if (!m_postLayoutTasksTimer.isActive())
+ return;
+
+ performPostLayoutTasks();
}
void FrameView::performPostLayoutTasks()
{
- // FIXME: We should not run any JavaScript code in this function.
-
m_postLayoutTasksTimer.stop();
frame().selection().layoutDidChange();
// is called through the post layout timer.
Ref<FrameView> protect(*this);
- m_updateEmbeddedObjectsTimer.startOneShot(0);
+ for (unsigned i = 0; i < maxUpdateEmbeddedObjectsIterations; i++) {
+ if (updateEmbeddedObjects())
+ break;
+ }
if (auto* page = frame().page()) {
if (auto* scrollingCoordinator = page->scrollingCoordinator())
void enableSpeculativeTilingIfNeeded();
void speculativeTilingEnableTimerFired(Timer<FrameView>&);
- void updateEmbeddedObjectsTimerFired(Timer<FrameView>*);
bool updateEmbeddedObjects();
void updateEmbeddedObject(RenderEmbeddedObject&);
void scrollToAnchor();
int m_layoutCount;
unsigned m_nestedLayoutCount;
Timer<FrameView> m_postLayoutTasksTimer;
- Timer<FrameView> m_updateEmbeddedObjectsTimer;
bool m_firstLayoutCallbackPending;
bool m_firstLayout;
#include "FormController.h"
#include "FrameLoader.h"
#include "FrameView.h"
-#include "HTMLIFrameElement.h"
#include "HTMLInputElement.h"
#include "HTMLNames.h"
#include "HTMLPlugInElement.h"
frameView->setTracksRepaints(false);
}
-void Internals::updateLayoutIgnorePendingStylesheetsAndRunPostLayoutTasks(ExceptionCode& ec)
-{
- updateLayoutIgnorePendingStylesheetsAndRunPostLayoutTasks(nullptr, ec);
-}
-
-void Internals::updateLayoutIgnorePendingStylesheetsAndRunPostLayoutTasks(Node* node, ExceptionCode& ec)
-{
- Document* document;
- if (!node)
- document = contextDocument();
- else if (node->isDocumentNode())
- document = toDocument(node);
- else if (node->hasTagName(HTMLNames::iframeTag))
- document = toHTMLIFrameElement(node)->contentDocument();
- else {
- ec = TypeError;
- return;
- }
-
- document->updateLayoutIgnorePendingStylesheets(Document::RunPostLayoutTasksSynchronously);
-}
-
#if !PLATFORM(IOS)
static const char* cursorTypeToString(Cursor::Type cursorType)
{
void startTrackingRepaints(ExceptionCode&);
void stopTrackingRepaints(ExceptionCode&);
- void updateLayoutIgnorePendingStylesheetsAndRunPostLayoutTasks(ExceptionCode&);
- void updateLayoutIgnorePendingStylesheetsAndRunPostLayoutTasks(Node*, ExceptionCode&);
PassRefPtr<ArrayBuffer> serializeObject(PassRefPtr<SerializedScriptValue>) const;
PassRefPtr<SerializedScriptValue> deserializeBuffer(PassRefPtr<ArrayBuffer>) const;
[RaisesException] void startTrackingRepaints();
[RaisesException] void stopTrackingRepaints();
- // |node| should be Document, HTMLIFrameElement, or unspecified.
- // If |node| is an HTMLIFrameElement, it assumes node.contentDocument is
- // specified without security checks. Unspecified means this document.
- [RaisesException] void updateLayoutIgnorePendingStylesheetsAndRunPostLayoutTasks(optional Node node);
-
// Returns a string with information about the mouse cursor used at the specified client location.
[RaisesException] DOMString getCurrentCursorInfo();
+2014-05-13 Jon Honeycutt <jhoneycutt@apple.com>
+
+ Revert "Don't dispatch 'beforeload' event inside FrameView::layout()",
+ commit 84fe8cf6fbe8b5de9a06300ca3ef6d0ffc96948c, and associated
+ follow-up fixes:
+
+ "platform/mac/plugins/testplugin-onnew-onpaint.html failing after
+ r168668", commit c17be3bf5127baf94310af4b4b9bf5a57d29aaf4
+ "[Win] Unreviewed build fix after r168668.", commit
+ 4fa470ad12c38ee7d4c114541b6dd321181a8bc9
+
+ The original merged patch appears to have caused a regression in
+ fast/dom/HTMLObjectElement/object-as-frame.html.
+
+ <https://bugs.webkit.org/show_bug.cgi?id=132886>
+
+ Reviewed by Alexey Proskuryakov.
+
+ * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:
+
2014-05-13 Dean Jackson <dino@apple.com>
Step 2 (of 2) fixing the Windows build. Add new setPageScaleFactor.
symbolWithPointer(?childItemWithTarget@HistoryItem@WebCore@@QBEPAV12@ABVString@WTF@@@Z, ?childItemWithTarget@HistoryItem@WebCore@@QEBAPEAV12@AEBVString@WTF@@@Z)
symbolWithPointer(?create@Range@WebCore@@SA?AV?$PassRefPtr@VRange@WebCore@@@WTF@@AAVDocument@2@V?$PassRefPtr@VNode@WebCore@@@4@H1H@Z, ?create@Range@WebCore@@SA?AV?$PassRefPtr@VRange@WebCore@@@WTF@@AEAVDocument@2@V?$PassRefPtr@VNode@WebCore@@@4@H1H@Z)
symbolWithPointer(?commonVM@JSDOMWindowBase@WebCore@@SAAAVVM@JSC@@XZ, ?commonVM@JSDOMWindowBase@WebCore@@SAAEAVVM@JSC@@XZ)
- symbolWithPointer(?contentDocument@HTMLFrameOwnerElement@WebCore@@QBEPAVDocument@2@XZ, ?contentDocument@HTMLFrameOwnerElement@WebCore@@QEBAPEAVDocument@2@XZ)
symbolWithPointer(?create@SerializedScriptValue@WebCore@@SA?AV?$PassRefPtr@VSerializedScriptValue@WebCore@@@WTF@@ABVString@4@@Z, ?create@SerializedScriptValue@WebCore@@SA?AV?$PassRefPtr@VSerializedScriptValue@WebCore@@@WTF@@AEBVString@4@@Z)
#if USE(CF)
symbolWithPointer(?createCFString@String@WTF@@QBE?AV?$RetainPtr@PBU__CFString@@@2@XZ, ?createCFString@String@WTF@@QEBA?AV?$RetainPtr@PEBU__CFString@@@2@XZ)
symbolWithPointer(?getOutOfLineCachedWrapper@WebCore@@YAPAVJSObject@JSC@@PAVJSDOMGlobalObject@1@PAVNode@1@@Z, ?getOutOfLineCachedWrapper@WebCore@@YAPEAVJSObject@JSC@@PEAVJSDOMGlobalObject@1@PEAVNode@1@@Z)
symbolWithPointer(?hitTest@RenderView@WebCore@@QAE_NABVHitTestRequest@2@AAVHitTestResult@2@@Z, ?hitTest@RenderView@WebCore@@QEAA_NAEBVHitTestRequest@2@AEAVHitTestResult@2@@Z)
?inputTag@HTMLNames@WebCore@@3VHTMLQualifiedName@2@B
- symbolWithPointer(?iframeTag@HTMLNames@WebCore@@3VHTMLQualifiedName@2@B,?iframeTag@HTMLNames@WebCore@@3VHTMLQualifiedName@2@B)
symbolWithPointer(?intersects@IntRect@WebCore@@QBE_NABV12@@Z, ?intersects@IntRect@WebCore@@QEBA_NAEBV12@@Z)
symbolWithPointer(?item@StaticNodeList@WebCore@@UBEPAVNode@2@I@Z, ?item@StaticNodeList@WebCore@@UEBAPEAVNode@2@I@Z)
?selectTag@HTMLNames@WebCore@@3VHTMLQualifiedName@2@B
symbolWithPointer(?toRange@WebCore@@YAPAVRange@1@VJSValue@JSC@@@Z, ?toRange@WebCore@@YAPEAVRange@1@VJSValue@JSC@@@Z)
symbolWithPointer(?isTreeScope@Node@WebCore@@QBE_NXZ, ?isTreeScope@Node@WebCore@@QEBA_NXZ)
symbolWithPointer(?updateEditorUINowIfScheduled@Editor@WebCore@@QAEXXZ, ?updateEditorUINowIfScheduled@Editor@WebCore@@QEAAXXZ)
- symbolWithPointer(?updateLayoutIgnorePendingStylesheets@Document@WebCore@@QAEXW4RunPostLayoutTasks@12@@Z, ?updateLayoutIgnorePendingStylesheets@Document@WebCore@@QEAAXW4RunPostLayoutTasks@12@@Z)
+ symbolWithPointer(?updateLayoutIgnorePendingStylesheets@Document@WebCore@@QAEXXZ, ?updateLayoutIgnorePendingStylesheets@Document@WebCore@@QEAAXXZ)
symbolWithPointer(?updateStyleIfNeeded@Document@WebCore@@QAEXXZ, ?updateStyleIfNeeded@Document@WebCore@@QEAAXXZ)
symbolWithPointer(?view@Document@WebCore@@QBEPAVFrameView@2@XZ, ?view@Document@WebCore@@QEBAPEAVFrameView@2@XZ)
symbolWithPointer(??1ContextDestructionObserver@WebCore@@MAE@XZ, ??1ContextDestructionObserver@WebCore@@MEAA@XZ)