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

Side by Side Diff: blimp/client/feature/navigation_feature.cc

Issue 1962393004: Added a debug info UI for Blimp (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Built debug UI Created 4 years, 7 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 unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "blimp/client/feature/navigation_feature.h" 5 #include "blimp/client/feature/navigation_feature.h"
6 6
7 #include <map> 7 #include <map>
8 #include <string> 8 #include <string>
9 9
10 #include "blimp/common/create_blimp_message.h" 10 #include "blimp/common/create_blimp_message.h"
11 #include "blimp/common/proto/blimp_message.pb.h" 11 #include "blimp/common/proto/blimp_message.pb.h"
12 #include "blimp/common/proto/navigation.pb.h" 12 #include "blimp/common/proto/navigation.pb.h"
13 #include "components/url_formatter/url_fixer.h" 13 #include "components/url_formatter/url_fixer.h"
14 #include "net/base/net_errors.h" 14 #include "net/base/net_errors.h"
15 #include "url/gurl.h" 15 #include "url/gurl.h"
16 #include "url/url_canon.h" 16 #include "url/url_canon.h"
17 #include "url/url_util.h" 17 #include "url/url_util.h"
18 18
19 namespace blimp { 19 namespace blimp {
20 namespace client { 20 namespace client {
21 21
22 NavigationFeature::NavigationFeature() {} 22 NavigationFeature::NavigationFeature(BlimpConnectionDetails* details)
23 : connection_details_(details) {}
Khushal 2016/05/18 00:23:00 DCHECK the |connection_details_| here.
shaktisahu 2016/05/19 21:39:18 Done.
23 24
24 NavigationFeature::~NavigationFeature() {} 25 NavigationFeature::~NavigationFeature() {}
25 26
26 void NavigationFeature::set_outgoing_message_processor( 27 void NavigationFeature::set_outgoing_message_processor(
27 std::unique_ptr<BlimpMessageProcessor> processor) { 28 std::unique_ptr<BlimpMessageProcessor> processor) {
28 outgoing_message_processor_ = std::move(processor); 29 outgoing_message_processor_ = std::move(processor);
29 } 30 }
30 31
31 void NavigationFeature::SetDelegate(int tab_id, 32 void NavigationFeature::SetDelegate(int tab_id,
32 NavigationFeatureDelegate* delegate) { 33 NavigationFeatureDelegate* delegate) {
(...skipping 24 matching lines...) Expand all
57 std::string encoded_query(buffer.data(), buffer.length()); 58 std::string encoded_query(buffer.data(), buffer.length());
58 url = GURL("https://www.google.com/#q=" + encoded_query); 59 url = GURL("https://www.google.com/#q=" + encoded_query);
59 DCHECK(url.is_valid()); 60 DCHECK(url.is_valid());
60 } 61 }
61 62
62 NavigationMessage* navigation_message; 63 NavigationMessage* navigation_message;
63 std::unique_ptr<BlimpMessage> blimp_message = 64 std::unique_ptr<BlimpMessage> blimp_message =
64 CreateBlimpMessage(&navigation_message, tab_id); 65 CreateBlimpMessage(&navigation_message, tab_id);
65 navigation_message->set_type(NavigationMessage::LOAD_URL); 66 navigation_message->set_type(NavigationMessage::LOAD_URL);
66 navigation_message->mutable_load_url()->set_url(url.spec()); 67 navigation_message->mutable_load_url()->set_url(url.spec());
68 connection_details_->ResetStats();
67 outgoing_message_processor_->ProcessMessage(std::move(blimp_message), 69 outgoing_message_processor_->ProcessMessage(std::move(blimp_message),
68 net::CompletionCallback()); 70 net::CompletionCallback());
69 } 71 }
70 72
71 void NavigationFeature::Reload(int tab_id) { 73 void NavigationFeature::Reload(int tab_id) {
72 NavigationMessage* navigation_message; 74 NavigationMessage* navigation_message;
73 std::unique_ptr<BlimpMessage> blimp_message = 75 std::unique_ptr<BlimpMessage> blimp_message =
74 CreateBlimpMessage(&navigation_message, tab_id); 76 CreateBlimpMessage(&navigation_message, tab_id);
75 navigation_message->set_type(NavigationMessage::RELOAD); 77 navigation_message->set_type(NavigationMessage::RELOAD);
76 78
79 connection_details_->ResetStats();
77 outgoing_message_processor_->ProcessMessage(std::move(blimp_message), 80 outgoing_message_processor_->ProcessMessage(std::move(blimp_message),
78 net::CompletionCallback()); 81 net::CompletionCallback());
79 } 82 }
80 83
81 void NavigationFeature::GoForward(int tab_id) { 84 void NavigationFeature::GoForward(int tab_id) {
82 NavigationMessage* navigation_message; 85 NavigationMessage* navigation_message;
83 std::unique_ptr<BlimpMessage> blimp_message = 86 std::unique_ptr<BlimpMessage> blimp_message =
84 CreateBlimpMessage(&navigation_message, tab_id); 87 CreateBlimpMessage(&navigation_message, tab_id);
85 navigation_message->set_type(NavigationMessage::GO_FORWARD); 88 navigation_message->set_type(NavigationMessage::GO_FORWARD);
86 89
90 connection_details_->ResetStats();
87 outgoing_message_processor_->ProcessMessage(std::move(blimp_message), 91 outgoing_message_processor_->ProcessMessage(std::move(blimp_message),
88 net::CompletionCallback()); 92 net::CompletionCallback());
89 } 93 }
90 94
91 void NavigationFeature::GoBack(int tab_id) { 95 void NavigationFeature::GoBack(int tab_id) {
92 NavigationMessage* navigation_message; 96 NavigationMessage* navigation_message;
93 std::unique_ptr<BlimpMessage> blimp_message = 97 std::unique_ptr<BlimpMessage> blimp_message =
94 CreateBlimpMessage(&navigation_message, tab_id); 98 CreateBlimpMessage(&navigation_message, tab_id);
95 navigation_message->set_type(NavigationMessage::GO_BACK); 99 navigation_message->set_type(NavigationMessage::GO_BACK);
96 100
101 connection_details_->ResetStats();
97 outgoing_message_processor_->ProcessMessage(std::move(blimp_message), 102 outgoing_message_processor_->ProcessMessage(std::move(blimp_message),
98 net::CompletionCallback()); 103 net::CompletionCallback());
99 } 104 }
100 105
101 void NavigationFeature::ProcessMessage( 106 void NavigationFeature::ProcessMessage(
102 std::unique_ptr<BlimpMessage> message, 107 std::unique_ptr<BlimpMessage> message,
103 const net::CompletionCallback& callback) { 108 const net::CompletionCallback& callback) {
104 DCHECK(!callback.is_null()); 109 DCHECK(!callback.is_null());
105 DCHECK(message->type() == BlimpMessage::NAVIGATION); 110 DCHECK(message->type() == BlimpMessage::NAVIGATION);
106 111
107 int tab_id = message->target_tab_id(); 112 int tab_id = message->target_tab_id();
108 DCHECK(message->has_navigation()); 113 DCHECK(message->has_navigation());
109 const NavigationMessage& navigation_message = message->navigation(); 114 const NavigationMessage& navigation_message = message->navigation();
110 115
111 NavigationFeatureDelegate* delegate = FindDelegate(tab_id); 116 NavigationFeatureDelegate* delegate = FindDelegate(tab_id);
112 DCHECK(delegate) << "NavigationFeatureDelegate not found for tab " << tab_id; 117 DCHECK(delegate) << "NavigationFeatureDelegate not found for tab " << tab_id;
113 switch (navigation_message.type()) { 118 switch (navigation_message.type()) {
114 case NavigationMessage::NAVIGATION_STATE_CHANGED: { 119 case NavigationMessage::NAVIGATION_STATE_CHANGED: {
115 const NavigationStateChangeMessage& details = 120 const NavigationStateChangeMessage& details =
116 navigation_message.navigation_state_changed(); 121 navigation_message.navigation_state_changed();
117 if (details.has_url()) 122 if (details.has_url()) {
118 delegate->OnUrlChanged(tab_id, GURL(details.url())); 123 delegate->OnUrlChanged(tab_id, GURL(details.url()));
Khushal 2016/05/18 00:23:00 The URL may change even if we are on the same page
124 connection_details_->ResetStats();
125 }
119 126
120 if (details.has_title()) 127 if (details.has_title())
121 delegate->OnTitleChanged(tab_id, details.title()); 128 delegate->OnTitleChanged(tab_id, details.title());
122 129
123 if (details.has_loading()) 130 if (details.has_loading())
124 delegate->OnLoadingChanged(tab_id, details.loading()); 131 delegate->OnLoadingChanged(tab_id, details.loading());
125 132
126 if (details.has_favicon()) { 133 if (details.has_favicon()) {
127 NOTIMPLEMENTED(); 134 NOTIMPLEMENTED();
128 } 135 }
(...skipping 19 matching lines...) Expand all
148 NavigationFeature::NavigationFeatureDelegate* NavigationFeature::FindDelegate( 155 NavigationFeature::NavigationFeatureDelegate* NavigationFeature::FindDelegate(
149 const int tab_id) { 156 const int tab_id) {
150 DelegateMap::const_iterator it = delegates_.find(tab_id); 157 DelegateMap::const_iterator it = delegates_.find(tab_id);
151 if (it != delegates_.end()) 158 if (it != delegates_.end())
152 return it->second; 159 return it->second;
153 return nullptr; 160 return nullptr;
154 } 161 }
155 162
156 } // namespace client 163 } // namespace client
157 } // namespace blimp 164 } // namespace blimp
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698