Guest User

Untitled

a guest
Jul 21st, 2018
150
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.07 KB | None | 0 0
  1. commit 0caebdb0ef59de01d3aaab633a965399f090c0c8
  2. Author: Andreas Kling <kling@webkit.org>
  3. Date: Thu Jan 27 11:41:56 2011 +0100
  4.  
  5. Immediately relaunch web processes upon crash.
  6.  
  7. This is configurable via QWKContext::setShouldRelaunchProcessesOnCrash
  8. and enabled by default.
  9.  
  10. diff --git a/WebKit2/UIProcess/API/qt/qwkcontext.cpp b/WebKit2/UIProcess/API/qt/qwkcontext.cpp
  11. index d73f81c..8f1c7c8 100644
  12. --- a/WebKit2/UIProcess/API/qt/qwkcontext.cpp
  13. +++ b/WebKit2/UIProcess/API/qt/qwkcontext.cpp
  14. @@ -128,6 +128,7 @@ QWKContext::QWKContext(QObject* parent)
  15. RefPtr<WebContext> newContext = WebContext::create(String());
  16. d->pageNamespace = adoptRef(newContext->createPageNamespace());
  17. d->ownsContextProcesses = true;
  18. + d->relaunchProcessesOnCrash = true;
  19. d->init();
  20. }
  21.  
  22. @@ -137,6 +138,7 @@ QWKContext::QWKContext(WKPageNamespaceRef pageNamespaceRef, QObject* parent)
  23. {
  24. d->pageNamespace = toImpl(pageNamespaceRef);
  25. d->ownsContextProcesses = false;
  26. + d->relaunchProcessesOnCrash = true;
  27. d->init();
  28. }
  29.  
  30. @@ -175,3 +177,13 @@ void QWKContext::terminateAllWebProcesses()
  31. if (d->context()->process())
  32. d->context()->process()->terminate();
  33. }
  34. +
  35. +void QWKContext::setShouldRelaunchProcessesOnCrash(bool shouldRelaunch)
  36. +{
  37. + d->relaunchProcessesOnCrash = shouldRelaunch;
  38. +}
  39. +
  40. +bool QWKContext::shouldRelaunchProcessesOnCrash() const
  41. +{
  42. + return d->relaunchProcessesOnCrash;
  43. +}
  44. diff --git a/WebKit2/UIProcess/API/qt/qwkcontext.h b/WebKit2/UIProcess/API/qt/qwkcontext.h
  45. index 2d40b85..c89108c 100644
  46. --- a/WebKit2/UIProcess/API/qt/qwkcontext.h
  47. +++ b/WebKit2/UIProcess/API/qt/qwkcontext.h
  48. @@ -43,6 +43,9 @@ public:
  49. QString cacheDirPath() const;
  50. void setCacheDirPath(const QString& cacheDirPath);
  51.  
  52. + bool shouldRelaunchProcessesOnCrash() const;
  53. + void setShouldRelaunchProcessesOnCrash(bool shouldRelaunch);
  54. +
  55. public:
  56. Q_SIGNAL void downloadRequested(QWKDownload* download);
  57.  
  58. diff --git a/WebKit2/UIProcess/API/qt/qwkcontext_p.h b/WebKit2/UIProcess/API/qt/qwkcontext_p.h
  59. index 8d9e6c4..38b9590 100644
  60. --- a/WebKit2/UIProcess/API/qt/qwkcontext_p.h
  61. +++ b/WebKit2/UIProcess/API/qt/qwkcontext_p.h
  62. @@ -57,6 +57,7 @@ public:
  63.  
  64. QMap<uint64_t, QWKDownload*> m_downloads;
  65. bool ownsContextProcesses;
  66. + bool relaunchProcessesOnCrash;
  67. };
  68.  
  69. #endif /* qkcontext_p_h */
  70. diff --git a/WebKit2/UIProcess/API/qt/qwkpage.cpp b/WebKit2/UIProcess/API/qt/qwkpage.cpp
  71. index fab9da0..da16c8d 100644
  72. --- a/WebKit2/UIProcess/API/qt/qwkpage.cpp
  73. +++ b/WebKit2/UIProcess/API/qt/qwkpage.cpp
  74. @@ -627,6 +627,14 @@ void QWKPagePrivate::tapAndHoldTimout()
  75. }
  76. #endif
  77.  
  78. +void QWKPagePrivate::processDidCrash()
  79. +{
  80. + if (context->shouldRelaunchProcessesOnCrash())
  81. + context->d->context()->relaunchProcessIfNecessary();
  82. +
  83. + emit q->processCrashed();
  84. +}
  85. +
  86. QWKPage::QWKPage(QWKContext* context)
  87. : d(new QWKPagePrivate(this, context))
  88. {
  89. diff --git a/WebKit2/UIProcess/API/qt/qwkpage.h b/WebKit2/UIProcess/API/qt/qwkpage.h
  90. index ad8b65f..def3cba 100644
  91. --- a/WebKit2/UIProcess/API/qt/qwkpage.h
  92. +++ b/WebKit2/UIProcess/API/qt/qwkpage.h
  93. @@ -171,6 +171,7 @@ public:
  94. Q_SIGNAL void snapshotTaken(const QImage&);
  95. Q_SIGNAL void showContextMenu(QMenu*);
  96. Q_SIGNAL void authenticationRequired(const QString& host, const QString& realm, const QString& oldUsername, QString* username, QString* password);
  97. + Q_SIGNAL void processCrashed();
  98.  
  99. // Gesture signals
  100. Q_SIGNAL void panRequested(const QPointF&, bool isFinished);
  101. diff --git a/WebKit2/UIProcess/API/qt/qwkpage_p.h b/WebKit2/UIProcess/API/qt/qwkpage_p.h
  102. index ee7e650..084a2ba 100644
  103. --- a/WebKit2/UIProcess/API/qt/qwkpage_p.h
  104. +++ b/WebKit2/UIProcess/API/qt/qwkpage_p.h
  105. @@ -53,7 +53,7 @@ public:
  106. void pageDidLeaveAcceleratedCompositing();
  107. #endif // USE(ACCELERATED_COMPOSITING)
  108. virtual void pageDidRequestScroll(const WebCore::IntSize&);
  109. - virtual void processDidCrash() { }
  110. + virtual void processDidCrash();
  111. virtual void didRelaunchProcess();
  112. virtual void didChangeContentsSize(const WebCore::IntSize&);
  113. virtual void didFindZoomableArea(const WebCore::IntPoint&, const WebCore::IntRect&);
Add Comment
Please, Sign In to add comment