Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1547)

Unified Diff: sky/engine/core/rendering/RenderRemote.cpp

Issue 682413006: Add a separate call to initialize the bounds for a sky <iframe> element. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: indent Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « sky/engine/core/rendering/RenderRemote.h ('k') | sky/engine/public/web/WebFrameClient.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: sky/engine/core/rendering/RenderRemote.cpp
diff --git a/sky/engine/core/rendering/RenderRemote.cpp b/sky/engine/core/rendering/RenderRemote.cpp
index 1ee502b0679f68987804bfd42a1aa534b22c72e1..6f22d4462782a0130fca372b5bc5e2e14a6ebe5d 100644
--- a/sky/engine/core/rendering/RenderRemote.cpp
+++ b/sky/engine/core/rendering/RenderRemote.cpp
@@ -8,13 +8,14 @@
#include "core/editing/FrameSelection.h"
#include "core/html/HTMLIFrameElement.h"
+#include "core/loader/FrameLoaderClient.h"
#include "core/rendering/PaintInfo.h"
#include "platform/geometry/LayoutPoint.h"
namespace blink {
-RenderRemote::RenderRemote(HTMLIFrameElement* view)
- : RenderReplaced(view)
+RenderRemote::RenderRemote(HTMLIFrameElement* iframe)
+ : RenderReplaced(iframe)
{
}
@@ -22,8 +23,29 @@ RenderRemote::~RenderRemote()
{
}
+void RenderRemote::layout()
+{
+ RenderReplaced::layout();
+
+ // TODO(mpcomplete): This will generate extra SetBounds calls in some cases
+ // because some layout modules involve multiple passes (e.g., flexbox).
+ // Instead, we'll need to defer the work to later in the pipeline.
+ mojo::View* contentView = toHTMLIFrameElement(node())->contentView();
+ if (!contentView)
+ return;
+
+ IntRect bounds = pixelSnappedIntRect(frameRect());
+ mojo::Rect mojo_bounds;
+ mojo_bounds.x = bounds.x();
+ mojo_bounds.y = bounds.y();
+ mojo_bounds.width = bounds.width();
+ mojo_bounds.height = bounds.height();
+ contentView->SetBounds(mojo_bounds);
+}
+
void RenderRemote::paintReplaced(PaintInfo& paintInfo,
- const LayoutPoint& paintOffset) {
+ const LayoutPoint& paintOffset)
+{
// Draw a gray background. This should be painted over by the actual
// content.
// TODO(mpcomplete): figure out what we should actually do here.
« no previous file with comments | « sky/engine/core/rendering/RenderRemote.h ('k') | sky/engine/public/web/WebFrameClient.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698