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

Side by Side Diff: third_party/WebKit/Source/web/WebViewImpl.h

Issue 1991273003: Fire visibilityChange event on out-of-process iframes. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: comments Created 4 years, 5 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 /* 1 /*
2 * Copyright (C) 2010 Google Inc. All rights reserved. 2 * Copyright (C) 2010 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
93 class WebRemoteFrame; 93 class WebRemoteFrame;
94 class WebSelection; 94 class WebSelection;
95 class WebSettingsImpl; 95 class WebSettingsImpl;
96 class WebViewScheduler; 96 class WebViewScheduler;
97 97
98 class WEB_EXPORT WebViewImpl final : WTF_NON_EXPORTED_BASE(public WebView) 98 class WEB_EXPORT WebViewImpl final : WTF_NON_EXPORTED_BASE(public WebView)
99 , public RefCounted<WebViewImpl> 99 , public RefCounted<WebViewImpl>
100 , WTF_NON_EXPORTED_BASE(public WebGestureCurveTarget) 100 , WTF_NON_EXPORTED_BASE(public WebGestureCurveTarget)
101 , public PageWidgetEventHandler { 101 , public PageWidgetEventHandler {
102 public: 102 public:
103 static WebViewImpl* create(WebViewClient*); 103 static WebViewImpl* create(WebViewClient*, WebPageVisibilityState);
104 static HashSet<WebViewImpl*>& allInstances(); 104 static HashSet<WebViewImpl*>& allInstances();
105 105
106 // WebWidget methods: 106 // WebWidget methods:
107 void close() override; 107 void close() override;
108 WebSize size() override; 108 WebSize size() override;
109 void resize(const WebSize&) override; 109 void resize(const WebSize&) override;
110 void resizeVisualViewport(const WebSize&) override; 110 void resizeVisualViewport(const WebSize&) override;
111 void didEnterFullScreen() override; 111 void didEnterFullScreen() override;
112 void didExitFullScreen() override; 112 void didExitFullScreen() override;
113 113
(...skipping 418 matching lines...) Expand 10 before | Expand all | Expand 10 after
532 532
533 void scrollAndRescaleViewports(float scaleFactor, const IntPoint& mainFrameO rigin, const FloatPoint& visualViewportOrigin); 533 void scrollAndRescaleViewports(float scaleFactor, const IntPoint& mainFrameO rigin, const FloatPoint& visualViewportOrigin);
534 534
535 float maximumLegiblePageScale() const; 535 float maximumLegiblePageScale() const;
536 void refreshPageScaleFactorAfterLayout(); 536 void refreshPageScaleFactorAfterLayout();
537 IntSize contentsSize() const; 537 IntSize contentsSize() const;
538 538
539 void performResize(); 539 void performResize();
540 void resizeViewWhileAnchored(FrameView*, float topControlsHeight, bool topCo ntrolsShrinkLayout); 540 void resizeViewWhileAnchored(FrameView*, float topControlsHeight, bool topCo ntrolsShrinkLayout);
541 541
542 // Overrides the compositor visibility. See the description of
543 // m_overrideCompositorVisibility for more details.
544 void setCompositorVisibility(bool);
545
542 friend class WebView; // So WebView::Create can call our constructor 546 friend class WebView; // So WebView::Create can call our constructor
547 friend class WebViewFrameWidget;
543 friend class WTF::RefCounted<WebViewImpl>; 548 friend class WTF::RefCounted<WebViewImpl>;
544 friend void setCurrentInputEventForTest(const WebInputEvent*); 549 friend void setCurrentInputEventForTest(const WebInputEvent*);
545 550
546 enum DragAction { 551 enum DragAction {
547 DragEnter, 552 DragEnter,
548 DragOver 553 DragOver
549 }; 554 };
550 555
551 explicit WebViewImpl(WebViewClient*); 556 explicit WebViewImpl(WebViewClient*, WebPageVisibilityState);
552 ~WebViewImpl() override; 557 ~WebViewImpl() override;
553 558
554 int textInputFlags(); 559 int textInputFlags();
555 560
556 WebString inputModeOfFocusedElement(); 561 WebString inputModeOfFocusedElement();
557 562
558 // Returns true if the event was actually processed. 563 // Returns true if the event was actually processed.
559 bool keyEventDefault(const WebKeyboardEvent&); 564 bool keyEventDefault(const WebKeyboardEvent&);
560 565
561 bool confirmComposition(const WebString& text, ConfirmCompositionBehavior); 566 bool confirmComposition(const WebString& text, ConfirmCompositionBehavior);
(...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after
750 Persistent<EventListener> m_popupMouseWheelEventListener; 755 Persistent<EventListener> m_popupMouseWheelEventListener;
751 756
752 WebPageImportanceSignals m_pageImportanceSignals; 757 WebPageImportanceSignals m_pageImportanceSignals;
753 758
754 const std::unique_ptr<WebViewScheduler> m_scheduler; 759 const std::unique_ptr<WebViewScheduler> m_scheduler;
755 760
756 // Manages the layer tree created for this page in Slimming Paint v2. 761 // Manages the layer tree created for this page in Slimming Paint v2.
757 PaintArtifactCompositor m_paintArtifactCompositor; 762 PaintArtifactCompositor m_paintArtifactCompositor;
758 763
759 double m_lastFrameTimeMonotonic; 764 double m_lastFrameTimeMonotonic;
765
766 // TODO(lfg): This is used in order to disable compositor visibility while
767 // the page is still visible. This is needed until the WebView and WebWidget
768 // split is complete, since in out-of-process iframes the page can be
769 // visible, but the WebView should not be used as a widget.
770 bool m_overrideCompositorVisibility;
760 }; 771 };
761 772
762 // We have no ways to check if the specified WebView is an instance of 773 // We have no ways to check if the specified WebView is an instance of
763 // WebViewImpl because WebViewImpl is the only implementation of WebView. 774 // WebViewImpl because WebViewImpl is the only implementation of WebView.
764 DEFINE_TYPE_CASTS(WebViewImpl, WebView, webView, true, true); 775 DEFINE_TYPE_CASTS(WebViewImpl, WebView, webView, true, true);
765 776
766 } // namespace blink 777 } // namespace blink
767 778
768 #endif 779 #endif
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/web/WebViewFrameWidget.cpp ('k') | third_party/WebKit/Source/web/WebViewImpl.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698