diff options
Diffstat (limited to 'Source/WebKit/qt/WebCoreSupport/QWebPageAdapter.cpp')
-rw-r--r-- | Source/WebKit/qt/WebCoreSupport/QWebPageAdapter.cpp | 32 |
1 files changed, 18 insertions, 14 deletions
diff --git a/Source/WebKit/qt/WebCoreSupport/QWebPageAdapter.cpp b/Source/WebKit/qt/WebCoreSupport/QWebPageAdapter.cpp index 00dc0c488..b3b49f5d6 100644 --- a/Source/WebKit/qt/WebCoreSupport/QWebPageAdapter.cpp +++ b/Source/WebKit/qt/WebCoreSupport/QWebPageAdapter.cpp @@ -192,22 +192,13 @@ static WebCore::FrameLoadRequest frameLoadRequest(const QUrl &url, WebCore::Fram ); } -static void openNewWindow(const QUrl& url, Frame* frame) +// FIXME: Find a better place +static UserContentController& userContentProvider() { - if (Page* oldPage = frame->page()) { - WindowFeatures features; - NavigationAction action; - FrameLoadRequest request = frameLoadRequest(url, frame); - if (Page* newPage = oldPage->chrome().createWindow(frame, request, features, action)) { - newPage->mainFrame().loader().loadFrameRequest(request, /*event*/ 0, /*FormState*/ 0); - newPage->chrome().show(); - } - } + static NeverDestroyed<Ref<UserContentController>> s_userContentProvider(UserContentController::create()); + return s_userContentProvider.get(); } -// FIXME: Find a better place -Ref<UserContentController> s_userContentProvider = UserContentController::create(); - QWebPageAdapter::QWebPageAdapter() : settings(0) , page(0) @@ -242,7 +233,7 @@ void QWebPageAdapter::initializeWebCorePage() pageConfiguration.databaseProvider = &WebDatabaseProvider::singleton(); pageConfiguration.storageNamespaceProvider = WebStorageNamespaceProvider::create( QWebSettings::globalSettings()->localStoragePath()); - pageConfiguration.userContentController = &s_userContentProvider.get(); + pageConfiguration.userContentController = &userContentProvider(); pageConfiguration.visitedLinkStore = &VisitedLinkStoreQt::singleton(); page = new Page(pageConfiguration); @@ -1586,3 +1577,16 @@ bool QWebPageAdapter::swallowContextMenuEvent(QContextMenuEvent *event, QWebFram return !menu; } + +void QWebPageAdapter::openNewWindow(const QUrl& url, Frame* frame) +{ + if (Page* oldPage = frame->page()) { + WindowFeatures features; + NavigationAction action; + FrameLoadRequest request = frameLoadRequest(url, frame); + if (Page* newPage = oldPage->chrome().createWindow(frame, request, features, action)) { + newPage->mainFrame().loader().loadFrameRequest(request, /*event*/ 0, /*FormState*/ 0); + newPage->chrome().show(); + } + } +} |