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

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

Issue 10868012: Browser Plugin: New Implementation (Browser Side) (Closed) Base URL: http://git.chromium.org/chromium/src.git@master-trial-obrowser
Patch Set: Fix mac build + Address nits from awong@ Created 8 years, 3 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 <map> 8 #include <map>
9 #include <string> 9 #include <string>
10 10
(...skipping 20 matching lines...) Expand all
31 #include "base/win/scoped_handle.h" 31 #include "base/win/scoped_handle.h"
32 #endif 32 #endif
33 33
34 class InterstitialPageImpl; 34 class InterstitialPageImpl;
35 class SavePackage; 35 class SavePackage;
36 class SessionStorageNamespaceImpl; 36 class SessionStorageNamespaceImpl;
37 class WebContentsImpl; 37 class WebContentsImpl;
38 struct ViewMsg_PostMessage_Params; 38 struct ViewMsg_PostMessage_Params;
39 39
40 namespace content { 40 namespace content {
41 class BrowserPluginEmbedder;
42 class BrowserPluginGuest;
41 class ColorChooser; 43 class ColorChooser;
42 class DownloadItem; 44 class DownloadItem;
43 class JavaScriptDialogCreator; 45 class JavaScriptDialogCreator;
44 class RenderViewHost; 46 class RenderViewHost;
45 class RenderViewHostDelegateView; 47 class RenderViewHostDelegateView;
46 class RenderViewHostImpl; 48 class RenderViewHostImpl;
47 class SiteInstance; 49 class SiteInstance;
48 class TestWebContents; 50 class TestWebContents;
49 class WebContentsDelegate; 51 class WebContentsDelegate;
50 class WebContentsObserver; 52 class WebContentsObserver;
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
154 return java_bridge_dispatcher_host_manager_.get(); 156 return java_bridge_dispatcher_host_manager_.get();
155 } 157 }
156 158
157 content::old::BrowserPluginHost* old_browser_plugin_host() const { 159 content::old::BrowserPluginHost* old_browser_plugin_host() const {
158 return old_browser_plugin_host_.get(); 160 return old_browser_plugin_host_.get();
159 } 161 }
160 162
161 // Expose the render manager for testing. 163 // Expose the render manager for testing.
162 RenderViewHostManager* GetRenderManagerForTesting(); 164 RenderViewHostManager* GetRenderManagerForTesting();
163 165
166 // Sets guest to this WebContents embedder.
awong 2012/09/06 00:23:27 I expect a SetXXX() function to take an object tha
lazyboy 2012/09/06 04:33:53 Renamed the function. There should be no side effe
awong 2012/09/06 19:55:26 Ah, I see. Though looking at this more, this seem
lazyboy 2012/09/07 19:33:19 Embedder and guest can be seen as roles A WC can p
awong 2012/09/07 20:51:03 Yep. I think constructing the right state from the
lazyboy 2012/09/08 02:12:22 Done.
167 content::BrowserPluginGuest* SetBrowserPluginGuest(int instance_id);
168 // Returns guest browser plugin object, or NULL if this WebContents is not a
169 // guest.
170 content::BrowserPluginGuest* GetBrowserPluginGuest();
171 // Returns embedder browser plugin object, or NULL if this WebContents is not
172 // an embedder.
173 content::BrowserPluginEmbedder* GetBrowserPluginEmbedder();
174
164 // content::WebContents ------------------------------------------------------ 175 // content::WebContents ------------------------------------------------------
165 virtual content::WebContentsDelegate* GetDelegate() OVERRIDE; 176 virtual content::WebContentsDelegate* GetDelegate() OVERRIDE;
166 virtual void SetDelegate(content::WebContentsDelegate* delegate) OVERRIDE; 177 virtual void SetDelegate(content::WebContentsDelegate* delegate) OVERRIDE;
167 virtual NavigationControllerImpl& GetController() OVERRIDE; 178 virtual NavigationControllerImpl& GetController() OVERRIDE;
168 virtual const NavigationControllerImpl& GetController() const OVERRIDE; 179 virtual const NavigationControllerImpl& GetController() const OVERRIDE;
169 virtual content::BrowserContext* GetBrowserContext() const OVERRIDE; 180 virtual content::BrowserContext* GetBrowserContext() const OVERRIDE;
170 virtual content::RenderProcessHost* GetRenderProcessHost() const OVERRIDE; 181 virtual content::RenderProcessHost* GetRenderProcessHost() const OVERRIDE;
171 virtual content::RenderViewHost* GetRenderViewHost() const OVERRIDE; 182 virtual content::RenderViewHost* GetRenderViewHost() const OVERRIDE;
172 virtual int GetRoutingID() const OVERRIDE; 183 virtual int GetRoutingID() const OVERRIDE;
173 virtual content::RenderWidgetHostView* 184 virtual content::RenderWidgetHostView*
(...skipping 361 matching lines...) Expand 10 before | Expand all | Expand 10 after
535 void OnSetSelectedColorInColorChooser(int color_chooser_id, SkColor color); 546 void OnSetSelectedColorInColorChooser(int color_chooser_id, SkColor color);
536 void OnPepperPluginHung(int plugin_child_id, 547 void OnPepperPluginHung(int plugin_child_id,
537 const FilePath& path, 548 const FilePath& path,
538 bool is_hung); 549 bool is_hung);
539 void OnWebUISend(const GURL& source_url, 550 void OnWebUISend(const GURL& source_url,
540 const std::string& name, 551 const std::string& name,
541 const base::ListValue& args); 552 const base::ListValue& args);
542 void OnRequestPpapiBrokerPermission(int request_id, 553 void OnRequestPpapiBrokerPermission(int request_id,
543 const GURL& url, 554 const GURL& url,
544 const FilePath& plugin_path); 555 const FilePath& plugin_path);
556 void OnBrowserPluginNavigateGuest(int instance_id,
557 int64 frame_id,
558 std::string src,
awong 2012/09/06 00:23:27 Use a const std::string&?
lazyboy 2012/09/06 04:33:53 Done.
559 gfx::Size size);
545 560
546 // Changes the IsLoading state and notifies delegate as needed 561 // Changes the IsLoading state and notifies delegate as needed
547 // |details| is used to provide details on the load that just finished 562 // |details| is used to provide details on the load that just finished
548 // (but can be null if not applicable). Can be overridden. 563 // (but can be null if not applicable). Can be overridden.
549 void SetIsLoading(bool is_loading, 564 void SetIsLoading(bool is_loading,
550 content::LoadNotificationDetails* details); 565 content::LoadNotificationDetails* details);
551 566
552 // Called by derived classes to indicate that we're no longer waiting for a 567 // Called by derived classes to indicate that we're no longer waiting for a
553 // response. This won't actually update the throbber, but it will get picked 568 // response. This won't actually update the throbber, but it will get picked
554 // up at the next animation step if the throbber is going. 569 // up at the next animation step if the throbber is going.
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
640 void SaveURL(const GURL& url, 655 void SaveURL(const GURL& url,
641 const content::Referrer& referrer, 656 const content::Referrer& referrer,
642 bool is_main_frame); 657 bool is_main_frame);
643 658
644 content::RenderViewHostImpl* GetRenderViewHostImpl(); 659 content::RenderViewHostImpl* GetRenderViewHostImpl();
645 660
646 void GetBrowserPluginEmbedderInfo(content::RenderViewHost* render_view_host, 661 void GetBrowserPluginEmbedderInfo(content::RenderViewHost* render_view_host,
647 std::string* embedder_channel_name, 662 std::string* embedder_channel_name,
648 int* embedder_container_id); 663 int* embedder_container_id);
649 664
665 // Removes browser plugin embedder if there is one and its associated
666 // RenderViewHost has been swapped out.
667 void RemoveSwappedOutBrowserPluginEmbedder();
668
650 // Data for core operation --------------------------------------------------- 669 // Data for core operation ---------------------------------------------------
651 670
652 // Delegate for notifying our owner about stuff. Not owned by us. 671 // Delegate for notifying our owner about stuff. Not owned by us.
653 content::WebContentsDelegate* delegate_; 672 content::WebContentsDelegate* delegate_;
654 673
655 // Handles the back/forward list and loading. 674 // Handles the back/forward list and loading.
656 NavigationControllerImpl controller_; 675 NavigationControllerImpl controller_;
657 676
658 // The corresponding view. 677 // The corresponding view.
659 scoped_ptr<content::WebContentsView> view_; 678 scoped_ptr<content::WebContentsView> view_;
(...skipping 27 matching lines...) Expand all
687 706
688 // Manages creation and swapping of render views. 707 // Manages creation and swapping of render views.
689 RenderViewHostManager render_manager_; 708 RenderViewHostManager render_manager_;
690 709
691 // Manages injecting Java objects into all RenderViewHosts associated with 710 // Manages injecting Java objects into all RenderViewHosts associated with
692 // this WebContentsImpl. 711 // this WebContentsImpl.
693 scoped_ptr<JavaBridgeDispatcherHostManager> 712 scoped_ptr<JavaBridgeDispatcherHostManager>
694 java_bridge_dispatcher_host_manager_; 713 java_bridge_dispatcher_host_manager_;
695 714
696 // TODO(fsamuel): Remove this once upstreaming of the new browser plugin 715 // TODO(fsamuel): Remove this once upstreaming of the new browser plugin
697 // implmentation is complete. 716 // implementation is complete.
698 // Manages the browser plugin instances hosted by this WebContents. 717 // Manages the browser plugin instances hosted by this WebContents.
699 scoped_ptr<content::old::BrowserPluginHost> old_browser_plugin_host_; 718 scoped_ptr<content::old::BrowserPluginHost> old_browser_plugin_host_;
700 719
701 // SavePackage, lazily created. 720 // SavePackage, lazily created.
702 scoped_refptr<SavePackage> save_package_; 721 scoped_refptr<SavePackage> save_package_;
703 722
704 // Data for loading state ---------------------------------------------------- 723 // Data for loading state ----------------------------------------------------
705 724
706 // Indicates whether we're currently loading a resource. 725 // Indicates whether we're currently loading a resource.
707 bool is_loading_; 726 bool is_loading_;
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
806 // The intrinsic size of the page. 825 // The intrinsic size of the page.
807 gfx::Size preferred_size_; 826 gfx::Size preferred_size_;
808 827
809 // Content restrictions, used to disable print/copy etc based on content's 828 // Content restrictions, used to disable print/copy etc based on content's
810 // (full-page plugins for now only) permissions. 829 // (full-page plugins for now only) permissions.
811 int content_restrictions_; 830 int content_restrictions_;
812 831
813 // Color chooser that was opened by this tab. 832 // Color chooser that was opened by this tab.
814 content::ColorChooser* color_chooser_; 833 content::ColorChooser* color_chooser_;
815 834
835 // Manages the embedder state for browser plugins, if this WebContents is an
836 // embedder; NULL otherwise.
837 scoped_ptr<content::BrowserPluginEmbedder> browser_plugin_embedder_;
838 // Manages the guest state for browser plugin, if this WebContents is a guest;
839 // NULL otherwise.
840 scoped_ptr<content::BrowserPluginGuest> browser_plugin_guest_;
841
816 // This must be at the end, or else we might get notifications and use other 842 // This must be at the end, or else we might get notifications and use other
817 // member variables that are gone. 843 // member variables that are gone.
818 content::NotificationRegistrar registrar_; 844 content::NotificationRegistrar registrar_;
819 845
820 // Used during IPC message dispatching so that the handlers can get a pointer 846 // Used during IPC message dispatching so that the handlers can get a pointer
821 // to the RVH through which the message was received. 847 // to the RVH through which the message was received.
822 content::RenderViewHost* message_source_; 848 content::RenderViewHost* message_source_;
823 849
824 DISALLOW_COPY_AND_ASSIGN(WebContentsImpl); 850 DISALLOW_COPY_AND_ASSIGN(WebContentsImpl);
825 }; 851 };
826 852
827 #endif // CONTENT_BROWSER_WEB_CONTENTS_WEB_CONTENTS_IMPL_H_ 853 #endif // CONTENT_BROWSER_WEB_CONTENTS_WEB_CONTENTS_IMPL_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698