anchor.diff:          // _navigationDelegate can be null if the widget was rebuilt with no
           // navigation delegate after a navigation happened and just before we
           // got the navigationRequest message.
  -        final bool allowNavigation = _navigationDelegate == null ||
  -            _navigationDelegate(request) == NavigationDecision.navigate;
  +        final bool allowNavigation = _widget.navigationDelegate == null ||
  +            _widget.navigationDelegate(request) == NavigationDecision.navigate;
           return allowNavigation;
         case 'onPageFinished':
  -        if (_onPageFinished != null) {
  -          _onPageFinished(call.arguments['url']);
  +        if (_widget.onPageFinished != null) {
  +          _widget.onPageFinished(call.arguments['url']);
           }
   
           return null;
  
positive.code: class WebViewController {
    WebViewController._(
      int id,
      this._settings,
      Set<JavascriptChannel> javascriptChannels,
      this._navigationDelegate,
      this._onPageFinished,
    ) : _channel = MethodChannel('plugins.flutter.io/webview_$id') {
      _updateJavascriptChannelsFromSet(javascriptChannels);
      _channel.setMethodCallHandler(_onMethodCall);
    }
  
    final MethodChannel _channel;
  
    NavigationDelegate _navigationDelegate;
  
    _WebSettings _settings;
  
    PageFinishedCallback _onPageFinished;
  
    // Maps a channel name to a channel.
    Map<String, JavascriptChannel> _javascriptChannels =
  
negative.code:     // ignore: strong_mode_implicit_dynamic_method
      await _channel.invokeMethod("clearCache");
      return reload();
    }
  
    Future<void> _updateWidget(WebView widget) async {
      _widget = widget;
      await _updateSettings(_WebSettings.fromWidget(widget));
      await _updateJavascriptChannels(widget.javascriptChannels);
    }
  
    Future<void> _updateSettings(_WebSettings setting) async {
  