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

Unified Diff: components/html_viewer/frame_tree_manager.cc

Issue 1239313004: More html_viewer OOPIF changes (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix compile Created 5 years, 5 months 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 | « components/html_viewer/frame_tree_manager.h ('k') | components/html_viewer/html_frame_apptest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: components/html_viewer/frame_tree_manager.cc
diff --git a/components/html_viewer/frame_tree_manager.cc b/components/html_viewer/frame_tree_manager.cc
index d543496ad4edd4be265082c9ba1d21a446463c48..a137a42759b77653184b9545a97831a138269ef1 100644
--- a/components/html_viewer/frame_tree_manager.cc
+++ b/components/html_viewer/frame_tree_manager.cc
@@ -8,6 +8,7 @@
#include "base/command_line.h"
#include "base/logging.h"
+#include "components/html_viewer/blink_basic_type_converters.h"
#include "components/html_viewer/blink_url_request_type_converters.h"
#include "components/html_viewer/frame.h"
#include "components/html_viewer/frame_tree_manager_delegate.h"
@@ -55,7 +56,9 @@ bool CanNavigateLocally(blink::WebFrame* frame,
// Creates a Frame per FrameData element in |frame_data|.
Frame* BuildFrameTree(FrameTreeManager* frame_tree_manager,
- const mojo::Array<mandoline::FrameDataPtr>& frame_data) {
+ const mojo::Array<mandoline::FrameDataPtr>& frame_data,
+ uint32_t local_frame_id,
+ mojo::View* local_view) {
std::vector<Frame*> parents;
Frame* root = nullptr;
Frame* last_frame = nullptr;
@@ -75,6 +78,9 @@ Frame* BuildFrameTree(FrameTreeManager* frame_tree_manager,
else
DCHECK(frame->parent());
last_frame = frame;
+
+ frame->Init(local_view, frame_data[i]->name.To<blink::WebString>(),
+ frame_data[i]->origin.To<blink::WebString>());
}
return root;
}
@@ -103,12 +109,9 @@ FrameTreeManager::~FrameTreeManager() {
void FrameTreeManager::Init(mojo::View* local_view,
mojo::Array<mandoline::FrameDataPtr> frame_data) {
- root_ = BuildFrameTree(this, frame_data);
- CHECK(root_);
+ root_ = BuildFrameTree(this, frame_data, local_frame_id_, local_view);
Frame* local_frame = root_->FindFrame(local_frame_id_);
CHECK(local_frame);
- local_frame->SetView(local_view);
- InitFrames(local_view, root_);
local_frame->UpdateFocus();
}
@@ -124,13 +127,6 @@ blink::WebView* FrameTreeManager::GetWebView() {
return root_->web_view();
}
-void FrameTreeManager::InitFrames(mojo::View* local_view, Frame* frame) {
- frame->Init(local_view);
-
- for (Frame* child_frame : frame->children())
- InitFrames(local_view, child_frame);
-}
-
blink::WebNavigationPolicy FrameTreeManager::DecidePolicyForNavigation(
Frame* frame,
const blink::WebFrameClient::NavigationPolicyInfo& info) {
@@ -173,6 +169,17 @@ void FrameTreeManager::OnFrameDestroyed(Frame* frame) {
}
}
+void FrameTreeManager::OnFrameDidChangeName(Frame* frame,
+ const blink::WebString& name) {
+ if (frame != GetLocalFrame())
+ return;
+
+ mojo::String mojo_name;
+ if (!name.isNull())
+ mojo_name = name.utf8();
+ server_->SetFrameName(mojo_name);
+}
+
void FrameTreeManager::OnConnect(
mandoline::FrameTreeServerPtr server,
mojo::Array<mandoline::FrameDataPtr> frame_data) {
@@ -201,4 +208,11 @@ void FrameTreeManager::OnFrameRemoved(uint32_t frame_id) {
NOTIMPLEMENTED();
}
+void FrameTreeManager::OnFrameNameChanged(uint32_t frame_id,
+ const mojo::String& name) {
+ Frame* frame = root_->FindFrame(frame_id);
+ if (frame)
+ frame->SetRemoteFrameName(name);
+}
+
} // namespace mojo
« no previous file with comments | « components/html_viewer/frame_tree_manager.h ('k') | components/html_viewer/html_frame_apptest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698