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

Side by Side Diff: webkit/plugins/ppapi/ppapi_plugin_instance.cc

Issue 8273029: PPAPI Fullscreen: In ViewChanged, check if the browser entered fullscreen mode (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 "webkit/plugins/ppapi/ppapi_plugin_instance.h" 5 #include "webkit/plugins/ppapi/ppapi_plugin_instance.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/debug/trace_event.h" 8 #include "base/debug/trace_event.h"
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/memory/scoped_ptr.h" 10 #include "base/memory/scoped_ptr.h"
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
108 using ppapi::thunk::PPB_ImageData_API; 108 using ppapi::thunk::PPB_ImageData_API;
109 using ppapi::thunk::PPB_Instance_FunctionAPI; 109 using ppapi::thunk::PPB_Instance_FunctionAPI;
110 using ppapi::thunk::PPB_Surface3D_API; 110 using ppapi::thunk::PPB_Surface3D_API;
111 using ppapi::Var; 111 using ppapi::Var;
112 using WebKit::WebBindings; 112 using WebKit::WebBindings;
113 using WebKit::WebCanvas; 113 using WebKit::WebCanvas;
114 using WebKit::WebConsoleMessage; 114 using WebKit::WebConsoleMessage;
115 using WebKit::WebCursorInfo; 115 using WebKit::WebCursorInfo;
116 using WebKit::WebDocument; 116 using WebKit::WebDocument;
117 using WebKit::WebFrame; 117 using WebKit::WebFrame;
118 using WebKit::WebElement;
118 using WebKit::WebInputEvent; 119 using WebKit::WebInputEvent;
119 using WebKit::WebPluginContainer; 120 using WebKit::WebPluginContainer;
120 using WebKit::WebString; 121 using WebKit::WebString;
121 using WebKit::WebURLRequest; 122 using WebKit::WebURLRequest;
122 using WebKit::WebView; 123 using WebKit::WebView;
123 124
124 namespace webkit { 125 namespace webkit {
125 namespace ppapi { 126 namespace ppapi {
126 127
127 #if defined(OS_WIN) 128 #if defined(OS_WIN)
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
230 // Sets |*security_origin| to be the WebKit security origin associated with the 231 // Sets |*security_origin| to be the WebKit security origin associated with the
231 // document containing the given plugin instance. On success, returns true. If 232 // document containing the given plugin instance. On success, returns true. If
232 // the instance is invalid, returns false and |*security_origin| will be 233 // the instance is invalid, returns false and |*security_origin| will be
233 // unchanged. 234 // unchanged.
234 bool SecurityOriginForInstance(PP_Instance instance_id, 235 bool SecurityOriginForInstance(PP_Instance instance_id,
235 WebKit::WebSecurityOrigin* security_origin) { 236 WebKit::WebSecurityOrigin* security_origin) {
236 PluginInstance* instance = ResourceTracker::Get()->GetInstance(instance_id); 237 PluginInstance* instance = ResourceTracker::Get()->GetInstance(instance_id);
237 if (!instance) 238 if (!instance)
238 return false; 239 return false;
239 240
240 WebKit::WebElement plugin_element = instance->container()->element(); 241 WebElement plugin_element = instance->container()->element();
241 *security_origin = plugin_element.document().securityOrigin(); 242 *security_origin = plugin_element.document().securityOrigin();
242 return true; 243 return true;
243 } 244 }
244 245
245 } // namespace 246 } // namespace
246 247
247 // static 248 // static
248 PluginInstance* PluginInstance::Create1_0(PluginDelegate* delegate, 249 PluginInstance* PluginInstance::Create1_0(PluginDelegate* delegate,
249 PluginModule* module, 250 PluginModule* module,
250 const void* ppp_instance_if_1_0) { 251 const void* ppp_instance_if_1_0) {
(...skipping 478 matching lines...) Expand 10 before | Expand all | Expand 10 after
729 // consistent since this is given to the plugin, so force everything to 0 730 // consistent since this is given to the plugin, so force everything to 0
730 // in the "everything is clipped" case. 731 // in the "everything is clipped" case.
731 gfx::Rect new_clip; 732 gfx::Rect new_clip;
732 if (!clip.IsEmpty()) 733 if (!clip.IsEmpty())
733 new_clip = clip; 734 new_clip = clip;
734 735
735 // Don't notify the plugin if we've already sent these same params before. 736 // Don't notify the plugin if we've already sent these same params before.
736 if (sent_did_change_view_ && position == position_ && new_clip == clip_) 737 if (sent_did_change_view_ && position == position_ && new_clip == clip_)
737 return; 738 return;
738 739
740 if (desired_fullscreen_state_ || fullscreen_) {
741 WebElement element = container_->element();
742 WebDocument document = element.document();
743 // TODO(polina): temporary hack to ease WebKit/Chromium commit sequence.
744 #ifdef WEBKIT_WEBDOCUMENT_HAS_FULLSCREENELEMENT
745 bool is_fullscreen_element = (element == document.fullScreenElement());
746 #else
747 bool is_fullscreen_element = desired_fullscreen_state_;
748 #endif
749 if (!fullscreen_ && desired_fullscreen_state_ &&
750 delegate()->IsInFullscreenMode() && is_fullscreen_element) {
751 // Entered fullscreen. Only possible via SetFullscreen.
752 fullscreen_ = true;
753 } else if (fullscreen_ && !is_fullscreen_element) {
754 // Exited fullscreen. Possible via SetFullscreen or F11,
755 // so desired_fullscreen_state might be out-of-date.
756 desired_fullscreen_state_ = false;
757 fullscreen_ = false;
758 }
759 }
760
739 sent_did_change_view_ = true; 761 sent_did_change_view_ = true;
740 position_ = position; 762 position_ = position;
741 clip_ = new_clip; 763 clip_ = new_clip;
742 fullscreen_ = desired_fullscreen_state_;
743 flash_fullscreen_ = (fullscreen_container_ != NULL); 764 flash_fullscreen_ = (fullscreen_container_ != NULL);
744 765
745 PP_Rect pp_position, pp_clip; 766 PP_Rect pp_position, pp_clip;
746 RectToPPRect(position_, &pp_position); 767 RectToPPRect(position_, &pp_position);
747 RectToPPRect(clip_, &pp_clip); 768 RectToPPRect(clip_, &pp_clip);
748 instance_interface_->DidChangeView(pp_instance(), &pp_position, &pp_clip); 769 instance_interface_->DidChangeView(pp_instance(), &pp_position, &pp_clip);
749 } 770 }
750 771
751 void PluginInstance::SetWebKitFocus(bool has_focus) { 772 void PluginInstance::SetWebKitFocus(bool has_focus) {
752 if (has_webkit_focus_ == has_focus) 773 if (has_webkit_focus_ == has_focus)
(...skipping 1141 matching lines...) Expand 10 before | Expand all | Expand 10 after
1894 } 1915 }
1895 1916
1896 PP_Var PluginInstance::ResolveRelativeToDocument( 1917 PP_Var PluginInstance::ResolveRelativeToDocument(
1897 PP_Instance instance, 1918 PP_Instance instance,
1898 PP_Var relative, 1919 PP_Var relative,
1899 PP_URLComponents_Dev* components) { 1920 PP_URLComponents_Dev* components) {
1900 StringVar* relative_string = StringVar::FromPPVar(relative); 1921 StringVar* relative_string = StringVar::FromPPVar(relative);
1901 if (!relative_string) 1922 if (!relative_string)
1902 return PP_MakeNull(); 1923 return PP_MakeNull();
1903 1924
1904 WebKit::WebElement plugin_element = container()->element(); 1925 WebElement plugin_element = container()->element();
1905 GURL document_url = plugin_element.document().baseURL(); 1926 GURL document_url = plugin_element.document().baseURL();
1906 return ::ppapi::URLUtilImpl::GenerateURLReturn( 1927 return ::ppapi::URLUtilImpl::GenerateURLReturn(
1907 module()->pp_module(), 1928 module()->pp_module(),
1908 document_url.Resolve(relative_string->value()), 1929 document_url.Resolve(relative_string->value()),
1909 components); 1930 components);
1910 } 1931 }
1911 1932
1912 PP_Bool PluginInstance::DocumentCanRequest(PP_Instance instance, PP_Var url) { 1933 PP_Bool PluginInstance::DocumentCanRequest(PP_Instance instance, PP_Var url) {
1913 StringVar* url_string = StringVar::FromPPVar(url); 1934 StringVar* url_string = StringVar::FromPPVar(url);
1914 if (!url_string) 1935 if (!url_string)
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
1973 } 1994 }
1974 WebKit::WebDocument main_document = 1995 WebKit::WebDocument main_document =
1975 containing_document.frame()->view()->mainFrame()->document(); 1996 containing_document.frame()->view()->mainFrame()->document();
1976 1997
1977 return containing_document.securityOrigin().canAccess( 1998 return containing_document.securityOrigin().canAccess(
1978 main_document.securityOrigin()); 1999 main_document.securityOrigin());
1979 } 2000 }
1980 2001
1981 } // namespace ppapi 2002 } // namespace ppapi
1982 } // namespace webkit 2003 } // namespace webkit
OLDNEW
« content/renderer/render_view_impl.cc ('K') | « webkit/plugins/ppapi/plugin_delegate.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698