mirror of
https://github.com/juce-framework/JUCE.git
synced 2026-01-09 23:34:20 +00:00
WebBrowserComponent: Improve formatting
This commit is contained in:
parent
14ee9e46ff
commit
8e4832dcf5
2 changed files with 31 additions and 36 deletions
|
|
@ -169,7 +169,6 @@ static void evaluationHandler (WebBrowserComponent::EvaluationResult r)
|
||||||
// result that cannot be translated and returned to native code such as a Promise.
|
// result that cannot be translated and returned to native code such as a Promise.
|
||||||
jassert (r.getError()->type == WebBrowserComponent::EvaluationResult::Error::Type::unsupportedReturnType);
|
jassert (r.getError()->type == WebBrowserComponent::EvaluationResult::Error::Type::unsupportedReturnType);
|
||||||
DBG (r.getError()->message);
|
DBG (r.getError()->message);
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -957,14 +957,14 @@ public:
|
||||||
if (response->resource.has_value())
|
if (response->resource.has_value())
|
||||||
{
|
{
|
||||||
auto* streamBytes = wk.juce_g_bytes_new (response->resource->data.data(),
|
auto* streamBytes = wk.juce_g_bytes_new (response->resource->data.data(),
|
||||||
static_cast<gsize> (response->resource->data.size()));
|
static_cast<gsize> (response->resource->data.size()));
|
||||||
ScopeGuard bytesScope { [&] { wk.juce_g_bytes_unref (streamBytes); } };
|
ScopeGuard bytesScope { [&] { wk.juce_g_bytes_unref (streamBytes); } };
|
||||||
|
|
||||||
auto* stream = wk.juce_g_memory_input_stream_new_from_bytes (streamBytes);
|
auto* stream = wk.juce_g_memory_input_stream_new_from_bytes (streamBytes);
|
||||||
ScopeGuard streamScope { [&] { wk.juce_g_object_unref (stream); } };
|
ScopeGuard streamScope { [&] { wk.juce_g_object_unref (stream); } };
|
||||||
|
|
||||||
auto* webkitResponse = wk.juce_webkit_uri_scheme_response_new (stream,
|
auto* webkitResponse = wk.juce_webkit_uri_scheme_response_new (stream,
|
||||||
static_cast<gint64> (response->resource->data.size()));
|
static_cast<gint64> (response->resource->data.size()));
|
||||||
ScopeGuard webkitResponseScope { [&] { wk.juce_g_object_unref (webkitResponse); } };
|
ScopeGuard webkitResponseScope { [&] { wk.juce_g_object_unref (webkitResponse); } };
|
||||||
|
|
||||||
wk.juce_soup_message_headers_append (headers, "Content-Type", response->resource->mimeType.toRawUTF8());
|
wk.juce_soup_message_headers_append (headers, "Content-Type", response->resource->mimeType.toRawUTF8());
|
||||||
|
|
@ -1036,52 +1036,48 @@ public:
|
||||||
WebKitNavigationAction* action,
|
WebKitNavigationAction* action,
|
||||||
WebKitPolicyDecision* decision)
|
WebKitPolicyDecision* decision)
|
||||||
{
|
{
|
||||||
if (decision != nullptr && frameName.isEmpty())
|
if (decision == nullptr || ! frameName.isEmpty())
|
||||||
{
|
return false;
|
||||||
WebKitSymbols::getInstance()->juce_g_object_ref (decision);
|
|
||||||
decisions.add (decision);
|
|
||||||
|
|
||||||
DynamicObject::Ptr params = new DynamicObject;
|
WebKitSymbols::getInstance()->juce_g_object_ref (decision);
|
||||||
|
decisions.add (decision);
|
||||||
|
|
||||||
params->setProperty ("url", getURIStringForAction (action));
|
DynamicObject::Ptr params = new DynamicObject;
|
||||||
params->setProperty ("decision_id", (int64) decision);
|
|
||||||
CommandReceiver::sendCommand (outChannel, "pageAboutToLoad", var (params.get()));
|
|
||||||
|
|
||||||
return true;
|
params->setProperty ("url", getURIStringForAction (action));
|
||||||
}
|
params->setProperty ("decision_id", (int64) decision);
|
||||||
|
CommandReceiver::sendCommand (outChannel, "pageAboutToLoad", var (params.get()));
|
||||||
|
|
||||||
return false;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool onNewWindow (String /*frameName*/,
|
bool onNewWindow (String /*frameName*/,
|
||||||
WebKitNavigationAction* action,
|
WebKitNavigationAction* action,
|
||||||
WebKitPolicyDecision* decision)
|
WebKitPolicyDecision* decision)
|
||||||
{
|
{
|
||||||
if (decision != nullptr)
|
if (decision == nullptr)
|
||||||
{
|
return false;
|
||||||
DynamicObject::Ptr params = new DynamicObject;
|
|
||||||
|
|
||||||
params->setProperty ("url", getURIStringForAction (action));
|
DynamicObject::Ptr params = new DynamicObject;
|
||||||
CommandReceiver::sendCommand (outChannel, "newWindowAttemptingToLoad", var (params.get()));
|
|
||||||
|
|
||||||
// never allow new windows
|
params->setProperty ("url", getURIStringForAction (action));
|
||||||
WebKitSymbols::getInstance()->juce_webkit_policy_decision_ignore (decision);
|
CommandReceiver::sendCommand (outChannel, "newWindowAttemptingToLoad", var (params.get()));
|
||||||
|
|
||||||
return true;
|
// never allow new windows
|
||||||
}
|
WebKitSymbols::getInstance()->juce_webkit_policy_decision_ignore (decision);
|
||||||
|
|
||||||
return false;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void onLoadChanged (WebKitLoadEvent loadEvent)
|
void onLoadChanged (WebKitLoadEvent loadEvent)
|
||||||
{
|
{
|
||||||
if (loadEvent == WEBKIT_LOAD_FINISHED)
|
if (loadEvent != WEBKIT_LOAD_FINISHED)
|
||||||
{
|
return;
|
||||||
DynamicObject::Ptr params = new DynamicObject;
|
|
||||||
|
|
||||||
params->setProperty ("url", String (WebKitSymbols::getInstance()->juce_webkit_web_view_get_uri (webview)));
|
DynamicObject::Ptr params = new DynamicObject;
|
||||||
CommandReceiver::sendCommand (outChannel, "pageFinishedLoading", var (params.get()));
|
|
||||||
}
|
params->setProperty ("url", String (WebKitSymbols::getInstance()->juce_webkit_web_view_get_uri (webview)));
|
||||||
|
CommandReceiver::sendCommand (outChannel, "pageFinishedLoading", var (params.get()));
|
||||||
}
|
}
|
||||||
|
|
||||||
bool onDecidePolicy (WebKitPolicyDecision* decision,
|
bool onDecidePolicy (WebKitPolicyDecision* decision,
|
||||||
|
|
@ -1244,7 +1240,7 @@ private:
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const auto jsValueResult = [&]() -> std::tuple<std::optional<var>, String>
|
const auto jsValueResult = std::invoke ([&]() -> std::tuple<std::optional<var>, String>
|
||||||
{
|
{
|
||||||
auto* jsValue = wk.juce_webkit_javascript_result_get_js_value (jsResult.get());
|
auto* jsValue = wk.juce_webkit_javascript_result_get_js_value (jsResult.get());
|
||||||
|
|
||||||
|
|
@ -1252,7 +1248,7 @@ private:
|
||||||
return { std::nullopt, String{} };
|
return { std::nullopt, String{} };
|
||||||
|
|
||||||
return { fromJSCValue (jsValue), String{} };
|
return { fromJSCValue (jsValue), String{} };
|
||||||
}();
|
});
|
||||||
|
|
||||||
owner->handleEvaluationCallback (std::get<0> (jsValueResult), std::get<1> (jsValueResult));
|
owner->handleEvaluationCallback (std::get<0> (jsValueResult), std::get<1> (jsValueResult));
|
||||||
}
|
}
|
||||||
|
|
@ -1356,7 +1352,7 @@ public:
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const auto result = [&]
|
const auto result = std::invoke ([&]
|
||||||
{
|
{
|
||||||
using Error = EvaluationResult::Error;
|
using Error = EvaluationResult::Error;
|
||||||
|
|
||||||
|
|
@ -1369,7 +1365,7 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
return EvaluationResult { params->hasPayload ? params->payload : var::undefined() };
|
return EvaluationResult { params->hasPayload ? params->payload : var::undefined() };
|
||||||
}();
|
});
|
||||||
|
|
||||||
auto& cb = evaluationCallbacks.front();
|
auto& cb = evaluationCallbacks.front();
|
||||||
cb (result);
|
cb (result);
|
||||||
|
|
@ -1430,14 +1426,14 @@ public:
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
receiver.reset (new CommandReceiver (this, inChannel));
|
receiver = std::make_unique<CommandReceiver> (static_cast<Responder*> (this), inChannel);
|
||||||
|
|
||||||
pfds.push_back ({ threadControl[0], POLLIN, 0 });
|
pfds.push_back ({ threadControl[0], POLLIN, 0 });
|
||||||
pfds.push_back ({ receiver->getFd(), POLLIN, 0 });
|
pfds.push_back ({ receiver->getFd(), POLLIN, 0 });
|
||||||
|
|
||||||
startThread();
|
startThread();
|
||||||
|
|
||||||
xembed.reset (new XEmbedComponent (windowHandle));
|
xembed = std::make_unique<XEmbedComponent> (windowHandle);
|
||||||
browser.addAndMakeVisible (xembed.get());
|
browser.addAndMakeVisible (xembed.get());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue