static void webview_load_status_cb(WebKitWebView *view, GParamSpec *pspec)
 {
     const char *uri;
+    WebKitWebFrame *frame = webkit_web_view_get_main_frame(view);
 
     switch (webkit_web_view_get_load_status(view)) {
         case WEBKIT_LOAD_PROVISIONAL:
 #ifdef FEATURE_AUTOCMD
             {
-                WebKitWebFrame *frame     = webkit_web_view_get_main_frame(view);
                 WebKitWebDataSource *src  = webkit_web_frame_get_provisional_data_source(frame);
                 WebKitNetworkRequest *req = webkit_web_data_source_get_initial_request(src);
                 uri = webkit_network_request_get_uri(req);
             autocmd_run(AU_LOAD_COMMITED, uri, NULL);
 #endif
             {
-                WebKitWebFrame *frame = webkit_web_view_get_main_frame(view);
                 JSContextRef ctx;
                 /* set the status */
                 if (g_str_has_prefix(uri, "https://")) {
                 vb_enter('n');
             }
 
-            WebKitWebFrame *frame = webkit_web_view_get_main_frame(view);
             dom_install_focus_blur_callbacks(webkit_web_frame_get_dom_document(frame));
             vb.state.done_loading_page = false;
 
             break;
 
         case WEBKIT_LOAD_FINISHED:
-            frame = webkit_web_view_get_main_frame(view);
             dom_install_focus_blur_callbacks(webkit_web_frame_get_dom_document(frame));
             uri = webkit_web_view_get_uri(view);
 #ifdef FEATURE_AUTOCMD
                 /* In case the requested uri could not be loaded the Current
                  * uri of the Webview would still be the PRevious one. So We
                  * use the provisional uri here. */
-                WebKitWebFrame *frame     = webkit_web_view_get_main_frame(view);
                 WebKitWebDataSource *src  = webkit_web_frame_get_provisional_data_source(frame);
                 if (src) {
                     WebKitNetworkRequest *req = webkit_web_data_source_get_initial_request(src);