webview: adding page-title-set event
This commit is contained in:
		
					parent
					
						
							
								5ff9588b48
							
						
					
				
			
			
				commit
				
					
						87af6f9c80
					
				
			
		
					 7 changed files with 26 additions and 0 deletions
				
			
		| 
						 | 
				
			
			@ -240,6 +240,11 @@ void WebContents::DidNavigateMainFrame(
 | 
			
		|||
    Emit("did-navigate-to-different-page");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void WebContents::TitleWasSet(content::NavigationEntry* entry,
 | 
			
		||||
                              bool explicit_set) {
 | 
			
		||||
  Emit("page-title-set", entry->GetTitle(), explicit_set);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool WebContents::OnMessageReceived(const IPC::Message& message) {
 | 
			
		||||
  bool handled = true;
 | 
			
		||||
  IPC_BEGIN_MESSAGE_MAP(WebContents, message)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -172,6 +172,7 @@ class WebContents : public mate::EventEmitter,
 | 
			
		|||
  void WebContentsDestroyed() override;
 | 
			
		||||
  void NavigationEntryCommitted(
 | 
			
		||||
      const content::LoadCommittedDetails& load_details) override;
 | 
			
		||||
  void TitleWasSet(content::NavigationEntry* entry, bool explicit_set) override;
 | 
			
		||||
 | 
			
		||||
  // content::BrowserPluginGuestDelegate:
 | 
			
		||||
  void DidAttach(int guest_proxy_routing_id) final;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -14,6 +14,7 @@ supportedWebViewEvents = [
 | 
			
		|||
  'close'
 | 
			
		||||
  'crashed'
 | 
			
		||||
  'destroyed'
 | 
			
		||||
  'page-title-set'
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
nextInstanceId = 0
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -15,6 +15,7 @@ WEB_VIEW_EVENTS =
 | 
			
		|||
  'close': []
 | 
			
		||||
  'crashed': []
 | 
			
		||||
  'destroyed': []
 | 
			
		||||
  'page-title-set': ['title', 'explicitSet']
 | 
			
		||||
 | 
			
		||||
dispatchEvent = (webView, event, args...) ->
 | 
			
		||||
  throw new Error("Unkown event #{event}") unless WEB_VIEW_EVENTS[event]?
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -310,6 +310,14 @@ Corresponds to the points in time when the spinner of the tab stops spinning.
 | 
			
		|||
 | 
			
		||||
Fired when a redirect was received while requesting a resource.
 | 
			
		||||
 | 
			
		||||
### page-title-set
 | 
			
		||||
 | 
			
		||||
* `title` String
 | 
			
		||||
* `explicitSet` Boolean
 | 
			
		||||
 | 
			
		||||
Fired when page ttile is set during navigation. `explicitSet` is false when title is synthesised from file
 | 
			
		||||
url.
 | 
			
		||||
 | 
			
		||||
### console-message
 | 
			
		||||
 | 
			
		||||
* `level` Integer
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										1
									
								
								spec/fixtures/pages/a.html
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								spec/fixtures/pages/a.html
									
										
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -2,6 +2,7 @@
 | 
			
		|||
<body>
 | 
			
		||||
<script type="text/javascript" charset="utf-8">
 | 
			
		||||
  console.log('a');
 | 
			
		||||
  document.title = "test"
 | 
			
		||||
</script>
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -142,3 +142,12 @@ describe '<webview> tag', ->
 | 
			
		|||
      webview.src = "file://#{fixtures}/pages/ipc-message.html"
 | 
			
		||||
      webview.setAttribute 'nodeintegration', 'on'
 | 
			
		||||
      document.body.appendChild webview
 | 
			
		||||
 | 
			
		||||
  describe 'page-title-set event', ->
 | 
			
		||||
    it 'emits when title is set', (done) ->
 | 
			
		||||
      webview.addEventListener 'page-title-set', (e) ->
 | 
			
		||||
        assert.equal e.title, 'test'
 | 
			
		||||
        assert e.explicitSet
 | 
			
		||||
        done()
 | 
			
		||||
      webview.src = "file://#{fixtures}/pages/a.html"
 | 
			
		||||
      document.body.appendChild webview
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue