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

Side by Side Diff: components/web_view/frame.h

Issue 1371773003: mandoline: Add find in page. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Further patch cleanup; use a WeakPtrFactory in FindController. Created 5 years, 2 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 #ifndef COMPONENTS_WEB_VIEW_FRAME_H_ 5 #ifndef COMPONENTS_WEB_VIEW_FRAME_H_
6 #define COMPONENTS_WEB_VIEW_FRAME_H_ 6 #define COMPONENTS_WEB_VIEW_FRAME_H_
7 7
8 #include <map> 8 #include <map>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
47 // When navigating, if the id of the new app matches that of the existing app, 47 // When navigating, if the id of the new app matches that of the existing app,
48 // then it is expected that the new FrameClient will take over rendering to the 48 // then it is expected that the new FrameClient will take over rendering to the
49 // existing view. Because of this a new ViewTreeClient is not obtained and 49 // existing view. Because of this a new ViewTreeClient is not obtained and
50 // Embed() is not invoked on the View. The FrameClient can detect this case by 50 // Embed() is not invoked on the View. The FrameClient can detect this case by
51 // the argument |reuse_existing_view| supplied to OnConnect(). Typically the id 51 // the argument |reuse_existing_view| supplied to OnConnect(). Typically the id
52 // is that of content handler id, but this is left up to the FrameTreeDelegate 52 // is that of content handler id, but this is left up to the FrameTreeDelegate
53 // to decide. 53 // to decide.
54 class Frame : public mus::ViewObserver, public mojom::Frame { 54 class Frame : public mus::ViewObserver, public mojom::Frame {
55 public: 55 public:
56 using ClientPropertyMap = std::map<std::string, std::vector<uint8_t>>; 56 using ClientPropertyMap = std::map<std::string, std::vector<uint8_t>>;
57 using FindCallback = mojo::Callback<void(bool)>;
57 58
58 Frame(FrameTree* tree, 59 Frame(FrameTree* tree,
59 mus::View* view, 60 mus::View* view,
60 uint32_t frame_id, 61 uint32_t frame_id,
61 uint32_t app_id, 62 uint32_t app_id,
62 ViewOwnership view_ownership, 63 ViewOwnership view_ownership,
63 mojom::FrameClient* frame_client, 64 mojom::FrameClient* frame_client,
64 scoped_ptr<FrameUserData> user_data, 65 scoped_ptr<FrameUserData> user_data,
65 const ClientPropertyMap& client_properties); 66 const ClientPropertyMap& client_properties);
66 ~Frame() override; 67 ~Frame() override;
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
105 106
106 const std::vector<Frame*>& children() const { return children_; } 107 const std::vector<Frame*>& children() const { return children_; }
107 108
108 // Returns true if this Frame or any child Frame is loading. 109 // Returns true if this Frame or any child Frame is loading.
109 bool IsLoading() const; 110 bool IsLoading() const;
110 111
111 // Returns the sum total of loading progress from this Frame and all of its 112 // Returns the sum total of loading progress from this Frame and all of its
112 // children, as well as the number of Frames accumulated. 113 // children, as well as the number of Frames accumulated.
113 double GatherProgress(int* frame_count) const; 114 double GatherProgress(int* frame_count) const;
114 115
116 void Find(int32_t request_id,
117 const mojo::String& search_text,
118 const FindCallback& callback);
119 void StopFinding(bool clear_selection);
120 void ScopeStringMatches(int32_t request_id,
121 const mojo::String& search_text,
122 bool reset);
123 void CancelPendingScopingEffort();
124
115 private: 125 private:
116 friend class FrameTest; 126 friend class FrameTest;
117 friend class FrameTree; 127 friend class FrameTree;
118 128
119 // Identifies whether the FrameClient is from the same app or a different 129 // Identifies whether the FrameClient is from the same app or a different
120 // app. 130 // app.
121 enum class ClientType { 131 enum class ClientType {
122 // The client is either the root frame, or navigating an existing frame 132 // The client is either the root frame, or navigating an existing frame
123 // to a different app. 133 // to a different app.
124 EXISTING_FRAME_NEW_APP, 134 EXISTING_FRAME_NEW_APP,
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
217 void OnCreatedFrame( 227 void OnCreatedFrame(
218 mojo::InterfaceRequest<mojom::Frame> frame_request, 228 mojo::InterfaceRequest<mojom::Frame> frame_request,
219 mojom::FrameClientPtr client, 229 mojom::FrameClientPtr client,
220 uint32_t frame_id, 230 uint32_t frame_id,
221 mojo::Map<mojo::String, mojo::Array<uint8_t>> client_properties) override; 231 mojo::Map<mojo::String, mojo::Array<uint8_t>> client_properties) override;
222 void RequestNavigate(mojom::NavigationTargetType target_type, 232 void RequestNavigate(mojom::NavigationTargetType target_type,
223 uint32_t target_frame_id, 233 uint32_t target_frame_id,
224 mojo::URLRequestPtr request) override; 234 mojo::URLRequestPtr request) override;
225 void DidNavigateLocally(const mojo::String& url) override; 235 void DidNavigateLocally(const mojo::String& url) override;
226 void DispatchLoadEventToParent() override; 236 void DispatchLoadEventToParent() override;
237 void OnReportFindInFrameMatchCount(int32_t request_id,
238 int32_t count,
239 bool final_update) override;
240 void OnReportFindInPageSelection(int32_t request_id,
241 int32_t active_match_ordinal) override;
227 242
228 FrameTree* const tree_; 243 FrameTree* const tree_;
229 // WARNING: this may be null. See class description for details. 244 // WARNING: this may be null. See class description for details.
230 mus::View* view_; 245 mus::View* view_;
231 // The connection id returned from ViewManager::Embed(). Frames created by 246 // The connection id returned from ViewManager::Embed(). Frames created by
232 // way of OnCreatedFrame() inherit the id from the parent. 247 // way of OnCreatedFrame() inherit the id from the parent.
233 mus::ConnectionSpecificId embedded_connection_id_; 248 mus::ConnectionSpecificId embedded_connection_id_;
234 // ID for the frame, which is the same as that of the view. 249 // ID for the frame, which is the same as that of the view.
235 const uint32_t id_; 250 const uint32_t id_;
236 // ID of the app providing the FrameClient and ViewTreeClient. 251 // ID of the app providing the FrameClient and ViewTreeClient.
(...skipping 22 matching lines...) Expand all
259 base::WeakPtrFactory<Frame> embed_weak_ptr_factory_; 274 base::WeakPtrFactory<Frame> embed_weak_ptr_factory_;
260 275
261 base::WeakPtrFactory<Frame> navigate_weak_ptr_factory_; 276 base::WeakPtrFactory<Frame> navigate_weak_ptr_factory_;
262 277
263 DISALLOW_COPY_AND_ASSIGN(Frame); 278 DISALLOW_COPY_AND_ASSIGN(Frame);
264 }; 279 };
265 280
266 } // namespace web_view 281 } // namespace web_view
267 282
268 #endif // COMPONENTS_WEB_VIEW_FRAME_H_ 283 #endif // COMPONENTS_WEB_VIEW_FRAME_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698