| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2013 Apple Inc. All rights | 2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2013 Apple Inc. All rights |
| 3 * reserved. | 3 * reserved. |
| 4 * Copyright (C) 2008 Torch Mobile Inc. All rights reserved. | 4 * Copyright (C) 2008 Torch Mobile Inc. All rights reserved. |
| 5 * (http://www.torchmobile.com/) | 5 * (http://www.torchmobile.com/) |
| 6 * | 6 * |
| 7 * This library is free software; you can redistribute it and/or | 7 * This library is free software; you can redistribute it and/or |
| 8 * modify it under the terms of the GNU Library General Public | 8 * modify it under the terms of the GNU Library General Public |
| 9 * License as published by the Free Software Foundation; either | 9 * License as published by the Free Software Foundation; either |
| 10 * version 2 of the License, or (at your option) any later version. | 10 * version 2 of the License, or (at your option) any later version. |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 53 class ContextMenuController; | 53 class ContextMenuController; |
| 54 class Document; | 54 class Document; |
| 55 class DragCaretController; | 55 class DragCaretController; |
| 56 class DragController; | 56 class DragController; |
| 57 class EditorClient; | 57 class EditorClient; |
| 58 class FocusController; | 58 class FocusController; |
| 59 class Frame; | 59 class Frame; |
| 60 class FrameHost; | 60 class FrameHost; |
| 61 class PluginData; | 61 class PluginData; |
| 62 class PointerLockController; | 62 class PointerLockController; |
| 63 class ScopedPageSuspender; |
| 63 class ScrollingCoordinator; | 64 class ScrollingCoordinator; |
| 64 class Settings; | 65 class Settings; |
| 65 class SpellCheckerClient; | 66 class SpellCheckerClient; |
| 66 class ValidationMessageClient; | 67 class ValidationMessageClient; |
| 67 class WebLayerTreeView; | 68 class WebLayerTreeView; |
| 68 | 69 |
| 69 typedef uint64_t LinkHash; | 70 typedef uint64_t LinkHash; |
| 70 | 71 |
| 71 float deviceScaleFactor(LocalFrame*); | 72 float deviceScaleFactor(LocalFrame*); |
| 72 | 73 |
| (...skipping 24 matching lines...) Expand all Loading... |
| 97 | 98 |
| 98 static Page* create(PageClients& pageClients) { | 99 static Page* create(PageClients& pageClients) { |
| 99 return new Page(pageClients); | 100 return new Page(pageClients); |
| 100 } | 101 } |
| 101 | 102 |
| 102 // An "ordinary" page is a fully-featured page owned by a web view. | 103 // An "ordinary" page is a fully-featured page owned by a web view. |
| 103 static Page* createOrdinary(PageClients&); | 104 static Page* createOrdinary(PageClients&); |
| 104 | 105 |
| 105 ~Page() override; | 106 ~Page() override; |
| 106 | 107 |
| 107 void willBeClosed(); | 108 void closeSoon(); |
| 109 bool isClosing() const { return m_isClosing; } |
| 108 | 110 |
| 109 using PageSet = PersistentHeapHashSet<WeakMember<Page>>; | 111 using PageSet = PersistentHeapHashSet<WeakMember<Page>>; |
| 110 | 112 |
| 111 // Return the current set of full-fledged, ordinary pages. | 113 // Return the current set of full-fledged, ordinary pages. |
| 112 // Each created and owned by a WebView. | 114 // Each created and owned by a WebView. |
| 113 // | 115 // |
| 114 // This set does not include Pages created for other, internal purposes | 116 // This set does not include Pages created for other, internal purposes |
| 115 // (SVGImages, inspector overlays, page popups etc.) | 117 // (SVGImages, inspector overlays, page popups etc.) |
| 116 static PageSet& ordinaryPages(); | 118 static PageSet& ordinaryPages(); |
| 117 | 119 |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 180 Deprecation& deprecation() { return m_deprecation; } | 182 Deprecation& deprecation() { return m_deprecation; } |
| 181 HostsUsingFeatures& hostsUsingFeatures() { return m_hostsUsingFeatures; } | 183 HostsUsingFeatures& hostsUsingFeatures() { return m_hostsUsingFeatures; } |
| 182 | 184 |
| 183 void setTabKeyCyclesThroughElements(bool b) { | 185 void setTabKeyCyclesThroughElements(bool b) { |
| 184 m_tabKeyCyclesThroughElements = b; | 186 m_tabKeyCyclesThroughElements = b; |
| 185 } | 187 } |
| 186 bool tabKeyCyclesThroughElements() const { | 188 bool tabKeyCyclesThroughElements() const { |
| 187 return m_tabKeyCyclesThroughElements; | 189 return m_tabKeyCyclesThroughElements; |
| 188 } | 190 } |
| 189 | 191 |
| 190 // DefersLoading is used to delay loads during modal dialogs. | 192 // Suspension is used to implement the "Optionally, pause while waiting for |
| 191 // Modal dialogs are supposed to freeze all background processes | 193 // the user to acknowledge the message" step of simple dialog processing: |
| 192 // in the page, including prevent additional loads from staring/continuing. | 194 // https://html.spec.whatwg.org/multipage/webappapis.html#simple-dialogs |
| 193 void setSuspended(bool); | 195 // |
| 196 // Per https://html.spec.whatwg.org/multipage/webappapis.html#pause, no loads |
| 197 // are allowed to start/continue in this state, and all background processing |
| 198 // is also suspended. |
| 194 bool suspended() const { return m_suspended; } | 199 bool suspended() const { return m_suspended; } |
| 195 | 200 |
| 196 void setPageScaleFactor(float); | 201 void setPageScaleFactor(float); |
| 197 float pageScaleFactor() const; | 202 float pageScaleFactor() const; |
| 198 | 203 |
| 199 float deviceScaleFactor() const { return m_deviceScaleFactor; } | 204 float deviceScaleFactor() const { return m_deviceScaleFactor; } |
| 200 void setDeviceScaleFactor(float); | 205 void setDeviceScaleFactor(float); |
| 201 | 206 |
| 202 static void allVisitedStateChanged(bool invalidateVisitedLinkHashes); | 207 static void allVisitedStateChanged(bool invalidateVisitedLinkHashes); |
| 203 static void visitedStateChanged(LinkHash visitedHash); | 208 static void visitedStateChanged(LinkHash visitedHash); |
| (...skipping 17 matching lines...) Expand all Loading... |
| 221 static void networkStateChanged(bool online); | 226 static void networkStateChanged(bool online); |
| 222 | 227 |
| 223 DECLARE_TRACE(); | 228 DECLARE_TRACE(); |
| 224 | 229 |
| 225 void layerTreeViewInitialized(WebLayerTreeView&); | 230 void layerTreeViewInitialized(WebLayerTreeView&); |
| 226 void willCloseLayerTreeView(WebLayerTreeView&); | 231 void willCloseLayerTreeView(WebLayerTreeView&); |
| 227 | 232 |
| 228 void willBeDestroyed(); | 233 void willBeDestroyed(); |
| 229 | 234 |
| 230 private: | 235 private: |
| 236 friend class ScopedPageSuspender; |
| 237 |
| 231 explicit Page(PageClients&); | 238 explicit Page(PageClients&); |
| 232 | 239 |
| 233 void initGroup(); | 240 void initGroup(); |
| 234 | 241 |
| 235 // SettingsDelegate overrides. | 242 // SettingsDelegate overrides. |
| 236 void settingsChanged(SettingsDelegate::ChangeType) override; | 243 void settingsChanged(SettingsDelegate::ChangeType) override; |
| 237 | 244 |
| 245 // ScopedPageSuspender helpers. |
| 246 void setSuspended(bool); |
| 247 |
| 238 Member<PageAnimator> m_animator; | 248 Member<PageAnimator> m_animator; |
| 239 const Member<AutoscrollController> m_autoscrollController; | 249 const Member<AutoscrollController> m_autoscrollController; |
| 240 Member<ChromeClient> m_chromeClient; | 250 Member<ChromeClient> m_chromeClient; |
| 241 const Member<DragCaretController> m_dragCaretController; | 251 const Member<DragCaretController> m_dragCaretController; |
| 242 const Member<DragController> m_dragController; | 252 const Member<DragController> m_dragController; |
| 243 const Member<FocusController> m_focusController; | 253 const Member<FocusController> m_focusController; |
| 244 const Member<ContextMenuController> m_contextMenuController; | 254 const Member<ContextMenuController> m_contextMenuController; |
| 245 const Member<PointerLockController> m_pointerLockController; | 255 const Member<PointerLockController> m_pointerLockController; |
| 246 Member<ScrollingCoordinator> m_scrollingCoordinator; | 256 Member<ScrollingCoordinator> m_scrollingCoordinator; |
| 247 | 257 |
| (...skipping 15 matching lines...) Expand all Loading... |
| 263 | 273 |
| 264 EditorClient* const m_editorClient; | 274 EditorClient* const m_editorClient; |
| 265 SpellCheckerClient* const m_spellCheckerClient; | 275 SpellCheckerClient* const m_spellCheckerClient; |
| 266 Member<ValidationMessageClient> m_validationMessageClient; | 276 Member<ValidationMessageClient> m_validationMessageClient; |
| 267 | 277 |
| 268 UseCounter m_useCounter; | 278 UseCounter m_useCounter; |
| 269 Deprecation m_deprecation; | 279 Deprecation m_deprecation; |
| 270 HostsUsingFeatures m_hostsUsingFeatures; | 280 HostsUsingFeatures m_hostsUsingFeatures; |
| 271 | 281 |
| 272 bool m_openedByDOM; | 282 bool m_openedByDOM; |
| 283 // Set to true when window.close() has been called and the Page will be |
| 284 // destroyed. The browsing contexts in this page should no longer be |
| 285 // discoverable via JS. |
| 286 // TODO(dcheng): Try to remove |DOMWindow::m_windowIsClosing| in favor of |
| 287 // this. However, this depends on resolving https://crbug.com/674641 |
| 288 bool m_isClosing; |
| 273 | 289 |
| 274 bool m_tabKeyCyclesThroughElements; | 290 bool m_tabKeyCyclesThroughElements; |
| 275 bool m_suspended; | 291 bool m_suspended; |
| 276 | 292 |
| 277 float m_deviceScaleFactor; | 293 float m_deviceScaleFactor; |
| 278 | 294 |
| 279 PageVisibilityState m_visibilityState; | 295 PageVisibilityState m_visibilityState; |
| 280 | 296 |
| 281 bool m_isCursorVisible; | 297 bool m_isCursorVisible; |
| 282 | 298 |
| 283 #if ENABLE(ASSERT) | 299 #if ENABLE(ASSERT) |
| 284 bool m_isPainting; | 300 bool m_isPainting; |
| 285 #endif | 301 #endif |
| 286 | 302 |
| 287 // A pointer to all the interfaces provided to in-process Frames for this | 303 // A pointer to all the interfaces provided to in-process Frames for this |
| 288 // Page. | 304 // Page. |
| 289 // FIXME: Most of the members of Page should move onto FrameHost. | 305 // FIXME: Most of the members of Page should move onto FrameHost. |
| 290 Member<FrameHost> m_frameHost; | 306 Member<FrameHost> m_frameHost; |
| 291 }; | 307 }; |
| 292 | 308 |
| 293 extern template class CORE_EXTERN_TEMPLATE_EXPORT Supplement<Page>; | 309 extern template class CORE_EXTERN_TEMPLATE_EXPORT Supplement<Page>; |
| 294 | 310 |
| 295 } // namespace blink | 311 } // namespace blink |
| 296 | 312 |
| 297 #endif // Page_h | 313 #endif // Page_h |
| OLD | NEW |