webkit2-gtk 3.1.3 → 3.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/dependency-check/Rakefile +1 -2
- data/lib/webkit2-gtk/loader.rb +54 -0
- data/lib/webkit2-gtk/web-view.rb +71 -0
- data/lib/webkit2-gtk.rb +3 -36
- data/test/run-test.rb +1 -1
- data/test/test-webkit2-gtk-webview.rb +82 -32
- data/test/webkit2-gtk-test-utils.rb +1 -1
- metadata +8 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 266cd1a1720986f15405e36674522de99f90b63d
|
4
|
+
data.tar.gz: b33cb2c0dd4eef325d0438d46a9ff387a94b92dc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d1f3cf8e88e9b507148cf8cf27270af5198d92ef522294cc8eb1d36300aea15573236e215b0db3ce6da73e6a6d78b9a072bd67082ce21408970abf510b52f87a
|
7
|
+
data.tar.gz: 1a75deffe8a9190553d9ff971f0ea9981f255237acf5cbffe8c595b957b30651a08b3caf9aec19c73cb5e013fd3a5df5f0c6615ffe4a5f63fe3d76b78e19464d
|
data/dependency-check/Rakefile
CHANGED
@@ -0,0 +1,54 @@
|
|
1
|
+
# Copyright (C) 2015-2017 Ruby-GNOME2 Project Team
|
2
|
+
#
|
3
|
+
# This library is free software; you can redistribute it and/or
|
4
|
+
# modify it under the terms of the GNU Lesser General Public
|
5
|
+
# License as published by the Free Software Foundation; either
|
6
|
+
# version 2.1 of the License, or (at your option) any later version.
|
7
|
+
#
|
8
|
+
# This library is distributed in the hope that it will be useful,
|
9
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
10
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
11
|
+
# Lesser General Public License for more details.
|
12
|
+
#
|
13
|
+
# You should have received a copy of the GNU Lesser General Public
|
14
|
+
# License along with this library; if not, write to the Free Software
|
15
|
+
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
16
|
+
|
17
|
+
module WebKit2Gtk
|
18
|
+
class Loader < GObjectIntrospection::Loader
|
19
|
+
NAMESPACE = "WebKit2"
|
20
|
+
|
21
|
+
def load
|
22
|
+
super(NAMESPACE)
|
23
|
+
end
|
24
|
+
|
25
|
+
private
|
26
|
+
def pre_load(repository, namespace)
|
27
|
+
define_version_module
|
28
|
+
end
|
29
|
+
|
30
|
+
def post_load(repository, namespace)
|
31
|
+
require_libraries
|
32
|
+
end
|
33
|
+
|
34
|
+
def define_version_module
|
35
|
+
@version_module = Module.new
|
36
|
+
@base_module.const_set("Version", @version_module)
|
37
|
+
end
|
38
|
+
|
39
|
+
def require_libraries
|
40
|
+
require "webkit2-gtk/version" if @version_module.const_defined?(:MAJOR)
|
41
|
+
|
42
|
+
require "webkit2-gtk/web-view"
|
43
|
+
end
|
44
|
+
|
45
|
+
def load_constant_info(info)
|
46
|
+
case info.name
|
47
|
+
when /_VERSION\z/
|
48
|
+
@version_module.const_set($PREMATCH, info.value)
|
49
|
+
else
|
50
|
+
super
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
@@ -0,0 +1,71 @@
|
|
1
|
+
# Copyright (C) 2017 Ruby-GNOME2 Project Team
|
2
|
+
#
|
3
|
+
# This library is free software; you can redistribute it and/or
|
4
|
+
# modify it under the terms of the GNU Lesser General Public
|
5
|
+
# License as published by the Free Software Foundation; either
|
6
|
+
# version 2.1 of the License, or (at your option) any later version.
|
7
|
+
#
|
8
|
+
# This library is distributed in the hope that it will be useful,
|
9
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
10
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
11
|
+
# Lesser General Public License for more details.
|
12
|
+
#
|
13
|
+
# You should have received a copy of the GNU Lesser General Public
|
14
|
+
# License along with this library; if not, write to the Free Software
|
15
|
+
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
16
|
+
|
17
|
+
module WebKit2Gtk
|
18
|
+
class WebView
|
19
|
+
class << self
|
20
|
+
def new(*args)
|
21
|
+
return super unless args.size == 1
|
22
|
+
return super unless args[0].is_a?(Hash)
|
23
|
+
|
24
|
+
related_view = args[0][:related_view]
|
25
|
+
return super unless related_view
|
26
|
+
# TODO: Workaround for webkit_web_view_new_with_related_view is
|
27
|
+
# handled as method not constructor.
|
28
|
+
related_view.new_with_related_view
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
alias_method :initialize_raw, :initialize
|
33
|
+
def initialize(*args)
|
34
|
+
case args.size
|
35
|
+
when 1
|
36
|
+
case args[0]
|
37
|
+
when Hash
|
38
|
+
initialize_with_hash(args[0])
|
39
|
+
when WebContext
|
40
|
+
message = "#{caller[0]}: #{self.class}.new(context) is deprecated. "
|
41
|
+
message << "Use #{self.class}.new(:context => context) instead."
|
42
|
+
warn(message)
|
43
|
+
initialize_raw(args[0])
|
44
|
+
else
|
45
|
+
raise ArgumentError, "must be options: #{args[0].inspect}"
|
46
|
+
end
|
47
|
+
else
|
48
|
+
initialize_raw(*args)
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
def initialize_with_hash(options)
|
53
|
+
context = options[:context]
|
54
|
+
settings = options[:settings]
|
55
|
+
user_content_manager = options[:user_content_manager]
|
56
|
+
|
57
|
+
if context
|
58
|
+
initialize_new_with_context(context)
|
59
|
+
elsif settings
|
60
|
+
initialize_new_with_settings(settings)
|
61
|
+
elsif user_content_manager
|
62
|
+
initialize_new_with_user_content_manager(user_content_manager)
|
63
|
+
else
|
64
|
+
message =
|
65
|
+
"must specify :context, :settings, :user_content_manager or :related_view"
|
66
|
+
raise ArgumentError, message
|
67
|
+
end
|
68
|
+
end
|
69
|
+
private :initialize_with_hash
|
70
|
+
end
|
71
|
+
end
|
data/lib/webkit2-gtk.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (C) 2015 Ruby-GNOME2 Project Team
|
1
|
+
# Copyright (C) 2015-2017 Ruby-GNOME2 Project Team
|
2
2
|
#
|
3
3
|
# This library is free software; you can redistribute it and/or
|
4
4
|
# modify it under the terms of the GNU Lesser General Public
|
@@ -22,6 +22,8 @@ vendor_dir = base_dir + "vendor" + "local"
|
|
22
22
|
vendor_bin_dir = vendor_dir + "bin"
|
23
23
|
GLib.prepend_dll_path(vendor_bin_dir)
|
24
24
|
|
25
|
+
require "webkit2-gtk/loader"
|
26
|
+
|
25
27
|
module WebKit2Gtk
|
26
28
|
class << self
|
27
29
|
def const_missing(name)
|
@@ -43,39 +45,4 @@ module WebKit2Gtk
|
|
43
45
|
loader.load
|
44
46
|
end
|
45
47
|
end
|
46
|
-
|
47
|
-
class Loader < GObjectIntrospection::Loader
|
48
|
-
NAMESPACE = "WebKit2"
|
49
|
-
|
50
|
-
def load
|
51
|
-
super(NAMESPACE)
|
52
|
-
end
|
53
|
-
|
54
|
-
private
|
55
|
-
def pre_load(repository, namespace)
|
56
|
-
define_version_module
|
57
|
-
end
|
58
|
-
|
59
|
-
def post_load(repository, namespace)
|
60
|
-
require_libraries
|
61
|
-
end
|
62
|
-
|
63
|
-
def define_version_module
|
64
|
-
@version_module = Module.new
|
65
|
-
@base_module.const_set("Version", @version_module)
|
66
|
-
end
|
67
|
-
|
68
|
-
def require_libraries
|
69
|
-
require "webkit2-gtk/version" if @version_module.const_defined?(:MAJOR)
|
70
|
-
end
|
71
|
-
|
72
|
-
def load_constant_info(info)
|
73
|
-
case info.name
|
74
|
-
when /_VERSION\z/
|
75
|
-
@version_module.const_set($PREMATCH, info.value)
|
76
|
-
else
|
77
|
-
super
|
78
|
-
end
|
79
|
-
end
|
80
|
-
end
|
81
48
|
end
|
data/test/run-test.rb
CHANGED
@@ -43,7 +43,7 @@ modules = [
|
|
43
43
|
[webkit2_gtk_base, "webkit2-gtk"],
|
44
44
|
]
|
45
45
|
modules.each do |target, module_name|
|
46
|
-
if File.exist?("Makefile") and system("which make > /dev/null")
|
46
|
+
if File.exist?("#{target}/Makefile") and system("which make > /dev/null")
|
47
47
|
`make -C #{target.dump} > /dev/null` or exit(false)
|
48
48
|
end
|
49
49
|
$LOAD_PATH.unshift(File.join(target, "ext", module_name))
|
@@ -15,47 +15,97 @@
|
|
15
15
|
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
16
16
|
|
17
17
|
class TestWebKit2GtkWebView < Test::Unit::TestCase
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
18
|
+
include WebKit2GtkTestUtils
|
19
|
+
|
20
|
+
sub_test_case(".new") do
|
21
|
+
sub_test_case("Hash form") do
|
22
|
+
test "with context" do
|
23
|
+
only_webkit2_gtk_version(2, 8)
|
24
|
+
context = WebKit2Gtk::WebContext.new
|
25
|
+
webview = WebKit2Gtk::WebView.new(context: context)
|
26
|
+
assert_equal(context, webview.context)
|
27
|
+
assert_nil(webview.user_content_manager)
|
28
|
+
end
|
29
|
+
|
30
|
+
test "with settings" do
|
31
|
+
settings = WebKit2Gtk::Settings.new
|
32
|
+
webview = WebKit2Gtk::WebView.new(settings: settings)
|
33
|
+
assert_equal(settings, webview.settings)
|
34
|
+
assert_nil(webview.user_content_manager)
|
35
|
+
end
|
36
|
+
|
37
|
+
test "with user content manager" do
|
38
|
+
manager = WebKit2Gtk::UserContentManager.new
|
39
|
+
webview = WebKit2Gtk::WebView.new(user_content_manager: manager)
|
40
|
+
assert_equal(manager, webview.user_content_manager)
|
41
|
+
end
|
42
|
+
|
43
|
+
test "with related view" do
|
44
|
+
settings = WebKit2Gtk::Settings.new
|
45
|
+
related = WebKit2Gtk::WebView.new(settings: settings)
|
46
|
+
webview = related.new_with_related_view
|
47
|
+
assert_equal(settings, webview.settings)
|
48
|
+
end
|
49
|
+
|
50
|
+
test "with unknown option" do
|
51
|
+
assert_raises do
|
52
|
+
WebKit2Gtk::WebView.new(foo: 'bar')
|
53
|
+
end
|
54
|
+
end
|
26
55
|
end
|
27
|
-
end
|
28
56
|
|
29
|
-
|
30
|
-
|
31
|
-
|
57
|
+
sub_test_case("legacy form") do
|
58
|
+
test "with unknown argument" do
|
59
|
+
assert_raises ArgumentError do
|
60
|
+
WebKit2Gtk::WebView.new('foo')
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
32
64
|
end
|
33
65
|
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
66
|
+
sub_test_case("#load_uri") do
|
67
|
+
def setup
|
68
|
+
@view = WebKit2Gtk::WebView.new
|
69
|
+
@http_server = WEBrick::HTTPServer.new(:Port => 0)
|
70
|
+
@http_server.mount_proc("/") do |request, response|
|
71
|
+
response.body = "Hello"
|
72
|
+
end
|
73
|
+
@http_server_thread = Thread.new do
|
74
|
+
@http_server.start
|
75
|
+
end
|
76
|
+
end
|
38
77
|
|
39
|
-
|
40
|
-
|
78
|
+
def teardown
|
79
|
+
@http_server.shutdown
|
80
|
+
@http_server_thread.join
|
81
|
+
end
|
41
82
|
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
loop.quit
|
46
|
-
GLib::Source::REMOVE
|
83
|
+
def http_url
|
84
|
+
port = @http_server[:Port]
|
85
|
+
"http://127.0.0.1:#{port}/"
|
47
86
|
end
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
87
|
+
|
88
|
+
test "#load_uri" do
|
89
|
+
loaded = false
|
90
|
+
|
91
|
+
loop = GLib::MainLoop.new
|
92
|
+
timeout_id = GLib::Timeout.add(5000) do
|
93
|
+
timeout_id = nil
|
53
94
|
loop.quit
|
95
|
+
GLib::Source::REMOVE
|
54
96
|
end
|
55
|
-
|
56
|
-
|
57
|
-
|
97
|
+
@view.signal_connect("load-changed") do |view, event|
|
98
|
+
case event
|
99
|
+
when WebKit2Gtk::LoadEvent::FINISHED
|
100
|
+
GLib::Source.remove(timeout_id) if timeout_id
|
101
|
+
loaded = true
|
102
|
+
loop.quit
|
103
|
+
end
|
104
|
+
end
|
105
|
+
@view.load_uri(http_url)
|
106
|
+
loop.run
|
58
107
|
|
59
|
-
|
108
|
+
assert_true(loaded)
|
109
|
+
end
|
60
110
|
end
|
61
111
|
end
|
@@ -21,7 +21,7 @@ require "webrick"
|
|
21
21
|
module WebKit2GtkTestUtils
|
22
22
|
def only_webkit2_gtk_version(major, minor, micro=nil)
|
23
23
|
micro ||= 0
|
24
|
-
unless WebKit2Gtk.or_later?(major, minor, micro)
|
24
|
+
unless WebKit2Gtk::Version.or_later?(major, minor, micro)
|
25
25
|
omit("Require WebKit2Gtk >= #{major}.#{minor}.#{micro}")
|
26
26
|
end
|
27
27
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: webkit2-gtk
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.1.
|
4
|
+
version: 3.1.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- The Ruby-GNOME2 Project Team
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-05-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: gobject-introspection
|
@@ -16,28 +16,28 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - '='
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 3.1.
|
19
|
+
version: 3.1.4
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - '='
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 3.1.
|
26
|
+
version: 3.1.4
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: gtk3
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - '='
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 3.1.
|
33
|
+
version: 3.1.4
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - '='
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 3.1.
|
40
|
+
version: 3.1.4
|
41
41
|
description: Ruby/WebKit2GTK is a Ruby binding of WebKit2GTK+.
|
42
42
|
email: ruby-gnome2-devel-en@lists.sourceforge.net
|
43
43
|
executables: []
|
@@ -48,7 +48,9 @@ files:
|
|
48
48
|
- Rakefile
|
49
49
|
- dependency-check/Rakefile
|
50
50
|
- lib/webkit2-gtk.rb
|
51
|
+
- lib/webkit2-gtk/loader.rb
|
51
52
|
- lib/webkit2-gtk/version.rb
|
53
|
+
- lib/webkit2-gtk/web-view.rb
|
52
54
|
- sample/browser.rb
|
53
55
|
- test/run-test.rb
|
54
56
|
- test/test-webkit2-gtk-webview.rb
|