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

Side by Side Diff: content/browser/web_contents/web_contents_impl.h

Issue 2674353003: Enable WebViewAccessiblityTest for OOPIF webview. (Closed)
Patch Set: Address dmazzoni comments. Created 3 years, 10 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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 CONTENT_BROWSER_WEB_CONTENTS_WEB_CONTENTS_IMPL_H_ 5 #ifndef CONTENT_BROWSER_WEB_CONTENTS_WEB_CONTENTS_IMPL_H_
6 #define CONTENT_BROWSER_WEB_CONTENTS_WEB_CONTENTS_IMPL_H_ 6 #define CONTENT_BROWSER_WEB_CONTENTS_WEB_CONTENTS_IMPL_H_
7 7
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <functional> 10 #include <functional>
(...skipping 468 matching lines...) Expand 10 before | Expand all | Expand 10 after
479 ScreenOrientationProvider* GetScreenOrientationProvider() override; 479 ScreenOrientationProvider* GetScreenOrientationProvider() override;
480 void EnterFullscreenMode(const GURL& origin) override; 480 void EnterFullscreenMode(const GURL& origin) override;
481 void ExitFullscreenMode(bool will_cause_resize) override; 481 void ExitFullscreenMode(bool will_cause_resize) override;
482 bool ShouldRouteMessageEvent( 482 bool ShouldRouteMessageEvent(
483 RenderFrameHost* target_rfh, 483 RenderFrameHost* target_rfh,
484 SiteInstance* source_site_instance) const override; 484 SiteInstance* source_site_instance) const override;
485 void EnsureOpenerProxiesExist(RenderFrameHost* source_rfh) override; 485 void EnsureOpenerProxiesExist(RenderFrameHost* source_rfh) override;
486 std::unique_ptr<WebUIImpl> CreateWebUIForRenderFrameHost( 486 std::unique_ptr<WebUIImpl> CreateWebUIForRenderFrameHost(
487 const GURL& url) override; 487 const GURL& url) override;
488 void SetFocusedFrame(FrameTreeNode* node, SiteInstance* source) override; 488 void SetFocusedFrame(FrameTreeNode* node, SiteInstance* source) override;
489 RenderFrameHost* GetFocusedFrameIncludingInnerWebContents() override;
489 void OnFocusedElementChangedInFrame( 490 void OnFocusedElementChangedInFrame(
490 RenderFrameHostImpl* frame, 491 RenderFrameHostImpl* frame,
491 const gfx::Rect& bounds_in_root_view) override; 492 const gfx::Rect& bounds_in_root_view) override;
492 void CreateNewWindow( 493 void CreateNewWindow(
493 SiteInstance* source_site_instance, 494 SiteInstance* source_site_instance,
494 int32_t render_view_route_id, 495 int32_t render_view_route_id,
495 int32_t main_frame_route_id, 496 int32_t main_frame_route_id,
496 int32_t main_frame_widget_route_id, 497 int32_t main_frame_widget_route_id,
497 const mojom::CreateNewWindowParams& params, 498 const mojom::CreateNewWindowParams& params,
498 SessionStorageNamespace* session_storage_namespace) override; 499 SessionStorageNamespace* session_storage_namespace) override;
(...skipping 342 matching lines...) Expand 10 before | Expand all | Expand 10 after
841 // still remain disjoint. 842 // still remain disjoint.
842 // The parent is referred to as "outer WebContents" and the descendents are 843 // The parent is referred to as "outer WebContents" and the descendents are
843 // referred to as "inner WebContents". 844 // referred to as "inner WebContents".
844 // For each inner WebContents, the outer WebContents will have a 845 // For each inner WebContents, the outer WebContents will have a
845 // corresponding FrameTreeNode. 846 // corresponding FrameTreeNode.
846 struct WebContentsTreeNode { 847 struct WebContentsTreeNode {
847 public: 848 public:
848 WebContentsTreeNode(); 849 WebContentsTreeNode();
849 ~WebContentsTreeNode(); 850 ~WebContentsTreeNode();
850 851
851 typedef std::set<WebContentsTreeNode*> ChildrenSet; 852 typedef std::map<int, WebContentsImpl*> ChildrenMap;
852 853
853 void ConnectToOuterWebContents(WebContentsImpl* outer_web_contents, 854 void ConnectToOuterWebContents(WebContentsImpl* web_contents,
855 WebContentsImpl* outer_web_contents,
854 RenderFrameHostImpl* outer_contents_frame); 856 RenderFrameHostImpl* outer_contents_frame);
855 857
856 WebContentsImpl* outer_web_contents() { return outer_web_contents_; } 858 WebContentsImpl* outer_web_contents() { return outer_web_contents_; }
857 int outer_contents_frame_tree_node_id() const { 859 int outer_contents_frame_tree_node_id() const {
858 return outer_contents_frame_tree_node_id_; 860 return outer_contents_frame_tree_node_id_;
859 } 861 }
860 862
861 WebContentsImpl* focused_web_contents() { return focused_web_contents_; } 863 WebContentsImpl* focused_web_contents() { return focused_web_contents_; }
862 void SetFocusedWebContents(WebContentsImpl* web_contents); 864 void SetFocusedWebContents(WebContentsImpl* web_contents);
863 865
866 // Returns the WebContents at a tree node in the frame tree or nullptr if
867 // there is none.
868 WebContentsImpl* find_contents_at_node(int frame_tree_node_id);
869
864 private: 870 private:
865 // The outer WebContents. 871 // The outer WebContents.
866 WebContentsImpl* outer_web_contents_; 872 WebContentsImpl* outer_web_contents_;
867 // The ID of the FrameTreeNode in outer WebContents that is hosting us. 873 // The ID of the FrameTreeNode in outer WebContents that is hosting us.
868 int outer_contents_frame_tree_node_id_; 874 int outer_contents_frame_tree_node_id_;
869 // List of inner WebContents that we host. 875 // List of inner WebContents that we host.
870 ChildrenSet inner_web_contents_tree_nodes_; 876 ChildrenMap inner_web_contents_tree_nodes_;
871 // Only the root node should have this set. This indicates the WebContents 877 // Only the root node should have this set. This indicates the WebContents
872 // whose frame tree has the focused frame. The WebContents tree could be 878 // whose frame tree has the focused frame. The WebContents tree could be
873 // arbitrarily deep. 879 // arbitrarily deep.
874 WebContentsImpl* focused_web_contents_; 880 WebContentsImpl* focused_web_contents_;
875 }; 881 };
876 882
877 // See WebContents::Create for a description of these parameters. 883 // See WebContents::Create for a description of these parameters.
878 WebContentsImpl(BrowserContext* browser_context); 884 WebContentsImpl(BrowserContext* browser_context);
879 885
880 // Add and remove observers for page navigation notifications. The order in 886 // Add and remove observers for page navigation notifications. The order in
(...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after
1058 // WebContentsImpl. This will activate this content's main frame RenderWidget 1064 // WebContentsImpl. This will activate this content's main frame RenderWidget
1059 // and indirectly all its subframe widgets. GetFocusedRenderWidgetHost will 1065 // and indirectly all its subframe widgets. GetFocusedRenderWidgetHost will
1060 // search this WebContentsImpl for a focused RenderWidgetHost. The previously 1066 // search this WebContentsImpl for a focused RenderWidgetHost. The previously
1061 // focused WebContentsImpl, if any, will have its RenderWidgetHosts 1067 // focused WebContentsImpl, if any, will have its RenderWidgetHosts
1062 // deactivated. 1068 // deactivated.
1063 void SetAsFocusedWebContentsIfNecessary(); 1069 void SetAsFocusedWebContentsIfNecessary();
1064 1070
1065 // Returns the root of the WebContents tree. 1071 // Returns the root of the WebContents tree.
1066 WebContentsImpl* GetOutermostWebContents(); 1072 WebContentsImpl* GetOutermostWebContents();
1067 1073
1074 // Walks up to the outermost WebContents and focuses the frame tree node where
1075 // the current WebContents is attached.
1076 void FocusOuterAttachmentFrameChain();
1077
1068 // Navigation helpers -------------------------------------------------------- 1078 // Navigation helpers --------------------------------------------------------
1069 // 1079 //
1070 // These functions are helpers for Navigate() and DidNavigate(). 1080 // These functions are helpers for Navigate() and DidNavigate().
1071 1081
1072 // Handles post-navigation tasks in DidNavigate AFTER the entry has been 1082 // Handles post-navigation tasks in DidNavigate AFTER the entry has been
1073 // committed to the navigation controller. Note that the navigation entry is 1083 // committed to the navigation controller. Note that the navigation entry is
1074 // not provided since it may be invalid/changed after being committed. The 1084 // not provided since it may be invalid/changed after being committed. The
1075 // current navigation entry is in the NavigationController at this point. 1085 // current navigation entry is in the NavigationController at this point.
1076 1086
1077 // Helper for CreateNewWidget/CreateNewFullscreenWidget. 1087 // Helper for CreateNewWidget/CreateNewFullscreenWidget.
(...skipping 435 matching lines...) Expand 10 before | Expand all | Expand 10 after
1513 // Adds/removes a callback called on creation of each new WebContents. 1523 // Adds/removes a callback called on creation of each new WebContents.
1514 static void AddCreatedCallbackForTesting(const CreatedCallback& callback); 1524 static void AddCreatedCallbackForTesting(const CreatedCallback& callback);
1515 static void RemoveCreatedCallbackForTesting(const CreatedCallback& callback); 1525 static void RemoveCreatedCallbackForTesting(const CreatedCallback& callback);
1516 1526
1517 DISALLOW_COPY_AND_ASSIGN(FriendZone); 1527 DISALLOW_COPY_AND_ASSIGN(FriendZone);
1518 }; 1528 };
1519 1529
1520 } // namespace content 1530 } // namespace content
1521 1531
1522 #endif // CONTENT_BROWSER_WEB_CONTENTS_WEB_CONTENTS_IMPL_H_ 1532 #endif // CONTENT_BROWSER_WEB_CONTENTS_WEB_CONTENTS_IMPL_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698