1 /**************************************************************************** 2 ** 3 ** Copyright (C) 2016 The Qt Company Ltd. 4 ** Contact: https://www.qt.io/licensing/ 5 ** 6 ** This file is part of the QtWebEngine module of the Qt Toolkit. 7 ** 8 ** $QT_BEGIN_LICENSE:LGPL$ 9 ** Commercial License Usage 10 ** Licensees holding valid commercial Qt licenses may use this file in 11 ** accordance with the commercial license agreement provided with the 12 ** Software or, alternatively, in accordance with the terms contained in 13 ** a written agreement between you and The Qt Company. For licensing terms 14 ** and conditions see https://www.qt.io/terms-conditions. For further 15 ** information use the contact form at https://www.qt.io/contact-us. 16 ** 17 ** GNU Lesser General Public License Usage 18 ** Alternatively, this file may be used under the terms of the GNU Lesser 19 ** General Public License version 3 as published by the Free Software 20 ** Foundation and appearing in the file LICENSE.LGPL3 included in the 21 ** packaging of this file. Please review the following information to 22 ** ensure the GNU Lesser General Public License version 3 requirements 23 ** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. 24 ** 25 ** GNU General Public License Usage 26 ** Alternatively, this file may be used under the terms of the GNU 27 ** General Public License version 2.0 or (at your option) the GNU General 28 ** Public license version 3 or any later version approved by the KDE Free 29 ** Qt Foundation. The licenses are as published by the Free Software 30 ** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 31 ** included in the packaging of this file. Please review the following 32 ** information to ensure the GNU General Public License requirements will 33 ** be met: https://www.gnu.org/licenses/gpl-2.0.html and 34 ** https://www.gnu.org/licenses/gpl-3.0.html. 35 ** 36 ** $QT_END_LICENSE$ 37 ** 38 ****************************************************************************/ 39 40 #ifndef QQUICKWEBENGINEVIEW_P_H 41 #define QQUICKWEBENGINEVIEW_P_H 42 43 // 44 // W A R N I N G 45 // ------------- 46 // 47 // This file is not part of the Qt API. It exists purely as an 48 // implementation detail. This header file may change from version to 49 // version without notice, or even be removed. 50 // 51 // We mean it. 52 // 53 54 #include <QtWebEngine/private/qtwebengineglobal_p.h> 55 #include <QQuickItem> 56 #include <QtGui/qcolor.h> 57 58 #include "qquickwebenginescript.h" 59 60 QT_BEGIN_NAMESPACE 61 62 class QQmlWebChannel; 63 class QQuickContextMenuBuilder; 64 class QQuickWebEngineAction; 65 class QQuickWebEngineAuthenticationDialogRequest; 66 class QQuickWebEngineCertificateError; 67 class QQuickWebEngineClientCertificateSelection; 68 class QQuickWebEngineColorDialogRequest; 69 class QQuickWebEngineContextMenuRequest; 70 class QQuickWebEngineFaviconProvider; 71 class QQuickWebEngineFileDialogRequest; 72 class QQuickWebEngineHistory; 73 class QQuickWebEngineJavaScriptDialogRequest; 74 class QQuickWebEngineLoadRequest; 75 class QQuickWebEngineNavigationRequest; 76 class QQuickWebEngineNewViewRequest; 77 class QQuickWebEngineProfile; 78 class QQuickWebEngineSettings; 79 class QQuickWebEngineTooltipRequest; 80 class QQuickWebEngineFormValidationMessageRequest; 81 class QQuickWebEngineViewPrivate; 82 class QWebEngineFindTextResult; 83 class QWebEngineQuotaRequest; 84 class QWebEngineRegisterProtocolHandlerRequest; 85 86 #if QT_CONFIG(webengine_testsupport) 87 class QQuickWebEngineTestSupport; 88 #endif 89 90 class Q_WEBENGINE_PRIVATE_EXPORT QQuickWebEngineFullScreenRequest { 91 Q_GADGET 92 Q_PROPERTY(QUrl origin READ origin CONSTANT FINAL) 93 Q_PROPERTY(bool toggleOn READ toggleOn CONSTANT FINAL) 94 public: 95 QQuickWebEngineFullScreenRequest(); 96 QQuickWebEngineFullScreenRequest(QQuickWebEngineViewPrivate *viewPrivate, const QUrl &origin, bool toggleOn); 97 98 Q_INVOKABLE void accept(); 99 Q_INVOKABLE void reject(); origin()100 QUrl origin() const { return m_origin; } toggleOn()101 bool toggleOn() const { return m_toggleOn; } 102 103 private: 104 QQuickWebEngineViewPrivate *m_viewPrivate; 105 const QUrl m_origin; 106 const bool m_toggleOn; 107 }; 108 109 #define LATEST_WEBENGINEVIEW_REVISION 10 110 111 class Q_WEBENGINE_PRIVATE_EXPORT QQuickWebEngineView : public QQuickItem { 112 Q_OBJECT 113 Q_CLASSINFO("RegisterEnumClassesUnscoped", "false") 114 Q_PROPERTY(QUrl url READ url WRITE setUrl NOTIFY urlChanged FINAL) 115 Q_PROPERTY(QUrl icon READ icon NOTIFY iconChanged FINAL) 116 Q_PROPERTY(bool loading READ isLoading NOTIFY loadingChanged FINAL) 117 Q_PROPERTY(int loadProgress READ loadProgress NOTIFY loadProgressChanged FINAL) 118 Q_PROPERTY(QString title READ title NOTIFY titleChanged FINAL) 119 Q_PROPERTY(bool canGoBack READ canGoBack NOTIFY urlChanged FINAL) 120 Q_PROPERTY(bool canGoForward READ canGoForward NOTIFY urlChanged FINAL) 121 Q_PROPERTY(bool isFullScreen READ isFullScreen NOTIFY isFullScreenChanged REVISION 1 FINAL) 122 Q_PROPERTY(qreal zoomFactor READ zoomFactor WRITE setZoomFactor NOTIFY zoomFactorChanged REVISION 1 FINAL) 123 Q_PROPERTY(QQuickWebEngineProfile *profile READ profile WRITE setProfile NOTIFY profileChanged FINAL REVISION 1) 124 Q_PROPERTY(QQuickWebEngineSettings *settings READ settings REVISION 1 CONSTANT FINAL) 125 Q_PROPERTY(QQuickWebEngineHistory *navigationHistory READ navigationHistory CONSTANT FINAL REVISION 1) 126 Q_PROPERTY(QQmlWebChannel *webChannel READ webChannel WRITE setWebChannel NOTIFY webChannelChanged REVISION 1 FINAL) 127 Q_PROPERTY(QQmlListProperty<QQuickWebEngineScript> userScripts READ userScripts FINAL REVISION 1) 128 Q_PROPERTY(bool activeFocusOnPress READ activeFocusOnPress WRITE setActiveFocusOnPress NOTIFY activeFocusOnPressChanged REVISION 2 FINAL) 129 Q_PROPERTY(QColor backgroundColor READ backgroundColor WRITE setBackgroundColor NOTIFY backgroundColorChanged REVISION 2 FINAL) 130 Q_PROPERTY(QSizeF contentsSize READ contentsSize NOTIFY contentsSizeChanged FINAL REVISION 3) 131 Q_PROPERTY(QPointF scrollPosition READ scrollPosition NOTIFY scrollPositionChanged FINAL REVISION 3) 132 Q_PROPERTY(bool audioMuted READ isAudioMuted WRITE setAudioMuted NOTIFY audioMutedChanged FINAL REVISION 3) 133 Q_PROPERTY(bool recentlyAudible READ recentlyAudible NOTIFY recentlyAudibleChanged FINAL REVISION 3) 134 Q_PROPERTY(uint webChannelWorld READ webChannelWorld WRITE setWebChannelWorld NOTIFY webChannelWorldChanged REVISION 3 FINAL) 135 136 Q_PROPERTY(QQuickWebEngineView *inspectedView READ inspectedView WRITE setInspectedView NOTIFY inspectedViewChanged REVISION 7 FINAL) 137 Q_PROPERTY(QQuickWebEngineView *devToolsView READ devToolsView WRITE setDevToolsView NOTIFY devToolsViewChanged REVISION 7 FINAL) 138 #if QT_CONFIG(webengine_testsupport) 139 Q_PROPERTY(QQuickWebEngineTestSupport *testSupport READ testSupport WRITE setTestSupport NOTIFY testSupportChanged FINAL) 140 #endif 141 142 Q_PROPERTY(LifecycleState lifecycleState READ lifecycleState WRITE setLifecycleState NOTIFY lifecycleStateChanged REVISION 10 FINAL) 143 Q_PROPERTY(LifecycleState recommendedState READ recommendedState NOTIFY recommendedStateChanged REVISION 10 FINAL) 144 145 Q_PROPERTY(qint64 renderProcessPid READ renderProcessPid NOTIFY renderProcessPidChanged FINAL REVISION 11) 146 147 public: 148 QQuickWebEngineView(QQuickItem *parent = 0); 149 ~QQuickWebEngineView(); 150 151 QUrl url() const; 152 void setUrl(const QUrl&); 153 QUrl icon() const; 154 bool isLoading() const; 155 int loadProgress() const; 156 QString title() const; 157 bool canGoBack() const; 158 bool canGoForward() const; 159 bool isFullScreen() const; 160 qreal zoomFactor() const; 161 void setZoomFactor(qreal arg); 162 QColor backgroundColor() const; 163 void setBackgroundColor(const QColor &color); 164 QSizeF contentsSize() const; 165 QPointF scrollPosition() const; 166 167 // must match WebContentsAdapterClient::NavigationRequestAction 168 enum NavigationRequestAction { 169 AcceptRequest, 170 // Make room in the valid range of the enum so 171 // we can expose extra actions. 172 IgnoreRequest = 0xFF 173 }; 174 Q_ENUM(NavigationRequestAction) 175 176 // must match WebContentsAdapterClient::NavigationType 177 enum NavigationType { 178 LinkClickedNavigation, 179 TypedNavigation, 180 FormSubmittedNavigation, 181 BackForwardNavigation, 182 ReloadNavigation, 183 OtherNavigation, 184 RedirectNavigation, 185 }; 186 Q_ENUM(NavigationType) 187 188 enum LoadStatus { 189 LoadStartedStatus, 190 LoadStoppedStatus, 191 LoadSucceededStatus, 192 LoadFailedStatus 193 }; 194 Q_ENUM(LoadStatus) 195 196 enum ErrorDomain { 197 NoErrorDomain, 198 InternalErrorDomain, 199 ConnectionErrorDomain, 200 CertificateErrorDomain, 201 HttpErrorDomain, 202 FtpErrorDomain, 203 DnsErrorDomain 204 }; 205 Q_ENUM(ErrorDomain) 206 207 enum NewViewDestination { 208 NewViewInWindow, 209 NewViewInTab, 210 NewViewInDialog, 211 NewViewInBackgroundTab 212 }; 213 Q_ENUM(NewViewDestination) 214 215 enum Feature { 216 MediaAudioCapture, 217 MediaVideoCapture, 218 MediaAudioVideoCapture, 219 Geolocation, 220 DesktopVideoCapture, 221 DesktopAudioVideoCapture, 222 Notifications, 223 }; 224 Q_ENUM(Feature) 225 226 enum WebAction { 227 NoWebAction = - 1, 228 Back, 229 Forward, 230 Stop, 231 Reload, 232 233 Cut, 234 Copy, 235 Paste, 236 237 Undo, 238 Redo, 239 SelectAll, 240 ReloadAndBypassCache, 241 242 PasteAndMatchStyle, 243 244 OpenLinkInThisWindow, 245 OpenLinkInNewWindow, 246 OpenLinkInNewTab, 247 CopyLinkToClipboard, 248 DownloadLinkToDisk, 249 250 CopyImageToClipboard, 251 CopyImageUrlToClipboard, 252 DownloadImageToDisk, 253 254 CopyMediaUrlToClipboard, 255 ToggleMediaControls, 256 ToggleMediaLoop, 257 ToggleMediaPlayPause, 258 ToggleMediaMute, 259 DownloadMediaToDisk, 260 261 InspectElement, 262 ExitFullScreen, 263 RequestClose, 264 Unselect, 265 SavePage, 266 ViewSource, 267 268 ToggleBold, 269 ToggleItalic, 270 ToggleUnderline, 271 ToggleStrikethrough, 272 273 AlignLeft, 274 AlignCenter, 275 AlignRight, 276 AlignJustified, 277 Indent, 278 Outdent, 279 280 InsertOrderedList, 281 InsertUnorderedList, 282 283 WebActionCount 284 }; 285 Q_ENUM(WebAction) 286 287 // must match WebContentsAdapterClient::JavaScriptConsoleMessageLevel 288 enum JavaScriptConsoleMessageLevel { 289 InfoMessageLevel = 0, 290 WarningMessageLevel, 291 ErrorMessageLevel 292 }; 293 Q_ENUM(JavaScriptConsoleMessageLevel) 294 295 // must match WebContentsAdapterClient::RenderProcessTerminationStatus 296 enum RenderProcessTerminationStatus { 297 NormalTerminationStatus = 0, 298 AbnormalTerminationStatus, 299 CrashedTerminationStatus, 300 KilledTerminationStatus 301 }; 302 Q_ENUM(RenderProcessTerminationStatus) 303 304 enum FindFlag { 305 FindBackward = 1, 306 FindCaseSensitively = 2, 307 }; 308 Q_DECLARE_FLAGS(FindFlags, FindFlag) 309 Q_FLAG(FindFlags) 310 311 // must match QPageSize::PageSizeId 312 enum PrintedPageSizeId { 313 // Existing Qt sizes 314 A4, 315 B5, 316 Letter, 317 Legal, 318 Executive, 319 A0, 320 A1, 321 A2, 322 A3, 323 A5, 324 A6, 325 A7, 326 A8, 327 A9, 328 B0, 329 B1, 330 B10, 331 B2, 332 B3, 333 B4, 334 B6, 335 B7, 336 B8, 337 B9, 338 C5E, 339 Comm10E, 340 DLE, 341 Folio, 342 Ledger, 343 Tabloid, 344 Custom, 345 346 // New values derived from PPD standard 347 A10, 348 A3Extra, 349 A4Extra, 350 A4Plus, 351 A4Small, 352 A5Extra, 353 B5Extra, 354 355 JisB0, 356 JisB1, 357 JisB2, 358 JisB3, 359 JisB4, 360 JisB5, 361 JisB6, 362 JisB7, 363 JisB8, 364 JisB9, 365 JisB10, 366 367 // AnsiA = Letter, 368 // AnsiB = Ledger, 369 AnsiC, 370 AnsiD, 371 AnsiE, 372 LegalExtra, 373 LetterExtra, 374 LetterPlus, 375 LetterSmall, 376 TabloidExtra, 377 378 ArchA, 379 ArchB, 380 ArchC, 381 ArchD, 382 ArchE, 383 384 Imperial7x9, 385 Imperial8x10, 386 Imperial9x11, 387 Imperial9x12, 388 Imperial10x11, 389 Imperial10x13, 390 Imperial10x14, 391 Imperial12x11, 392 Imperial15x11, 393 394 ExecutiveStandard, 395 Note, 396 Quarto, 397 Statement, 398 SuperA, 399 SuperB, 400 Postcard, 401 DoublePostcard, 402 Prc16K, 403 Prc32K, 404 Prc32KBig, 405 406 FanFoldUS, 407 FanFoldGerman, 408 FanFoldGermanLegal, 409 410 EnvelopeB4, 411 EnvelopeB5, 412 EnvelopeB6, 413 EnvelopeC0, 414 EnvelopeC1, 415 EnvelopeC2, 416 EnvelopeC3, 417 EnvelopeC4, 418 // EnvelopeC5 = C5E, 419 EnvelopeC6, 420 EnvelopeC65, 421 EnvelopeC7, 422 // EnvelopeDL = DLE, 423 424 Envelope9, 425 // Envelope10 = Comm10E, 426 Envelope11, 427 Envelope12, 428 Envelope14, 429 EnvelopeMonarch, 430 EnvelopePersonal, 431 432 EnvelopeChou3, 433 EnvelopeChou4, 434 EnvelopeInvite, 435 EnvelopeItalian, 436 EnvelopeKaku2, 437 EnvelopeKaku3, 438 EnvelopePrc1, 439 EnvelopePrc2, 440 EnvelopePrc3, 441 EnvelopePrc4, 442 EnvelopePrc5, 443 EnvelopePrc6, 444 EnvelopePrc7, 445 EnvelopePrc8, 446 EnvelopePrc9, 447 EnvelopePrc10, 448 EnvelopeYou4, 449 450 // Last item, with commonly used synynoms from QPagedPrintEngine / QPrinter 451 LastPageSize = EnvelopeYou4, 452 NPageSize = LastPageSize, 453 NPaperSize = LastPageSize, 454 455 // Convenience overloads for naming consistency 456 AnsiA = Letter, 457 AnsiB = Ledger, 458 EnvelopeC5 = C5E, 459 EnvelopeDL = DLE, 460 Envelope10 = Comm10E 461 }; 462 Q_ENUM(PrintedPageSizeId) 463 464 // must match QPageLayout::Orientation 465 enum PrintedPageOrientation { 466 Portrait, 467 Landscape 468 }; 469 Q_ENUM(PrintedPageOrientation) 470 471 // must match WebContentsAdapterClient::LifecycleState 472 enum class LifecycleState { 473 Active, 474 Frozen, 475 Discarded, 476 }; 477 Q_ENUM(LifecycleState) 478 479 // QmlParserStatus 480 void componentComplete() override; 481 482 QQuickWebEngineProfile *profile(); 483 void setProfile(QQuickWebEngineProfile *); 484 QQmlListProperty<QQuickWebEngineScript> userScripts(); 485 486 QQuickWebEngineSettings *settings(); 487 QQmlWebChannel *webChannel(); 488 void setWebChannel(QQmlWebChannel *); 489 QQuickWebEngineHistory *navigationHistory() const; 490 uint webChannelWorld() const; 491 void setWebChannelWorld(uint); 492 Q_REVISION(8) Q_INVOKABLE QQuickWebEngineAction *action(WebAction action); 493 494 bool isAudioMuted() const; 495 void setAudioMuted(bool muted); 496 bool recentlyAudible() const; 497 498 qint64 renderProcessPid() const; 499 500 #if QT_CONFIG(webengine_testsupport) 501 QQuickWebEngineTestSupport *testSupport() const; 502 void setTestSupport(QQuickWebEngineTestSupport *testSupport); 503 #endif 504 505 bool activeFocusOnPress() const; 506 507 void setInspectedView(QQuickWebEngineView *); 508 QQuickWebEngineView *inspectedView() const; 509 void setDevToolsView(QQuickWebEngineView *); 510 QQuickWebEngineView *devToolsView() const; 511 512 LifecycleState lifecycleState() const; 513 void setLifecycleState(LifecycleState state); 514 515 LifecycleState recommendedState() const; 516 517 public Q_SLOTS: 518 void runJavaScript(const QString&, const QJSValue & = QJSValue()); 519 Q_REVISION(3) void runJavaScript(const QString&, quint32 worldId, const QJSValue & = QJSValue()); 520 void loadHtml(const QString &html, const QUrl &baseUrl = QUrl()); 521 void goBack(); 522 void goForward(); 523 Q_REVISION(1) void goBackOrForward(int index); 524 void reload(); 525 Q_REVISION(1) void reloadAndBypassCache(); 526 void stop(); 527 Q_REVISION(1) void findText(const QString &subString, FindFlags options = { }, const QJSValue &callback = QJSValue()); 528 Q_REVISION(1) void fullScreenCancelled(); 529 Q_REVISION(1) void grantFeaturePermission(const QUrl &securityOrigin, Feature, bool granted); 530 Q_REVISION(2) void setActiveFocusOnPress(bool arg); 531 Q_REVISION(2) void triggerWebAction(WebAction action); 532 Q_REVISION(3) void printToPdf(const QString &filePath, PrintedPageSizeId pageSizeId = PrintedPageSizeId::A4, PrintedPageOrientation orientation = PrintedPageOrientation::Portrait); 533 Q_REVISION(3) void printToPdf(const QJSValue &callback, PrintedPageSizeId pageSizeId = PrintedPageSizeId::A4, PrintedPageOrientation orientation = PrintedPageOrientation::Portrait); 534 Q_REVISION(4) void replaceMisspelledWord(const QString &replacement); 535 536 private Q_SLOTS: 537 void lazyInitialize(); 538 539 Q_SIGNALS: 540 void titleChanged(); 541 void urlChanged(); 542 void iconChanged(); 543 void loadingChanged(QQuickWebEngineLoadRequest *loadRequest); 544 void loadProgressChanged(); 545 void linkHovered(const QUrl &hoveredUrl); 546 void navigationRequested(QQuickWebEngineNavigationRequest *request); 547 void javaScriptConsoleMessage(JavaScriptConsoleMessageLevel level, const QString &message, int lineNumber, const QString &sourceID); 548 Q_REVISION(1) void certificateError(QQuickWebEngineCertificateError *error); 549 Q_REVISION(1) void fullScreenRequested(const QQuickWebEngineFullScreenRequest &request); 550 Q_REVISION(1) void isFullScreenChanged(); 551 Q_REVISION(1) void featurePermissionRequested(const QUrl &securityOrigin, Feature feature); 552 Q_REVISION(1) void newViewRequested(QQuickWebEngineNewViewRequest *request); 553 Q_REVISION(1) void zoomFactorChanged(qreal arg); 554 Q_REVISION(1) void profileChanged(); 555 Q_REVISION(1) void webChannelChanged(); 556 Q_REVISION(2) void activeFocusOnPressChanged(bool); 557 Q_REVISION(2) void backgroundColorChanged(); 558 Q_REVISION(2) void renderProcessTerminated(RenderProcessTerminationStatus terminationStatus, int exitCode); 559 Q_REVISION(2) void windowCloseRequested(); 560 Q_REVISION(3) void contentsSizeChanged(const QSizeF& size); 561 Q_REVISION(3) void scrollPositionChanged(const QPointF& position); 562 Q_REVISION(3) void audioMutedChanged(bool muted); 563 Q_REVISION(3) void recentlyAudibleChanged(bool recentlyAudible); 564 Q_REVISION(3) void webChannelWorldChanged(uint); 565 Q_REVISION(4) void contextMenuRequested(QQuickWebEngineContextMenuRequest *request); 566 Q_REVISION(4) void authenticationDialogRequested(QQuickWebEngineAuthenticationDialogRequest *request); 567 Q_REVISION(4) void javaScriptDialogRequested(QQuickWebEngineJavaScriptDialogRequest *request); 568 Q_REVISION(4) void colorDialogRequested(QQuickWebEngineColorDialogRequest *request); 569 Q_REVISION(4) void fileDialogRequested(QQuickWebEngineFileDialogRequest *request); 570 Q_REVISION(4) void formValidationMessageRequested(QQuickWebEngineFormValidationMessageRequest *request); 571 Q_REVISION(5) void pdfPrintingFinished(const QString &filePath, bool success); 572 Q_REVISION(7) void quotaRequested(const QWebEngineQuotaRequest &request); 573 Q_REVISION(7) void geometryChangeRequested(const QRect &geometry, const QRect &frameGeometry); 574 Q_REVISION(7) void inspectedViewChanged(); 575 Q_REVISION(7) void devToolsViewChanged(); 576 Q_REVISION(7) void registerProtocolHandlerRequested(const QWebEngineRegisterProtocolHandlerRequest &request); 577 Q_REVISION(8) void printRequested(); 578 Q_REVISION(9) void selectClientCertificate(QQuickWebEngineClientCertificateSelection *clientCertSelection); 579 Q_REVISION(10) void tooltipRequested(QQuickWebEngineTooltipRequest *request); 580 Q_REVISION(10) void lifecycleStateChanged(LifecycleState state); 581 Q_REVISION(10) void recommendedStateChanged(LifecycleState state); 582 Q_REVISION(10) void findTextFinished(const QWebEngineFindTextResult &result); 583 Q_REVISION(11) void renderProcessPidChanged(qint64 pid); 584 585 #if QT_CONFIG(webengine_testsupport) 586 void testSupportChanged(); 587 #endif 588 589 protected: 590 void geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry) override; 591 void itemChange(ItemChange, const ItemChangeData &) override; 592 #if QT_CONFIG(draganddrop) 593 void dragEnterEvent(QDragEnterEvent *e) override; 594 void dragLeaveEvent(QDragLeaveEvent *e) override; 595 void dragMoveEvent(QDragMoveEvent *e) override; 596 void dropEvent(QDropEvent *e) override; 597 #endif // QT_CONFIG(draganddrop) 598 599 private: 600 Q_DECLARE_PRIVATE(QQuickWebEngineView) 601 QScopedPointer<QQuickWebEngineViewPrivate> d_ptr; 602 603 friend class QQuickContextMenuBuilder; 604 friend class QQuickWebEngineNewViewRequest; 605 friend class QQuickWebEngineFaviconProvider; 606 #ifndef QT_NO_ACCESSIBILITY 607 friend class QQuickWebEngineViewAccessible; 608 #endif // QT_NO_ACCESSIBILITY 609 }; 610 611 QT_END_NAMESPACE 612 613 QML_DECLARE_TYPE(QQuickWebEngineView) 614 Q_DECLARE_METATYPE(QQuickWebEngineFullScreenRequest) 615 616 #endif // QQUICKWEBENGINEVIEW_P_H 617