track html api triggered fullscreen separaely

This commit is contained in:
deepak1556 2015-05-17 01:37:46 +05:30
parent 4fe294ed04
commit ddda8e4197
3 changed files with 20 additions and 6 deletions

View file

@ -219,7 +219,7 @@ void WebContents::EnterFullscreenModeForTab(content::WebContents* source,
const GURL& origin) { const GURL& origin) {
auto window = GetWindowFromGuest(source); auto window = GetWindowFromGuest(source);
if (window) { if (window) {
window->SetFullScreen(true); window->SetHtmlApiFullscreen(true);
source->GetRenderViewHost()->WasResized(); source->GetRenderViewHost()->WasResized();
} }
} }
@ -227,7 +227,7 @@ void WebContents::EnterFullscreenModeForTab(content::WebContents* source,
void WebContents::ExitFullscreenModeForTab(content::WebContents* source) { void WebContents::ExitFullscreenModeForTab(content::WebContents* source) {
auto window = GetWindowFromGuest(source); auto window = GetWindowFromGuest(source);
if (window) { if (window) {
window->SetFullScreen(false); window->SetHtmlApiFullscreen(false);
source->GetRenderViewHost()->WasResized(); source->GetRenderViewHost()->WasResized();
} }
} }
@ -236,7 +236,7 @@ bool WebContents::IsFullscreenForTabOrPending(
const content::WebContents* source) const { const content::WebContents* source) const {
auto window = GetWindowFromGuest(source); auto window = GetWindowFromGuest(source);
if (window) if (window)
return window->IsFullscreen(); return window->IsHtmlApiFullscreen();
else else
return false; return false;
} }

View file

@ -99,6 +99,7 @@ NativeWindow::NativeWindow(content::WebContents* web_contents,
is_closed_(false), is_closed_(false),
node_integration_(true), node_integration_(true),
has_dialog_attached_(false), has_dialog_attached_(false),
fullscreen_(false),
zoom_factor_(1.0), zoom_factor_(1.0),
weak_factory_(this), weak_factory_(this),
inspectable_web_contents_( inspectable_web_contents_(
@ -698,16 +699,16 @@ void NativeWindow::RendererResponsive(content::WebContents* source) {
void NativeWindow::EnterFullscreenModeForTab(content::WebContents* source, void NativeWindow::EnterFullscreenModeForTab(content::WebContents* source,
const GURL& origin) { const GURL& origin) {
SetFullScreen(true); SetHtmlApiFullscreen(true);
} }
void NativeWindow::ExitFullscreenModeForTab(content::WebContents* source) { void NativeWindow::ExitFullscreenModeForTab(content::WebContents* source) {
SetFullScreen(false); SetHtmlApiFullscreen(false);
} }
bool NativeWindow::IsFullscreenForTabOrPending( bool NativeWindow::IsFullscreenForTabOrPending(
const content::WebContents* source) const { const content::WebContents* source) const {
return IsFullscreen(); return IsHtmlApiFullscreen();
} }
void NativeWindow::BeforeUnloadFired(const base::TimeTicks& proceed_time) { void NativeWindow::BeforeUnloadFired(const base::TimeTicks& proceed_time) {
@ -800,6 +801,11 @@ void NativeWindow::ScheduleUnresponsiveEvent(int ms) {
base::TimeDelta::FromMilliseconds(ms)); base::TimeDelta::FromMilliseconds(ms));
} }
void NativeWindow::SetHtmlApiFullscreen(bool enter_fullscreen) {
SetFullScreen(enter_fullscreen);
fullscreen_ = enter_fullscreen;
}
void NativeWindow::NotifyWindowUnresponsive() { void NativeWindow::NotifyWindowUnresponsive() {
window_unresposive_closure_.Cancel(); window_unresposive_closure_.Cancel();

View file

@ -195,6 +195,9 @@ class NativeWindow : public brightray::DefaultWebContentsDelegate,
int child_process_id); int child_process_id);
void OverrideWebkitPrefs(content::WebPreferences* prefs); void OverrideWebkitPrefs(content::WebPreferences* prefs);
// Set fullscreen mode triggered by html api.
void SetHtmlApiFullscreen(bool enter_fullscreen);
// Public API used by platform-dependent delegates and observers to send UI // Public API used by platform-dependent delegates and observers to send UI
// related notifications. // related notifications.
void NotifyWindowClosed(); void NotifyWindowClosed();
@ -217,6 +220,8 @@ class NativeWindow : public brightray::DefaultWebContentsDelegate,
bool has_frame() const { return has_frame_; } bool has_frame() const { return has_frame_; }
bool IsHtmlApiFullscreen() const { return fullscreen_; }
void set_has_dialog_attached(bool has_dialog_attached) { void set_has_dialog_attached(bool has_dialog_attached) {
has_dialog_attached_ = has_dialog_attached; has_dialog_attached_ = has_dialog_attached;
} }
@ -343,6 +348,9 @@ class NativeWindow : public brightray::DefaultWebContentsDelegate,
// There is a dialog that has been attached to window. // There is a dialog that has been attached to window.
bool has_dialog_attached_; bool has_dialog_attached_;
// Whether window is fullscreened by HTML5 api.
bool fullscreen_;
// Closure that would be called when window is unresponsive when closing, // Closure that would be called when window is unresponsive when closing,
// it should be cancelled when we can prove that the window is responsive. // it should be cancelled when we can prove that the window is responsive.
base::CancelableClosure window_unresposive_closure_; base::CancelableClosure window_unresposive_closure_;