Esempio n. 1
0
WebViewImpl* WebViewHelper::initializeWithOpener(
    WebFrame* opener,
    bool enableJavascript,
    TestWebFrameClient* webFrameClient,
    TestWebViewClient* webViewClient,
    TestWebWidgetClient* webWidgetClient,
    void (*updateSettingsFunc)(WebSettings*)) {
  reset();

  if (!webFrameClient)
    webFrameClient = defaultWebFrameClient();
  if (!webViewClient)
    webViewClient = defaultWebViewClient();
  if (!webWidgetClient)
    webWidgetClient = webViewClient->widgetClient();
  m_webView = WebViewImpl::create(webViewClient, WebPageVisibilityStateVisible);
  m_webView->settings()->setJavaScriptEnabled(enableJavascript);
  m_webView->settings()->setPluginsEnabled(true);
  // Enable (mocked) network loads of image URLs, as this simplifies
  // the completion of resource loads upon test shutdown & helps avoid
  // dormant loads trigger Resource leaks for image loads.
  //
  // Consequently, all external image resources must be mocked.
  m_webView->settings()->setLoadsImagesAutomatically(true);
  if (updateSettingsFunc)
    updateSettingsFunc(m_webView->settings());
  else
    m_webView->settings()->setDeviceSupportsMouse(false);
  if (m_settingOverrider)
    m_settingOverrider->overrideSettings(m_webView->settings());
  m_webView->setDeviceScaleFactor(
      webViewClient->screenInfo().deviceScaleFactor);
  m_webView->setDefaultPageScaleLimits(1, 4);
  WebLocalFrame* frame = WebLocalFrameImpl::create(WebTreeScopeType::Document,
                                                   webFrameClient, opener);
  m_webView->setMainFrame(frame);
  // TODO(dcheng): The main frame widget currently has a special case.
  // Eliminate this once WebView is no longer a WebWidget.
  blink::WebFrameWidget::create(webWidgetClient, m_webView, frame);

  m_testWebViewClient = webViewClient;

  return m_webView;
}
Esempio n. 2
0
WebLocalFrameImpl* createLocalChild(WebRemoteFrame* parent,
                                    const WebString& name,
                                    WebFrameClient* client,
                                    WebWidgetClient* widgetClient,
                                    WebFrame* previousSibling,
                                    const WebFrameOwnerProperties& properties) {
  if (!client)
    client = defaultWebFrameClient();

  WebLocalFrameImpl* frame = toWebLocalFrameImpl(parent->createLocalChild(
      WebTreeScopeType::Document, name, nameToUniqueName(name),
      WebSandboxFlags::None, client, previousSibling, properties, nullptr));

  if (!widgetClient)
    widgetClient = defaultWebWidgetClient();
  WebFrameWidget::create(widgetClient, frame);

  return frame;
}
WebViewImpl* WebViewHelper::initialize(bool enableJavascript, WebFrameClient* webFrameClient, WebViewClient* webViewClient, void (*updateSettingsFunc)(WebSettings*))
{
    reset();

    if (!webFrameClient)
        webFrameClient = defaultWebFrameClient();
    if (!webViewClient)
        webViewClient = defaultWebViewClient();
    m_webView = WebViewImpl::create(webViewClient);
    m_webView->settings()->setJavaScriptEnabled(enableJavascript);
    if (updateSettingsFunc) {
        updateSettingsFunc(m_webView->settings());
    } else {
        m_webView->settings()->setDeviceSupportsMouse(false);
        m_webView->settings()->setForceCompositingMode(true);
    }

    m_webView->setMainFrame(WebLocalFrameImpl::create(webFrameClient));

    return m_webView;
}