Skip to content

Commit 9d088ad

Browse files
committed
A bunch of messy changes
1 parent f8d1de8 commit 9d088ad

File tree

4 files changed

+53
-8
lines changed

4 files changed

+53
-8
lines changed

.idea/compiler.xml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/io/flutter/jxbrowser/EmbeddedBrowserEngine.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,9 @@ public EmbeddedBrowserEngine() {
4444
optionsBuilder.addSwitch("--force-device-scale-factor=1");
4545
}
4646

47+
int debuggingPort = 9222;
48+
optionsBuilder.remoteDebuggingPort(debuggingPort).userAgent("JxBrowser/IntelliJ");
49+
4750
final EngineOptions options = optionsBuilder.build();
4851

4952
Engine temp;

src/io/flutter/jxbrowser/EmbeddedJxBrowser.java

Lines changed: 43 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
*/
66
package io.flutter.jxbrowser;
77

8+
import com.intellij.ide.ui.UISettingsUtils;
89
import com.intellij.openapi.application.PathManager;
910
import com.intellij.openapi.diagnostic.Logger;
1011
import com.intellij.openapi.project.Project;
@@ -13,28 +14,29 @@
1314
import com.teamdev.jxbrowser.browser.UnsupportedRenderingModeException;
1415
import com.teamdev.jxbrowser.browser.callback.AlertCallback;
1516
import com.teamdev.jxbrowser.browser.callback.ConfirmCallback;
17+
import com.teamdev.jxbrowser.browser.callback.ShowContextMenuCallback;
1618
import com.teamdev.jxbrowser.browser.callback.input.PressKeyCallback;
1719
import com.teamdev.jxbrowser.browser.event.ConsoleMessageReceived;
1820
import com.teamdev.jxbrowser.engine.Engine;
21+
import com.teamdev.jxbrowser.frame.EditorCommand;
1922
import com.teamdev.jxbrowser.js.ConsoleMessage;
23+
import com.teamdev.jxbrowser.menu.internal.rpc.ContextMenuContentType;
24+
import com.teamdev.jxbrowser.permission.PermissionType;
25+
import com.teamdev.jxbrowser.permission.callback.RequestPermissionCallback;
2026
import com.teamdev.jxbrowser.ui.KeyCode;
2127
import com.teamdev.jxbrowser.ui.event.KeyPressed;
2228
import com.teamdev.jxbrowser.view.swing.BrowserView;
2329
import com.teamdev.jxbrowser.view.swing.callback.DefaultAlertCallback;
2430
import com.teamdev.jxbrowser.view.swing.callback.DefaultConfirmCallback;
31+
import com.teamdev.jxbrowser.zoom.Zoom;
32+
import com.teamdev.jxbrowser.zoom.ZoomLevel;
2533
import io.flutter.logging.PluginLogger;
2634
import io.flutter.settings.FlutterSettings;
27-
import io.flutter.utils.AsyncUtils;
28-
import io.flutter.utils.JxBrowserUtils;
29-
import io.flutter.utils.ZoomLevelSelector;
35+
import io.flutter.utils.*;
3036
import io.flutter.view.EmbeddedBrowser;
3137
import io.flutter.view.EmbeddedTab;
32-
import io.flutter.utils.LabelInput;
3338
import org.jetbrains.annotations.NotNull;
3439
import org.jetbrains.annotations.Nullable;
35-
import com.teamdev.jxbrowser.zoom.Zoom;
36-
import com.teamdev.jxbrowser.zoom.ZoomLevel;
37-
import com.intellij.ide.ui.UISettingsUtils;
3840

3941
import javax.swing.*;
4042
import java.awt.*;
@@ -55,6 +57,16 @@ class EmbeddedJxBrowserTab implements EmbeddedTab {
5557
public EmbeddedJxBrowserTab(Engine engine) {
5658
this.engine = engine;
5759

60+
this.engine.permissions().set(RequestPermissionCallback.class, (params, tell) -> {
61+
var type = params.permissionType();
62+
if (type == PermissionType.CLIPBOARD_READ_WRITE
63+
|| type == PermissionType.CLIPBOARD_SANITIZED_WRITE) {
64+
tell.grant();
65+
} else {
66+
tell.deny();
67+
}
68+
});
69+
5870
try {
5971
this.browser = engine.newBrowser();
6072
this.zoom = this.browser.zoom();
@@ -63,6 +75,30 @@ public EmbeddedJxBrowserTab(Engine engine) {
6375
final ConsoleMessage consoleMessage = event.consoleMessage();
6476
LOG.info("Browser message(" + consoleMessage.level().name() + "): " + consoleMessage.message());
6577
});
78+
79+
browser.set(ShowContextMenuCallback.class, (params, tell) -> {
80+
var contentType = params.contentType();
81+
if (contentType.contains(ContextMenuContentType.CONTEXT_MENU_CONTENT_TYPE_COPY)) {
82+
// Some text is selected, so you can add the "Copy" item to the context menu.
83+
}
84+
if (contentType.contains(ContextMenuContentType.CONTEXT_MENU_CONTENT_TYPE_EDITABLE)) {
85+
// User right-clicked on the editable content, so you can add
86+
// the "Paste" item to the context menu.
87+
}
88+
tell.close();
89+
});
90+
91+
92+
93+
// browser.settings().allowJavaScriptAccessClipboard();
94+
// browser.mainFrame().ifPresent(frame ->
95+
// frame.executeJavaScript("document.execCommand('copy')")
96+
// );
97+
98+
//browser.mainFrame().ifPresent(frame ->
99+
// frame.execute(EditorCommand.copy())
100+
//);
101+
66102
}
67103
catch (UnsupportedRenderingModeException ex) {
68104
// Skip using a transparent background if an exception is thrown.

src/io/flutter/run/daemon/DevToolsServerTask.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,12 +90,18 @@ public void run(@NotNull ProgressIndicator progressIndicator) {
9090
// This is only for development to check integration with a locally run DevTools server.
9191
// To enable, follow the instructions in:
9292
// https://github.com/flutter/flutter-intellij/blob/main/CONTRIBUTING.md#developing-with-local-devtools
93+
// final String localDevToolsDir = Registry.get("flutter.local.devtools.dir").asString().isEmpty() ? "/Users/elliottbrooks/dev/devtools" : Registry.get("flutter.local.devtools.dir").asString();
9394
final String localDevToolsDir = Registry.stringValue(LOCAL_DEVTOOLS_DIR);
95+
LOG.info("LOCAL DEVTOOLS DIR " + localDevToolsDir);
9496
if (!localDevToolsDir.isEmpty()) {
9597
LOG.info("Starting local DevTools server at: " + localDevToolsDir);
9698
progressIndicator.setFraction(60);
9799
progressIndicator.setText2("Starting local server");
98100
setUpLocalServer(localDevToolsDir);
101+
return;
102+
}
103+
else {
104+
LOG.info("NOT SERVING LOCAL DEVTOOLS DIRECTORY");
99105
}
100106

101107
// Wait for the Dart Plugin to start the DevTools server.

0 commit comments

Comments
 (0)