diff --git a/bundles/org.eclipse.ui.browser/META-INF/MANIFEST.MF b/bundles/org.eclipse.ui.browser/META-INF/MANIFEST.MF index 502a77f3edd..bbd680a30c2 100644 --- a/bundles/org.eclipse.ui.browser/META-INF/MANIFEST.MF +++ b/bundles/org.eclipse.ui.browser/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: %Plugin.name Bundle-SymbolicName: org.eclipse.ui.browser; singleton:=true -Bundle-Version: 3.8.500.qualifier +Bundle-Version: 3.8.600.qualifier Bundle-Activator: org.eclipse.ui.internal.browser.WebBrowserUIPlugin Bundle-Vendor: %Plugin.providerName Bundle-Localization: plugin diff --git a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/BrowserViewer.java b/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/BrowserViewer.java index f101181c0cd..7a3d65b824b 100644 --- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/BrowserViewer.java +++ b/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/BrowserViewer.java @@ -234,7 +234,7 @@ public void mouseDown(MouseEvent e) { // we can use it in this environment //if (WebBrowserUtil.canUseInternalWebBrowser()) try { - this.browser = new Browser(this, SWT.NONE); + this.browser = new Browser(this, getBrowserStyle()); this.browser.addLocationListener(LocationListener.changingAdapter(event -> { URI uri = URI.create(event.location); if (!(uri.getScheme().equals("http") || uri.getScheme().equals("https") //$NON-NLS-1$ //$NON-NLS-2$ @@ -275,6 +275,17 @@ public void mouseDown(MouseEvent e) { addDisposeListener(this::dispose); } + /** + * Returns the style flags to be used for the Browser object. Subclasses can + * override this method to provide custom styles for the Browser. By default, + * this method returns the SWT.NONE style. + * + * @return an integer representing the style flags for the Browser object. + */ + protected int getBrowserStyle() { + return SWT.NONE; // Default style + } + /** * Returns the underlying SWT browser widget. * diff --git a/tests/org.eclipse.ui.tests.browser/src/org/eclipse/ui/tests/browser/internal/InternalBrowserViewTestCase.java b/tests/org.eclipse.ui.tests.browser/src/org/eclipse/ui/tests/browser/internal/InternalBrowserViewTestCase.java index e58807d25b1..a29add0f359 100644 --- a/tests/org.eclipse.ui.tests.browser/src/org/eclipse/ui/tests/browser/internal/InternalBrowserViewTestCase.java +++ b/tests/org.eclipse.ui.tests.browser/src/org/eclipse/ui/tests/browser/internal/InternalBrowserViewTestCase.java @@ -13,13 +13,18 @@ *******************************************************************************/ package org.eclipse.ui.tests.browser.internal; +import static org.junit.Assert.assertEquals; + import java.net.URL; +import org.eclipse.swt.SWT; +import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; import org.eclipse.ui.PlatformUI; import org.eclipse.ui.browser.IWebBrowser; import org.eclipse.ui.browser.IWorkbenchBrowserSupport; +import org.eclipse.ui.internal.browser.BrowserViewer; import org.eclipse.ui.internal.browser.WebBrowserPreference; import org.junit.Test; @@ -68,4 +73,42 @@ public void run() { Display display = Display.getCurrent(); while (!exit[0] && !shell.isDisposed()) if (!display.readAndDispatch()) display.sleep(); } + + @Test + public void testDefaultBrowserStyle() { + class TestBrowserViewer extends BrowserViewer { + public TestBrowserViewer(Composite parent, int style) { + super(parent, style); + } + + @Override + protected int getBrowserStyle() { + return super.getBrowserStyle(); + } + } + + TestBrowserViewer browserViewer = new TestBrowserViewer(shell, SWT.NONE); + int browserStyle = browserViewer.getBrowserStyle(); + // Assert: Verify the returned style is SWT.NONE + assertEquals("The default browser style should be SWT.NONE", SWT.NONE, browserStyle); + } + + @Test + public void testCustomBrowserStyle() { + class CustomBrowserViewer extends BrowserViewer { + public CustomBrowserViewer(Composite parent, int style) { + super(parent, style); + } + + @Override + protected int getBrowserStyle() { + return SWT.EDGE; // Custom style + } + } + + CustomBrowserViewer customBrowserViewer = new CustomBrowserViewer(shell, SWT.NONE); + int browserStyle = customBrowserViewer.getBrowserStyle(); + // Assert: Verify the returned style is SWT.EDGE + assertEquals("The custom browser style should be SWT.EDGE", SWT.EDGE, browserStyle); + } } \ No newline at end of file